@@ -45,42 +45,49 @@ void QgsMssqlDataItemGuiProvider::populateContextMenu( QgsDataItem *item, QMenu
45
45
}
46
46
else if ( QgsMssqlConnectionItem *connItem = qobject_cast<QgsMssqlConnectionItem *>( item ) )
47
47
{
48
- QAction *actionRefresh = new QAction ( tr ( " Refresh" ), menu );
49
- connect ( actionRefresh, &QAction::triggered, this , [connItem] {
50
- connItem->refresh ();
51
- if ( connItem->parent () )
52
- connItem->parent ()->refreshConnections ();
53
- } );
54
- menu->addAction ( actionRefresh );
48
+ const QList<QgsMssqlConnectionItem *> mssqlConnectionItems = QgsDataItem::filteredItems<QgsMssqlConnectionItem>( selection );
55
49
56
- menu->addSeparator ();
50
+ if ( mssqlConnectionItems.size () == 1 )
51
+ {
52
+ QAction *actionRefresh = new QAction ( tr ( " Refresh" ), menu );
53
+ connect ( actionRefresh, &QAction::triggered, this , [connItem] {
54
+ connItem->refresh ();
55
+ if ( connItem->parent () )
56
+ connItem->parent ()->refreshConnections ();
57
+ } );
58
+ menu->addAction ( actionRefresh );
57
59
58
- QAction *actionEdit = new QAction ( tr ( " Edit Connection…" ), menu );
59
- connect ( actionEdit, &QAction::triggered, this , [connItem] { editConnection ( connItem ); } );
60
- menu->addAction ( actionEdit );
60
+ menu->addSeparator ();
61
61
62
- QAction *actionDuplicate = new QAction ( tr ( " Duplicate Connection" ), menu );
63
- connect ( actionDuplicate, &QAction::triggered, this , [connItem] { duplicateConnection ( connItem ); } );
64
- menu->addAction ( actionDuplicate );
62
+ QAction *actionEdit = new QAction ( tr ( " Edit Connection…" ), menu );
63
+ connect ( actionEdit, &QAction::triggered, this , [connItem] { editConnection ( connItem ); } );
64
+ menu->addAction ( actionEdit );
65
+
66
+ QAction *actionDuplicate = new QAction ( tr ( " Duplicate Connection" ), menu );
67
+ connect ( actionDuplicate, &QAction::triggered, this , [connItem] { duplicateConnection ( connItem ); } );
68
+ menu->addAction ( actionDuplicate );
69
+ }
65
70
66
- const QList<QgsMssqlConnectionItem *> mssqlConnectionItems = QgsDataItem::filteredItems<QgsMssqlConnectionItem>( selection );
67
71
QAction *actionDelete = new QAction ( mssqlConnectionItems.size () > 1 ? tr ( " Remove Connections…" ) : tr ( " Remove Connection…" ), menu );
68
72
connect ( actionDelete, &QAction::triggered, this , [mssqlConnectionItems, context] {
69
73
QgsDataItemGuiProviderUtils::deleteConnections ( mssqlConnectionItems, []( const QString &connectionName ) { QgsMssqlSourceSelect::deleteConnection ( connectionName ); }, context );
70
74
} );
71
75
menu->addAction ( actionDelete );
72
76
73
- menu->addSeparator ();
77
+ if ( mssqlConnectionItems.size () == 1 )
78
+ {
79
+ menu->addSeparator ();
74
80
75
- QAction *actionShowNoGeom = new QAction ( tr ( " Show Non-spatial Tables" ), menu );
76
- actionShowNoGeom->setCheckable ( true );
77
- actionShowNoGeom->setChecked ( connItem->allowGeometrylessTables () );
78
- connect ( actionShowNoGeom, &QAction::toggled, connItem, &QgsMssqlConnectionItem::setAllowGeometrylessTables );
79
- menu->addAction ( actionShowNoGeom );
81
+ QAction *actionShowNoGeom = new QAction ( tr ( " Show Non-spatial Tables" ), menu );
82
+ actionShowNoGeom->setCheckable ( true );
83
+ actionShowNoGeom->setChecked ( connItem->allowGeometrylessTables () );
84
+ connect ( actionShowNoGeom, &QAction::toggled, connItem, &QgsMssqlConnectionItem::setAllowGeometrylessTables );
85
+ menu->addAction ( actionShowNoGeom );
80
86
81
- QAction *actionCreateSchema = new QAction ( tr ( " New Schema…" ), menu );
82
- connect ( actionCreateSchema, &QAction::triggered, this , [connItem] { createSchema ( connItem ); } );
83
- menu->addAction ( actionCreateSchema );
87
+ QAction *actionCreateSchema = new QAction ( tr ( " New Schema…" ), menu );
88
+ connect ( actionCreateSchema, &QAction::triggered, this , [connItem] { createSchema ( connItem ); } );
89
+ menu->addAction ( actionCreateSchema );
90
+ }
84
91
}
85
92
else if ( QgsMssqlSchemaItem *schemaItem = qobject_cast<QgsMssqlSchemaItem *>( item ) )
86
93
{
0 commit comments