Skip to content

Commit 77d3c81

Browse files
author
rblazek
committed
regions added to browser
git-svn-id: http://svn.osgeo.org/qgis/trunk@5050 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent fa9db4b commit 77d3c81

File tree

3 files changed

+42
-3
lines changed

3 files changed

+42
-3
lines changed

src/plugins/grass/qgsgrassbrowser.cpp

+13-1
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@ void QgsGrassBrowser::deleteMap()
216216
QString typeName;
217217
if ( type == QgsGrassModel::Raster ) typeName = "rast";
218218
else if ( type == QgsGrassModel::Vector ) typeName = "vect";
219+
else if ( type == QgsGrassModel::Region ) typeName = "region";
219220

220221
if ( mapset != QgsGrass::getDefaultMapset() )
221222
{
@@ -304,6 +305,17 @@ void QgsGrassBrowser::setRegion()
304305

305306
Vect_close (&Map);
306307
}
308+
else if ( type == QgsGrassModel::Region )
309+
{
310+
if ( G__get_window (&window, "windows",
311+
map.toLocal8Bit().data(),
312+
mapset.toLocal8Bit().data() ) != NULL )
313+
{
314+
QMessageBox::warning( 0, "Warning",
315+
"Cannot read region" );
316+
return;
317+
}
318+
}
307319
}
308320

309321
// Reset mapset (selected maps could be in a different one)
@@ -347,7 +359,7 @@ void QgsGrassBrowser::selectionChanged(const QItemSelection & selected, const QI
347359
{
348360
mActionAddMap->setEnabled(true);
349361
}
350-
if ( type == QgsGrassModel::Raster || type == QgsGrassModel::Vector )
362+
if ( type == QgsGrassModel::Raster || type == QgsGrassModel::Vector || type == QgsGrassModel::Region )
351363
{
352364
mActionSetRegion->setEnabled(true);
353365

src/plugins/grass/qgsgrassmodel.cpp

+28-1
Original file line numberDiff line numberDiff line change
@@ -424,8 +424,12 @@ QString QgsGrassModelItem::name()
424424
case QgsGrassModel::Rasters:
425425
return "raster";
426426
break;
427+
case QgsGrassModel::Regions:
428+
return "region";
429+
break;
427430
case QgsGrassModel::Vector:
428431
case QgsGrassModel::Raster:
432+
case QgsGrassModel::Region:
429433
return mMap;
430434
break;
431435
case QgsGrassModel::VectorLayer:
@@ -606,9 +610,11 @@ void QgsGrassModel::addItems(QgsGrassModelItem *item, QStringList list, int type
606610
break;
607611
case QgsGrassModel::Vectors:
608612
case QgsGrassModel::Rasters:
613+
case QgsGrassModel::Regions:
609614
break;
610615
case QgsGrassModel::Vector:
611616
case QgsGrassModel::Raster:
617+
case QgsGrassModel::Region:
612618
newItem->mMap = name;
613619
break;
614620
case QgsGrassModel::VectorLayer:
@@ -643,10 +649,14 @@ void QgsGrassModel::refreshItem(QgsGrassModelItem *item)
643649
item->mLocation, item->mMapset );
644650
QStringList rasters = QgsGrass::rasters ( item->mGisbase,
645651
item->mLocation, item->mMapset );
652+
QStringList regions = QgsGrass::elements ( item->mGisbase,
653+
item->mLocation, item->mMapset,
654+
"windows" );
646655

647656
QStringList list;
648657
if ( vectors.count() > 0 ) list.append("vector");
649658
if ( rasters.count() > 0 ) list.append("raster");
659+
if ( regions.count() > 0 ) list.append("region");
650660

651661
removeItems(item, list);
652662

@@ -656,11 +666,15 @@ void QgsGrassModel::refreshItem(QgsGrassModelItem *item)
656666
if ( rasters.count() > 0 )
657667
addItems(item, QStringList("raster"), QgsGrassModel::Rasters );
658668

669+
if ( regions.count() > 0 )
670+
addItems(item, QStringList("region"), QgsGrassModel::Regions );
671+
659672
}
660673
break;
661674

662675
case QgsGrassModel::Vectors:
663676
case QgsGrassModel::Rasters:
677+
case QgsGrassModel::Regions:
664678
{
665679
QStringList list;
666680
int type;
@@ -670,12 +684,18 @@ void QgsGrassModel::refreshItem(QgsGrassModelItem *item)
670684
item->mMapset );
671685
type = QgsGrassModel::Vector;
672686
}
673-
else
687+
else if ( item->mType == QgsGrassModel::Rasters )
674688
{
675689
list = QgsGrass::rasters ( item->mGisbase, item->mLocation,
676690
item->mMapset );
677691
type = QgsGrassModel::Raster;
678692
}
693+
else if ( item->mType == QgsGrassModel::Regions )
694+
{
695+
list = QgsGrass::elements ( item->mGisbase, item->mLocation,
696+
item->mMapset, "windows" );
697+
type = QgsGrassModel::Region;
698+
}
679699

680700
removeItems(item, list);
681701
addItems(item, list, type );
@@ -698,6 +718,9 @@ void QgsGrassModel::refreshItem(QgsGrassModelItem *item)
698718
case QgsGrassModel::Raster:
699719
break;
700720

721+
case QgsGrassModel::Region:
722+
break;
723+
701724
case QgsGrassModel::VectorLayer:
702725
break;
703726
}
@@ -801,6 +824,10 @@ QVariant QgsGrassModel::data ( const QModelIndex &index, int role ) const
801824
return mIconRasterLayer;
802825
break;
803826

827+
case QgsGrassModel::Region :
828+
return mIconFile;
829+
break;
830+
804831
case QgsGrassModel::VectorLayer :
805832
if ( item->mLayer.contains("point") )
806833
{

src/plugins/grass/qgsgrassmodel.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class QgsGrassModel: public QAbstractItemModel
4545

4646
//! Item types
4747
enum ItemType { None, Gisbase, Location, Mapset, Rasters, Vectors, Raster,
48-
Vector, VectorLayer };
48+
Vector, VectorLayer, Regions, Region };
4949

5050
//! Set GISBASE and LOCATION_NAME
5151
void setLocation ( const QString &gisbase, const QString &location );

0 commit comments

Comments
 (0)