@@ -424,8 +424,12 @@ QString QgsGrassModelItem::name()
424
424
case QgsGrassModel::Rasters:
425
425
return " raster" ;
426
426
break ;
427
+ case QgsGrassModel::Regions:
428
+ return " region" ;
429
+ break ;
427
430
case QgsGrassModel::Vector:
428
431
case QgsGrassModel::Raster:
432
+ case QgsGrassModel::Region:
429
433
return mMap ;
430
434
break ;
431
435
case QgsGrassModel::VectorLayer:
@@ -606,9 +610,11 @@ void QgsGrassModel::addItems(QgsGrassModelItem *item, QStringList list, int type
606
610
break ;
607
611
case QgsGrassModel::Vectors:
608
612
case QgsGrassModel::Rasters:
613
+ case QgsGrassModel::Regions:
609
614
break ;
610
615
case QgsGrassModel::Vector:
611
616
case QgsGrassModel::Raster:
617
+ case QgsGrassModel::Region:
612
618
newItem->mMap = name;
613
619
break ;
614
620
case QgsGrassModel::VectorLayer:
@@ -643,10 +649,14 @@ void QgsGrassModel::refreshItem(QgsGrassModelItem *item)
643
649
item->mLocation , item->mMapset );
644
650
QStringList rasters = QgsGrass::rasters ( item->mGisbase ,
645
651
item->mLocation , item->mMapset );
652
+ QStringList regions = QgsGrass::elements ( item->mGisbase ,
653
+ item->mLocation , item->mMapset ,
654
+ " windows" );
646
655
647
656
QStringList list;
648
657
if ( vectors.count () > 0 ) list.append (" vector" );
649
658
if ( rasters.count () > 0 ) list.append (" raster" );
659
+ if ( regions.count () > 0 ) list.append (" region" );
650
660
651
661
removeItems (item, list);
652
662
@@ -656,11 +666,15 @@ void QgsGrassModel::refreshItem(QgsGrassModelItem *item)
656
666
if ( rasters.count () > 0 )
657
667
addItems (item, QStringList (" raster" ), QgsGrassModel::Rasters );
658
668
669
+ if ( regions.count () > 0 )
670
+ addItems (item, QStringList (" region" ), QgsGrassModel::Regions );
671
+
659
672
}
660
673
break ;
661
674
662
675
case QgsGrassModel::Vectors:
663
676
case QgsGrassModel::Rasters:
677
+ case QgsGrassModel::Regions:
664
678
{
665
679
QStringList list;
666
680
int type;
@@ -670,12 +684,18 @@ void QgsGrassModel::refreshItem(QgsGrassModelItem *item)
670
684
item->mMapset );
671
685
type = QgsGrassModel::Vector;
672
686
}
673
- else
687
+ else if ( item-> mType == QgsGrassModel::Rasters )
674
688
{
675
689
list = QgsGrass::rasters ( item->mGisbase , item->mLocation ,
676
690
item->mMapset );
677
691
type = QgsGrassModel::Raster;
678
692
}
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
+ }
679
699
680
700
removeItems (item, list);
681
701
addItems (item, list, type );
@@ -698,6 +718,9 @@ void QgsGrassModel::refreshItem(QgsGrassModelItem *item)
698
718
case QgsGrassModel::Raster:
699
719
break ;
700
720
721
+ case QgsGrassModel::Region:
722
+ break ;
723
+
701
724
case QgsGrassModel::VectorLayer:
702
725
break ;
703
726
}
@@ -801,6 +824,10 @@ QVariant QgsGrassModel::data ( const QModelIndex &index, int role ) const
801
824
return mIconRasterLayer ;
802
825
break ;
803
826
827
+ case QgsGrassModel::Region :
828
+ return mIconFile ;
829
+ break ;
830
+
804
831
case QgsGrassModel::VectorLayer :
805
832
if ( item->mLayer .contains (" point" ) )
806
833
{
0 commit comments