Skip to content

Commit 5c55183

Browse files
committed
[GRASS] distinct icons for open/searched mapset
1 parent 2f8ea52 commit 5c55183

File tree

5 files changed

+23
-1
lines changed

5 files changed

+23
-1
lines changed

images/images.qrc

+2
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,8 @@
9292
<file>themes/default/gpsicons/polarchart.svg</file>
9393
<file>themes/default/grass_location.png</file>
9494
<file>themes/default/grass_mapset.png</file>
95+
<file>themes/default/grass_mapset_open.png</file>
96+
<file>themes/default/grass_mapset_search.png</file>
9597
<file>themes/default/histogram.png</file>
9698
<file>themes/default/join_bevel.png</file>
9799
<file>themes/default/join_miter.png</file>
2.34 KB
Loading
2.38 KB
Loading

src/providers/grass/qgsgrassprovidermodule.cpp

+20
Original file line numberDiff line numberDiff line change
@@ -353,9 +353,29 @@ QgsGrassMapsetItem::QgsGrassMapsetItem( QgsDataItem* parent, QString dirPath, QS
353353
mGrassObject = QgsGrassObject( gisdbase, location, mName, "", QgsGrassObject::Mapset );
354354
mActions = new QgsGrassItemActions( mGrassObject, true, this );
355355

356+
// emit data changed to possibly change icon
357+
connect( QgsGrass::instance(), SIGNAL( mapsetChanged() ), this, SLOT( emitDataChanged() ) );
358+
connect( QgsGrass::instance(), SIGNAL( mapsetSearchPathChanged() ), this, SLOT( emitDataChanged() ) );
359+
356360
mIconName = "grass_mapset.png";
357361
}
358362

363+
QIcon QgsGrassMapsetItem::icon()
364+
{
365+
if ( mGrassObject == QgsGrass::getDefaultMapsetObject() )
366+
{
367+
return QgsApplication::getThemeIcon( "/grass_mapset_open.png" );
368+
}
369+
else if ( mGrassObject.locationIdentical( QgsGrass::getDefaultLocationObject() ) )
370+
{
371+
if ( QgsGrass::instance()->isMapsetInSearchPath( mName ) )
372+
{
373+
return QgsApplication::getThemeIcon( "/grass_mapset_search.png" );
374+
}
375+
}
376+
return QgsDataItem::icon();
377+
}
378+
359379
void QgsGrassMapsetItem::setState( State state )
360380
{
361381
QgsDebugMsg( "Entered" );

src/providers/grass/qgsgrassprovidermodule.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ class QgsGrassMapsetItem : public QgsDirectoryItem, public QgsGrassObjectItemBas
9090

9191
virtual void setState( State state ) override;
9292

93-
QIcon icon() override { return QgsDataItem::icon(); }
93+
QIcon icon() override;
9494

9595
QVector<QgsDataItem*> createChildren() override;
9696
virtual QList<QAction*> actions() override { return mActions->actions(); }

0 commit comments

Comments
 (0)