Skip to content

Commit 42953e6

Browse files
committedAug 24, 2015
[GRASS] fixed saving mapset to project
1 parent 3c0fe13 commit 42953e6

File tree

6 files changed

+25
-5
lines changed

6 files changed

+25
-5
lines changed
 

‎src/plugins/grass/qgsgrassplugin.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ QgsGrassPlugin::~QgsGrassPlugin()
9393
{
9494
mEdit->closeEdit();
9595
}
96+
disconnect( QgsGrass::instance(), SIGNAL( mapsetChanged() ), this, SLOT( mapsetChanged() ) );
9697
QgsGrass::instance()->closeMapsetWarn();
9798
}
9899

@@ -181,7 +182,7 @@ void QgsGrassPlugin::initGui()
181182
connect( mRegionAction, SIGNAL( toggled( bool ) ), this, SLOT( switchRegion( bool ) ) );
182183
connect( mOpenMapsetAction, SIGNAL( triggered() ), this, SLOT( openMapset() ) );
183184
connect( mNewMapsetAction, SIGNAL( triggered() ), this, SLOT( newMapset() ) );
184-
connect( mCloseMapsetAction, SIGNAL( triggered() ), QgsGrass::instance(), SLOT( closeMapsetWarn() ) );
185+
connect( mCloseMapsetAction, SIGNAL( triggered() ), SLOT( closeMapset() ) );
185186

186187
// Add actions to a GRASS plugin menu
187188
qGisInterface->addPluginToMenu( tr( "&GRASS" ), mOpenMapsetAction );
@@ -527,6 +528,13 @@ void QgsGrassPlugin::openMapset()
527528
QMessageBox::warning( 0, tr( "Warning" ), tr( "Cannot open the mapset. %1" ).arg( err ) );
528529
return;
529530
}
531+
QgsGrass::saveMapset();
532+
}
533+
534+
void QgsGrassPlugin::closeMapset()
535+
{
536+
QgsGrass::instance()->closeMapsetWarn();
537+
QgsGrass::saveMapset();
530538
}
531539

532540
void QgsGrassPlugin::newMapset()
@@ -577,6 +585,7 @@ void QgsGrassPlugin::projectRead()
577585
QgsGrass::instance()->closeMapsetWarn();
578586

579587
QString err = QgsGrass::openMapset( gisdbase, location, mapset );
588+
QgsGrass::saveMapset();
580589

581590
if ( !err.isNull() )
582591
{

‎src/plugins/grass/qgsgrassplugin.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,10 @@ class QgsGrassPlugin : public QObject, public QgisPlugin
9797
void openTools( void );
9898
//! Create new mapset
9999
void newMapset();
100-
//! Open existing mapset
100+
//! Open existing mapset and save it to project
101101
void openMapset();
102+
//! Close mapset and save it to project
103+
void closeMapset();
102104
//! Current mapset changed (opened/closed)
103105
void mapsetChanged();
104106
//! Create new vector

‎src/plugins/grass/qgsgrasstools.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ QgsGrassTools::QgsGrassTools( QgisInterface *iface, QWidget * parent, const char
153153
setupUi( this );
154154
QPushButton * closeMapsetButton = new QPushButton( QgsApplication::getThemeIcon( "mActionFileExit.png" ), tr( "Close mapset" ), this );
155155
mTabWidget->setCornerWidget( closeMapsetButton );
156-
connect( closeMapsetButton, SIGNAL( clicked() ), QgsGrass::instance(), SLOT( closeMapsetWarn() ) );
156+
connect( closeMapsetButton, SIGNAL( clicked() ), SLOT( closeMapset() ) );
157157

158158
qRegisterMetaType<QgsDetailedItemData>();
159159

@@ -537,6 +537,12 @@ void QgsGrassTools::removeEmptyItems( QStandardItem *item )
537537
}
538538
}
539539

540+
void QgsGrassTools::closeMapset()
541+
{
542+
QgsGrass::instance()->closeMapsetWarn();
543+
QgsGrass::saveMapset();
544+
}
545+
540546
void QgsGrassTools::mapsetChanged()
541547
{
542548
QgsDebugMsg( "entered." );

‎src/plugins/grass/qgsgrasstools.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,9 @@ class QgsGrassTools: public QDockWidget, private Ui::QgsGrassToolsBase
7777
//! Save window position
7878
void saveWindowLocation();
7979

80+
//! Close mapset and save it to project
81+
void closeMapset();
82+
8083
//! Current mapset changed
8184
void mapsetChanged();
8285

‎src/providers/grass/qgsgrass.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -856,7 +856,6 @@ QString QgsGrass::openMapset( const QString& gisdbase,
856856

857857
mMapsetLock = lock;
858858

859-
saveMapset();
860859
emit QgsGrass::instance()->mapsetChanged();
861860
return QString::null;
862861
}
@@ -919,7 +918,6 @@ QString QgsGrass::closeMapset()
919918
}
920919
}
921920

922-
saveMapset();
923921
emit QgsGrass::instance()->mapsetChanged();
924922
return QString::null;
925923
}

‎src/providers/grass/qgsgrassprovidermodule.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -626,7 +626,9 @@ void QgsGrassMapsetItem::openMapset()
626626
if ( !error.isEmpty() )
627627
{
628628
QgsGrass::warning( error );
629+
return;
629630
}
631+
QgsGrass::saveMapset();
630632
}
631633

632634
//----------------------- QgsGrassObjectItemBase ------------------------------

0 commit comments

Comments
 (0)
Please sign in to comment.