Skip to content

Commit

Permalink
Move browser right click actions which are destructive to a new "Tabl…
Browse files Browse the repository at this point in the history
…e Operations"

(or "Schema Operations") sub menu

Fixes #40973
  • Loading branch information
nyalldawson committed Jan 14, 2021
1 parent 5fb9e2f commit 5c86084
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 6 deletions.
6 changes: 5 additions & 1 deletion src/providers/mssql/qgsmssqldataitemguiprovider.cpp
Expand Up @@ -86,10 +86,14 @@ void QgsMssqlDataItemGuiProvider::populateContextMenu( QgsDataItem *item, QMenu
}
else if ( QgsMssqlLayerItem *layerItem = qobject_cast< QgsMssqlLayerItem * >( item ) )
{
QMenu *maintainMenu = new QMenu( tr( "Table Operations" ), menu );

// truncate
QAction *actionTruncateLayer = new QAction( tr( "Truncate Table" ), menu );
connect( actionTruncateLayer, &QAction::triggered, this, [layerItem] { truncateTable( layerItem ); } );
menu->addAction( actionTruncateLayer );
maintainMenu->addAction( actionTruncateLayer );

menu->addMenu( maintainMenu );
}
}

Expand Down
17 changes: 12 additions & 5 deletions src/providers/postgres/qgspostgresdataitemguiprovider.cpp
Expand Up @@ -76,37 +76,44 @@ void QgsPostgresDataItemGuiProvider::populateContextMenu( QgsDataItem *item, QMe

menu->addSeparator();

QMenu *maintainMenu = new QMenu( tr( "Schema Operations" ), menu );

QAction *actionRename = new QAction( tr( "Rename Schema…" ), this );
connect( actionRename, &QAction::triggered, this, [schemaItem, context] { renameSchema( schemaItem, context ); } );
menu->addAction( actionRename );
maintainMenu->addAction( actionRename );

QAction *actionDelete = new QAction( tr( "Delete Schema…" ), this );
connect( actionDelete, &QAction::triggered, this, [schemaItem, context] { deleteSchema( schemaItem, context ); } );
menu->addAction( actionDelete );
maintainMenu->addAction( actionDelete );

menu->addMenu( maintainMenu );
}

if ( QgsPGLayerItem *layerItem = qobject_cast< QgsPGLayerItem * >( item ) )
{
const QgsPostgresLayerProperty &layerInfo = layerItem->layerInfo();
QString typeName = layerInfo.isView ? tr( "View" ) : tr( "Table" );

QMenu *maintainMenu = new QMenu( tr( "%1 Operations" ).arg( typeName ), menu );

QAction *actionRenameLayer = new QAction( tr( "Rename %1…" ).arg( typeName ), this );
connect( actionRenameLayer, &QAction::triggered, this, [layerItem, context] { renameLayer( layerItem, context ); } );
menu->addAction( actionRenameLayer );
maintainMenu->addAction( actionRenameLayer );

if ( !layerInfo.isView )
{
QAction *actionTruncateLayer = new QAction( tr( "Truncate %1…" ).arg( typeName ), this );
connect( actionTruncateLayer, &QAction::triggered, this, [layerItem, context] { truncateTable( layerItem, context ); } );
menu->addAction( actionTruncateLayer );
maintainMenu->addAction( actionTruncateLayer );
}

if ( layerInfo.isMaterializedView )
{
QAction *actionRefreshMaterializedView = new QAction( tr( "Refresh Materialized View…" ), this );
connect( actionRefreshMaterializedView, &QAction::triggered, this, [layerItem, context] { refreshMaterializedView( layerItem, context ); } );
menu->addAction( actionRefreshMaterializedView );
maintainMenu->addAction( actionRefreshMaterializedView );
}
menu->addMenu( maintainMenu );
}
}

Expand Down

0 comments on commit 5c86084

Please sign in to comment.