From c90d810ce3efe4f5cb738a426f910ef2cb5bf5e1 Mon Sep 17 00:00:00 2001 From: "Juergen E. Fischer" Date: Wed, 15 Oct 2014 18:49:35 +0200 Subject: [PATCH] allow setting visiblity of selected layers (fixes #10835) --- .../default/mActionHideSelectedLayers.png | Bin 0 -> 805 bytes .../default/mActionShowSelectedLayers.png | Bin 0 -> 1003 bytes python/gui/qgisinterface.sip | 2 ++ src/app/qgisapp.cpp | 33 ++++++++++++++++++ src/app/qgisapp.h | 12 +++---- src/app/qgisappinterface.cpp | 2 ++ src/app/qgisappinterface.h | 2 ++ src/app/qgsvisibilitypresets.cpp | 2 ++ src/gui/qgisinterface.h | 2 ++ src/ui/qgisapp.ui | 22 +++++++++++- 10 files changed, 70 insertions(+), 7 deletions(-) create mode 100644 images/themes/default/mActionHideSelectedLayers.png create mode 100644 images/themes/default/mActionShowSelectedLayers.png diff --git a/images/themes/default/mActionHideSelectedLayers.png b/images/themes/default/mActionHideSelectedLayers.png new file mode 100644 index 0000000000000000000000000000000000000000..d21b3e10122f15cee0cb65a78405a7dc85c4b91d GIT binary patch literal 805 zcmV+=1KRwFP)7 z@&5b6$orq^FE8`||9^fkG2OU+^5k1W7BHg6frW(y9}72kJTEtoCJzrUpNOz93oj23 z11~SnUmjkb|2$kgKY#rC`S|*E zGBPqbx_M+vN=jH|q^3MoRaX8?N>E(Cc~fBR`VFd&A3yo<>FehO`*-ZvgJQv%GiMAR zJbs*NV`=%46ob*h-@kvEHf`N16XfsTA}%g|A8x_(=g$im85#L0F&r8E`}gmyl$6vI zCM1C$)H0lbfq{XMk?|)318Oq8NKFg={rh(c#R4WKri=go|Nls-!B3w(832SQW zxWmA}z`&w!YR;q}FPF{E&Th=d%d00QCiW#SD|0V7h95d|L}AbV{oa57{#`e7>g2Bs z43LZ_%*x6dqNSlO>*?+$|MuOxFLUNEc$JcvaG6+xKYskkwqng%3qD>RgYVye+`4o3 zUI9!Fo{IEM&3PpyC1SNTHFEX!bVUvyIesZ9!0)J`zW!fqhJO9}m1WEJ9oo-dywDUB z6yP;CF_v7oWZC(17cM$qJbm&bh6OO7Z)z^8ucx~vJ3ZC<_{mc*A3u5W@YnC(KX|x# zKCmz|3;y`|ljq;Re=Nd6f+Eh24w7oBD$EBC9sam#?fPBUuHQ(!c>3g5Wb-gAfLg+= zsiEE_FDK{Wn#I{{06A7FHGp9&T<1Mn*=4-+%rv>^pGq!@)yGu0MbAV$z1y zt5#t1DOL-REs~LziVzbMi{$0y;pODu;QIgnKhvjApI?9Y`0>TF=g+4c+Ozu%P6G&8 jKn*bTE1Xda2HpYyG=>{wlLnIE00000NkvXXu0mjf!wh^k literal 0 HcmV?d00001 diff --git a/images/themes/default/mActionShowSelectedLayers.png b/images/themes/default/mActionShowSelectedLayers.png new file mode 100644 index 0000000000000000000000000000000000000000..f7907633aa64f319bd2366bf6689bb05f85e515d GIT binary patch literal 1003 zcmVCXDaHthH^$K4si1OewNgwF zh$fyPY2*x}iN}bB$Y?I5q>KOn-lWbU_01=FQm;@7xIhfW=y=R4Nn|t5)THf(+Gi%4X##ImPVQ zu;YjD+?>PZbVSmDs;a8AcDsExWknWieH|{RBbpAF1nk&VUuWG=ak2SOlR>Rg0RS%bdhj>^ zY%N;~O-2+Q9hdQJ+z;c%UEnhHkfaEB_svm$>~3q<&z%=i0hpIN*Or!)v>j{tJZTO9 zKED7?$>P2*jM0$?(8=a7@yG$sz^?!Rg@T3NSXJ=l7cK4k_8+)zu~u>^0RUu6mZ%l! zVuqy{u3Wo?-oE~ndU=_dYdw8x+d5164U4rhJ7q^Wp>m`ublaFD)_s(sK03 z*5aZf761mlGq~96g-WLbr(^*D;(P>Qp2tC3A<7H0002)sUa779{H+H=!-rf>hi_3u zuRzFZW8s;Pt3Nupw_#5%%d!yWqquzgDSUnb0AR>bqoF1rYNZ^MQe5rsnd<7kcF8^R z=qs1gvA}Q{qtArCCeCiUq+09U(vo((=68k+R`&vsqu z>`Ud77Vt_U&GMX_dYvw_TC3IO(s(=;7DYjlq{klb=y{jZG4-bPZw36_`R_kC{{#Mg Zz@J}edIzNUAZ`Ev002ovPDHLkV1gw=!mR)R literal 0 HcmV?d00001 diff --git a/python/gui/qgisinterface.sip b/python/gui/qgisinterface.sip index 6a5a0c6327f..d79328545ac 100644 --- a/python/gui/qgisinterface.sip +++ b/python/gui/qgisinterface.sip @@ -496,6 +496,8 @@ class QgisInterface : QObject virtual QAction *actionRemoveAllFromOverview() = 0; virtual QAction *actionHideAllLayers() = 0; virtual QAction *actionShowAllLayers() = 0; + virtual QAction *actionHideSelectedLayers() = 0; + virtual QAction *actionShowSelectedLayers() = 0; // Plugin menu actions virtual QAction *actionManagePlugins() = 0; diff --git a/src/app/qgisapp.cpp b/src/app/qgisapp.cpp index c8c2acb1c65..db34f265df9 100644 --- a/src/app/qgisapp.cpp +++ b/src/app/qgisapp.cpp @@ -1176,6 +1176,8 @@ void QgisApp::createActions() connect( mActionRemoveAllFromOverview, SIGNAL( triggered() ), this, SLOT( removeAllFromOverview() ) ); connect( mActionShowAllLayers, SIGNAL( triggered() ), this, SLOT( showAllLayers() ) ); connect( mActionHideAllLayers, SIGNAL( triggered() ), this, SLOT( hideAllLayers() ) ); + connect( mActionShowSelectedLayers, SIGNAL( triggered() ), this, SLOT( showSelectedLayers() ) ); + connect( mActionHideSelectedLayers, SIGNAL( triggered() ), this, SLOT( hideSelectedLayers() ) ); // Plugin Menu Items @@ -1876,6 +1878,8 @@ void QgisApp::setTheme( QString theThemeName ) mActionAddAllToOverview->setIcon( QgsApplication::getThemeIcon( "/mActionAddAllToOverview.svg" ) ); mActionHideAllLayers->setIcon( QgsApplication::getThemeIcon( "/mActionHideAllLayers.png" ) ); mActionShowAllLayers->setIcon( QgsApplication::getThemeIcon( "/mActionShowAllLayers.png" ) ); + mActionHideSelectedLayers->setIcon( QgsApplication::getThemeIcon( "/mActionHideSelectedLayers.png" ) ); + mActionShowSelectedLayers->setIcon( QgsApplication::getThemeIcon( "/mActionShowSelectedLayers.png" ) ); mActionRemoveAllFromOverview->setIcon( QgsApplication::getThemeIcon( "/mActionRemoveAllFromOverview.svg" ) ); mActionToggleFullScreen->setIcon( QgsApplication::getThemeIcon( "/mActionToggleFullScreen.png" ) ); mActionProjectProperties->setIcon( QgsApplication::getThemeIcon( "/mActionProjectProperties.png" ) ); @@ -4430,6 +4434,35 @@ void QgisApp::showAllLayers() nodeLayer->setVisible( Qt::Checked ); } +//reimplements method from base (gui) class +void QgisApp::hideSelectedLayers() +{ + QgsDebugMsg( "hiding selected layers!" ); + + foreach ( QgsLayerTreeNode* node, mLayerTreeView->selectedNodes() ) + { + if ( QgsLayerTree::isGroup( node ) ) + QgsLayerTree::toGroup( node )->setVisible( Qt::Unchecked ); + else if ( QgsLayerTree::isLayer( node ) ) + QgsLayerTree::toLayer( node )->setVisible( Qt::Unchecked ); + } +} + + +// reimplements method from base (gui) class +void QgisApp::showSelectedLayers() +{ + QgsDebugMsg( "show selected layers!" ); + + foreach ( QgsLayerTreeNode* node, mLayerTreeView->selectedNodes() ) + { + if ( QgsLayerTree::isGroup( node ) ) + QgsLayerTree::toGroup( node )->setVisible( Qt::Checked ); + else if ( QgsLayerTree::isLayer( node ) ) + QgsLayerTree::toLayer( node )->setVisible( Qt::Checked ); + } +} + void QgisApp::zoomIn() { diff --git a/src/app/qgisapp.h b/src/app/qgisapp.h index a53279f1faf..a62d10b09aa 100644 --- a/src/app/qgisapp.h +++ b/src/app/qgisapp.h @@ -360,6 +360,8 @@ class APP_EXPORT QgisApp : public QMainWindow, private Ui::MainWindow QAction *actionRemoveAllFromOverview() { return mActionRemoveAllFromOverview; } QAction *actionHideAllLayers() { return mActionHideAllLayers; } QAction *actionShowAllLayers() { return mActionShowAllLayers; } + QAction *actionHideSelectedLayers() { return mActionHideSelectedLayers; } + QAction *actionShowSelectedLayers() { return mActionShowSelectedLayers; } QAction *actionManagePlugins() { return mActionManagePlugins; } QAction *actionPluginListSeparator() { return mActionPluginSeparator1; } @@ -924,12 +926,10 @@ class APP_EXPORT QgisApp : public QMainWindow, private Ui::MainWindow void hideAllLayers(); //reimplements method from base (gui) class void showAllLayers(); - // TODO: remove exportMapServer declaration once the mapserver export plugin is complete - // and tested - /* - //! Export current view as a mapserver map file - void exportMapServer(); - */ + //reimplements method from base (gui) class + void hideSelectedLayers(); + //reimplements method from base (gui) class + void showSelectedLayers(); //! Return pointer to the active layer QgsMapLayer *activeLayer(); //! set the active layer diff --git a/src/app/qgisappinterface.cpp b/src/app/qgisappinterface.cpp index b6a7ddd1ca6..62c0cef2736 100644 --- a/src/app/qgisappinterface.cpp +++ b/src/app/qgisappinterface.cpp @@ -556,6 +556,8 @@ QAction *QgisAppInterface::actionAddAllToOverview() { return qgis->actionAddAllT QAction *QgisAppInterface::actionRemoveAllFromOverview() { return qgis->actionRemoveAllFromOverview(); } QAction *QgisAppInterface::actionHideAllLayers() { return qgis->actionHideAllLayers(); } QAction *QgisAppInterface::actionShowAllLayers() { return qgis->actionShowAllLayers(); } +QAction *QgisAppInterface::actionHideSelectedLayers() { return qgis->actionHideSelectedLayers(); } +QAction *QgisAppInterface::actionShowSelectedLayers() { return qgis->actionShowSelectedLayers(); } //! Plugin menu actions QAction *QgisAppInterface::actionManagePlugins() { return qgis->actionManagePlugins(); } diff --git a/src/app/qgisappinterface.h b/src/app/qgisappinterface.h index d1f599bf7ce..c40c2d28495 100644 --- a/src/app/qgisappinterface.h +++ b/src/app/qgisappinterface.h @@ -417,6 +417,8 @@ class APP_EXPORT QgisAppInterface : public QgisInterface virtual QAction *actionRemoveAllFromOverview(); virtual QAction *actionHideAllLayers(); virtual QAction *actionShowAllLayers(); + virtual QAction *actionHideSelectedLayers(); + virtual QAction *actionShowSelectedLayers(); //! Plugin menu actions virtual QAction *actionManagePlugins(); diff --git a/src/app/qgsvisibilitypresets.cpp b/src/app/qgsvisibilitypresets.cpp index 210c0ef1729..b7f3c64f014 100644 --- a/src/app/qgsvisibilitypresets.cpp +++ b/src/app/qgsvisibilitypresets.cpp @@ -38,6 +38,8 @@ QgsVisibilityPresets::QgsVisibilityPresets() mMenu->addAction( QgisApp::instance()->actionShowAllLayers() ); mMenu->addAction( QgisApp::instance()->actionHideAllLayers() ); + mMenu->addAction( QgisApp::instance()->actionShowSelectedLayers() ); + mMenu->addAction( QgisApp::instance()->actionHideSelectedLayers() ); mMenu->addSeparator(); mMenu->addAction( tr( "Add Preset..." ), this, SLOT( addPreset() ) ); diff --git a/src/gui/qgisinterface.h b/src/gui/qgisinterface.h index 69950cc07e5..b493b02468f 100644 --- a/src/gui/qgisinterface.h +++ b/src/gui/qgisinterface.h @@ -551,6 +551,8 @@ class GUI_EXPORT QgisInterface : public QObject virtual QAction *actionRemoveAllFromOverview() = 0; virtual QAction *actionHideAllLayers() = 0; virtual QAction *actionShowAllLayers() = 0; + virtual QAction *actionHideSelectedLayers() = 0; + virtual QAction *actionShowSelectedLayers() = 0; // Plugin menu actions virtual QAction *actionManagePlugins() = 0; diff --git a/src/ui/qgisapp.ui b/src/ui/qgisapp.ui index 3d25c9f30eb..1fd726c8f3f 100644 --- a/src/ui/qgisapp.ui +++ b/src/ui/qgisapp.ui @@ -17,7 +17,7 @@ 0 0 1050 - 20 + 18 @@ -178,6 +178,8 @@ + + @@ -2242,6 +2244,24 @@ Acts on currently active editable layer Set Scale Visibility of Layer(s) + + + + :/images/themes/default/mActionShowAllLayers.png:/images/themes/default/mActionShowSelectedLayers.png + + + Show Selected Layers + + + + + + :/images/themes/default/mActionHideAllLayers.png:/images/themes/default/mActionHideSelectedLayers.png + + + Hide Selected Layers + +