From 7765d8d67f4693e850487b1bea33eee1e2efda5f Mon Sep 17 00:00:00 2001 From: Radim Blazek Date: Thu, 21 May 2015 09:31:04 +0200 Subject: [PATCH] [GRASS] plugin: removed add raster/vector layer actions, substituted by QGIS browser --- src/plugins/grass/qgsgrass_plugin.qrc | 2 - src/plugins/grass/qgsgrassplugin.cpp | 170 ------------------ src/plugins/grass/qgsgrassplugin.h | 6 - .../grass/themes/default/grass_add_raster.png | Bin 714 -> 0 bytes .../grass/themes/default/grass_add_vector.png | Bin 1061 -> 0 bytes .../themes_old/classic/grass_add_raster.png | Bin 1590 -> 0 bytes .../themes_old/classic/grass_add_vector.png | Bin 1203 -> 0 bytes .../themes_old/default/grass_add_raster.png | Bin 2288 -> 0 bytes .../themes_old/default/grass_add_vector.png | Bin 2387 -> 0 bytes 9 files changed, 178 deletions(-) delete mode 100644 src/plugins/grass/themes/default/grass_add_raster.png delete mode 100644 src/plugins/grass/themes/default/grass_add_vector.png delete mode 100644 src/plugins/grass/themes_old/classic/grass_add_raster.png delete mode 100644 src/plugins/grass/themes_old/classic/grass_add_vector.png delete mode 100644 src/plugins/grass/themes_old/default/grass_add_raster.png delete mode 100644 src/plugins/grass/themes_old/default/grass_add_vector.png diff --git a/src/plugins/grass/qgsgrass_plugin.qrc b/src/plugins/grass/qgsgrass_plugin.qrc index d8300e9d829..6a0ba4b9315 100644 --- a/src/plugins/grass/qgsgrass_plugin.qrc +++ b/src/plugins/grass/qgsgrass_plugin.qrc @@ -1,8 +1,6 @@ themes/default/grass_add_map.png - themes/default/grass_add_raster.png - themes/default/grass_add_vector.png themes/default/grass_add_vertex.png themes/default/grass_browser_raster_layer.png themes/default/grass_browser_vector_layer.png diff --git a/src/plugins/grass/qgsgrassplugin.cpp b/src/plugins/grass/qgsgrassplugin.cpp index 62c1e32902e..37b1500c2ae 100644 --- a/src/plugins/grass/qgsgrassplugin.cpp +++ b/src/plugins/grass/qgsgrassplugin.cpp @@ -77,8 +77,6 @@ QgsGrassPlugin::QgsGrassPlugin( QgisInterface * theQgisInterFace ) , mOpenMapsetAction( 0 ) , mNewMapsetAction( 0 ) , mCloseMapsetAction( 0 ) - , mAddVectorAction( 0 ) - , mAddRasterAction( 0 ) , mOpenToolsAction( 0 ) , mEditRegionAction( 0 ) , mEditAction( 0 ) @@ -162,12 +160,6 @@ void QgsGrassPlugin::initGui() mCloseMapsetAction = new QAction( QIcon(), tr( "Close Mapset" ), this ); mCloseMapsetAction->setObjectName( "mCloseMapsetAction" ); - mAddVectorAction = new QAction( QIcon(), tr( "Add GRASS Vector Layer" ), this ); - mAddVectorAction->setObjectName( "mAddVectorAction" ); - mAddVectorAction->setWhatsThis( tr( "Adds a GRASS vector layer to the map canvas" ) ); - mAddRasterAction = new QAction( QIcon(), tr( "Add GRASS raster layer" ), this ); - mAddRasterAction->setObjectName( "mAddRasterAction" ); - mAddRasterAction->setWhatsThis( tr( "Adds a GRASS raster layer to the map canvas" ) ); mOpenToolsAction = new QAction( QIcon(), tr( "Open GRASS Tools" ), this ); mOpenToolsAction->setObjectName( "mOpenToolsAction" ); mOpenToolsAction->setWhatsThis( tr( "Open GRASS tools" ) ); @@ -187,8 +179,6 @@ void QgsGrassPlugin::initGui() mNewVectorAction->setObjectName( "mNewVectorAction" ); // Connect the action - connect( mAddVectorAction, SIGNAL( triggered() ), this, SLOT( addVector() ) ); - connect( mAddRasterAction, SIGNAL( triggered() ), this, SLOT( addRaster() ) ); connect( mOpenToolsAction, SIGNAL( triggered() ), this, SLOT( openTools() ) ); connect( mEditAction, SIGNAL( triggered() ), this, SLOT( edit() ) ); connect( mNewVectorAction, SIGNAL( triggered() ), this, SLOT( newVector() ) ); @@ -202,8 +192,6 @@ void QgsGrassPlugin::initGui() qGisInterface->addPluginToMenu( tr( "&GRASS" ), mOpenMapsetAction ); qGisInterface->addPluginToMenu( tr( "&GRASS" ), mNewMapsetAction ); qGisInterface->addPluginToMenu( tr( "&GRASS" ), mCloseMapsetAction ); - qGisInterface->addPluginToMenu( tr( "&GRASS" ), mAddVectorAction ); - qGisInterface->addPluginToMenu( tr( "&GRASS" ), mAddRasterAction ); qGisInterface->addPluginToMenu( tr( "&GRASS" ), mNewVectorAction ); qGisInterface->addPluginToMenu( tr( "&GRASS" ), mEditAction ); qGisInterface->addPluginToMenu( tr( "&GRASS" ), mOpenToolsAction ); @@ -219,8 +207,6 @@ void QgsGrassPlugin::initGui() mToolBarPointer->addAction( mNewMapsetAction ); mToolBarPointer->addAction( mCloseMapsetAction ); mToolBarPointer->addSeparator(); - mToolBarPointer->addAction( mAddVectorAction ); - mToolBarPointer->addAction( mAddRasterAction ); mToolBarPointer->addAction( mNewVectorAction ); mToolBarPointer->addAction( mEditAction ); mToolBarPointer->addAction( mOpenToolsAction ); @@ -312,156 +298,6 @@ void QgsGrassPlugin::saveMapset() QgsGrass::getDefaultMapset() ); } -// Slot called when the "Add GRASS vector layer" menu item is triggered -void QgsGrassPlugin::addVector() -{ -// QgsDebugMsg("entered."); - QString uri; - - QgsGrassSelect *sel = new QgsGrassSelect( qGisInterface->mainWindow(), QgsGrassSelect::VECTOR ); - if ( sel->exec() ) - { - uri = sel->gisdbase + "/" + sel->location + "/" + sel->mapset + "/" + sel->map + "/" + sel->layer; - } -// QgsDebugMsg(QString("plugin URI: %1").arg(uri)); - if ( uri.length() == 0 ) - { -// QgsDebugMsg("Nothing was selected"); - return; - } - else - { -// QgsDebugMsg("Add new vector layer"); - - // create vector name: vector layer - QString name = sel->map; - - QString field; - QString type; - - if ( !sel->layer.startsWith( "topo_" ) ) - { - QRegExp rx( "(\\d+)_(.+)" ); - if ( rx.indexIn( sel->layer ) != -1 ) - { - field = rx.cap( 1 ); - type = rx.cap( 2 ); - } - } - - // Set location - QgsGrass::setLocation( sel->gisdbase, sel->location ); - - /* Open vector */ - try - { - //Vect_set_open_level( 2 ); - struct Map_info map; - int level = Vect_open_old_head( &map, sel->map.toUtf8().data(), - sel->mapset.toUtf8().data() ); - - if ( level == 1 ) - { - QgsDebugMsg( "Cannot open vector on level 2" ); - QMessageBox::warning( 0, tr( "Warning" ), tr( "Cannot open vector %1 in mapset %2 on level 2 (topology not available, try to rebuild topology using v.build module)." ).arg( sel->map ).arg( sel->mapset ) ); - Vect_close( &map ); - return; - } - else if ( level < 1 ) - { - QgsDebugMsg( "Cannot open vector" ); - QMessageBox::warning( 0, tr( "Warning" ), tr( "Cannot open vector %1 in mapset %2" ).arg( sel->map ).arg( sel->mapset ) ); - return; - } - - if ( level >= 2 ) - { - if ( !sel->layer.startsWith( "topo_" ) ) - { - // Count layers - int cnt = 0; - int ncidx = Vect_cidx_get_num_fields( &map ); - - for ( int i = 0; i < ncidx; i++ ) - { - int field = Vect_cidx_get_field_number( &map, i ); - - if ( Vect_cidx_get_type_count( &map, field, GV_POINT | GV_LINE | GV_AREA ) > 0 || - ( field > 1 && Vect_cidx_get_type_count( &map, field, GV_BOUNDARY ) ) ) - { - cnt++; - } - } - - if ( cnt > 1 ) - { - name.append( " " + field ); - - // No need to ad type, the type is obvious from the legend - } - } - else - { - name.append( " " + sel->layer ); - } - } - - Vect_close( &map ); - } - catch ( QgsGrass::Exception &e ) - { - QMessageBox::warning( 0, tr( "Warning" ), tr( "Cannot open GRASS vector:\n %1" ).arg( e.what() ) ); - } - - qGisInterface->addVectorLayer( uri, name, "grass" ); - } -} - -// Slot called when the "Add GRASS raster layer" menu item is triggered -void QgsGrassPlugin::addRaster() -{ -// QgsDebugMsg("entered."); - QString uri; - - QgsGrassSelect *sel = new QgsGrassSelect( qGisInterface->mainWindow(), QgsGrassSelect::RASTER ); - if ( sel->exec() ) - { - QString element; - if ( sel->selectedType == QgsGrassSelect::RASTER ) - { - element = "cellhd"; - } - else // GROUP - { - element = "group"; - } - - uri = sel->gisdbase + "/" + sel->location + "/" + sel->mapset + "/" + element + "/" + sel->map; - } - -// QgsDebugMsg(QString("plugin URI: %1").arg(uri)); - - if ( uri.length() == 0 ) - { -// QgsDebugMsg("Nothing was selected"); - return; - } - else - { - -// QgsDebugMsg("Add new raster layer"); - - // create raster name - int pos = uri.lastIndexOf( '/' ); - pos = uri.lastIndexOf( '/', pos - 1 ); - QString name = uri.right( uri.length() - pos - 1 ); - name.replace( '/', ' ' ); - - //qGisInterface->addRasterLayer( uri, sel->map ); - qGisInterface->addRasterLayer( uri, sel->map, "grassraster" ); - } -} - // Open tools void QgsGrassPlugin::openTools() { @@ -859,8 +695,6 @@ void QgsGrassPlugin::unload() qGisInterface->removePluginMenu( tr( "&GRASS" ), mOpenMapsetAction ); qGisInterface->removePluginMenu( tr( "&GRASS" ), mNewMapsetAction ); qGisInterface->removePluginMenu( tr( "&GRASS" ), mCloseMapsetAction ); - qGisInterface->removePluginMenu( tr( "&GRASS" ), mAddVectorAction ); - qGisInterface->removePluginMenu( tr( "&GRASS" ), mAddRasterAction ); qGisInterface->removePluginMenu( tr( "&GRASS" ), mOpenToolsAction ); qGisInterface->removePluginMenu( tr( "&GRASS" ), mRegionAction ); qGisInterface->removePluginMenu( tr( "&GRASS" ), mEditRegionAction ); @@ -870,8 +704,6 @@ void QgsGrassPlugin::unload() delete mOpenMapsetAction; delete mNewMapsetAction; delete mCloseMapsetAction; - delete mAddVectorAction; - delete mAddRasterAction; delete mOpenToolsAction; delete mRegionAction; delete mEditRegionAction; @@ -904,8 +736,6 @@ void QgsGrassPlugin::setCurrentTheme( QString theThemeName ) mNewMapsetAction->setIcon( getThemeIcon( "grass_new_mapset.png" ) ); mCloseMapsetAction->setIcon( getThemeIcon( "grass_close_mapset.png" ) ); - mAddVectorAction->setIcon( getThemeIcon( "grass_add_vector.png" ) ); - mAddRasterAction->setIcon( getThemeIcon( "grass_add_raster.png" ) ); mOpenToolsAction->setIcon( getThemeIcon( "grass_tools.png" ) ); mRegionAction->setIcon( getThemeIcon( "grass_region.png" ) ); diff --git a/src/plugins/grass/qgsgrassplugin.h b/src/plugins/grass/qgsgrassplugin.h index b67a8287217..1180479f1f9 100644 --- a/src/plugins/grass/qgsgrassplugin.h +++ b/src/plugins/grass/qgsgrassplugin.h @@ -85,10 +85,6 @@ class QgsGrassPlugin : public QObject, public QgisPlugin public slots: //! init the gui virtual void initGui() override; - //! Show the dialog box for new vector - void addVector(); - //! Show the dialog box for new raster - void addRaster(); //! Start vector editing void edit(); //! unload the plugin @@ -164,8 +160,6 @@ class QgsGrassPlugin : public QObject, public QgisPlugin QAction *mOpenMapsetAction; QAction *mNewMapsetAction; QAction *mCloseMapsetAction; - QAction *mAddVectorAction; - QAction *mAddRasterAction; QAction *mOpenToolsAction; QAction *mEditRegionAction; QAction *mEditAction; diff --git a/src/plugins/grass/themes/default/grass_add_raster.png b/src/plugins/grass/themes/default/grass_add_raster.png deleted file mode 100644 index 14023b1d965d4dbaaece0596179ac5641d215120..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 714 zcmV;*0yX`KP)!7=|w&QNQ^u5gd ze(%eC-uu0o-)}@!`Jb}t8Sacftjb_yWTYydN~NmCZ(cr^KgY4=b8Aek1LW{<%Ye3{ zKE{gfW2FbPv$Hi_QEM)us0ufRt|AJ@+b@vwe?|iU#>U3}GQ3E=ubJ7AE|1(+JEb5C z`)}fQ{xblHXNiG@M+={zg(W)HSwxId40b_;AoR$U(g-3F%7e16X+W$kz={Wy!Ym?Y zA5tJOowx+tE&J+z2M6Etid3-T0mk@rlrntDyuPVM-(t9h5>^t4YHmGgAlUJMY#~b+ zhNz|Y5OM@uSG3S@1yKt97)@Muq~TBd4Qs-8a3Jj zY&KlMtC=S?=jT`EaSJYv>rl)W5hM?sL2(gE4FjT-&ZODR@8WuHdFuZDwIApoPmW(y z^l{SwC+pDJ(Z#vb=dp~%=(SP8Fl1?U2|w`Jad!qcob_bW0MGa6KG97qw%5kqlf3}g z#>O@_aVyS-vp(3;W>ww02m$^rtef=)!f9;1ORJWYkd6rp*4V$`9)91*_yGm z^8+|g!Q$fLKLO^J=PLIzi5UQ<7N)8^6~N@=WSz6AS}VzwhPD_Bq7R!o(09OKd9b>+ wiiw$no^R6ZZ%ZPXxGl&sQQM93ofuDl1It_3tUt`8%m4rY07*qoM6N<$f>4)4d;kCd diff --git a/src/plugins/grass/themes/default/grass_add_vector.png b/src/plugins/grass/themes/default/grass_add_vector.png deleted file mode 100644 index bfe8587f8188f119a29143e708f45abd60653b40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1061 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 QYp))F_BrZZ>qWfuKW)_*7ytkO diff --git a/src/plugins/grass/themes_old/classic/grass_add_vector.png b/src/plugins/grass/themes_old/classic/grass_add_vector.png deleted file mode 100644 index 2a3a46f207439ee128546414a4d23602bbec7233..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1203 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 KMNUMnLSTY={a!8r diff --git a/src/plugins/grass/themes_old/default/grass_add_vector.png b/src/plugins/grass/themes_old/default/grass_add_vector.png deleted file mode 100644 index e180fc1991238dc33e91795f937ee73d71c829af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2387 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