@@ -476,3 +476,128 @@ QString QgsGrass::closeMapset ( )
476
476
477
477
return NULL ;
478
478
}
479
+
480
+ QStringList QgsGrass::locations ( QString gisbase )
481
+ {
482
+ #ifdef QGISDEBUG
483
+ std::cerr << " QgsGrass::locations gisbase = "
484
+ << gisbase.ascii () << std::endl;
485
+ #endif
486
+
487
+ QStringList list;
488
+
489
+ if ( gisbase.isEmpty () ) return list;
490
+
491
+ QDir d = QDir ( gisbase );
492
+ d.setFilter (QDir::NoDotAndDotDot|QDir::Dirs);
493
+
494
+ for ( int i = 0 ; i < d.count (); i++ )
495
+ {
496
+ if ( QFile::exists ( gisbase + " /" + d[i]
497
+ + " /PERMANENT/DEFAULT_WIND" ) )
498
+ {
499
+ list.append (QString (d[i]));
500
+ }
501
+ }
502
+ return list;
503
+ }
504
+
505
+ QStringList QgsGrass::mapsets ( QString gisbase, QString locationName )
506
+ {
507
+ #ifdef QGISDEBUG
508
+ std::cerr << " QgsGrass::mapsets gisbase = " << gisbase.ascii ()
509
+ << " locationName = " << locationName.ascii () << std::endl;
510
+ #endif
511
+
512
+ if ( gisbase.isEmpty () || locationName.isEmpty () )
513
+ return QStringList ();
514
+
515
+ return QgsGrass::mapsets ( gisbase + " /" + locationName );
516
+ }
517
+
518
+ QStringList QgsGrass::mapsets ( QString locationPath )
519
+ {
520
+ #ifdef QGISDEBUG
521
+ std::cerr << " QgsGrass::mapsets locationPath = "
522
+ << locationPath.ascii () << std::endl;
523
+ #endif
524
+
525
+ QStringList list;
526
+
527
+ if ( locationPath.isEmpty () ) return list;
528
+
529
+ QDir d = QDir ( locationPath );
530
+ d.setFilter (QDir::NoDotAndDotDot|QDir::Dirs);
531
+
532
+ for ( int i = 0 ; i < d.count (); i++ )
533
+ {
534
+ if ( QFile::exists ( locationPath + " /" + d[i] + " /WIND" ) )
535
+ {
536
+ list.append (d[i]);
537
+ }
538
+ }
539
+ return list;
540
+ }
541
+
542
+ QStringList QgsGrass::vectors ( QString gisbase, QString locationName,
543
+ QString mapsetName)
544
+ {
545
+ if ( gisbase.isEmpty () || locationName.isEmpty () || mapsetName.isEmpty () )
546
+ return QStringList ();
547
+
548
+ return QgsGrass::vectors ( gisbase + " /" + locationName + " /" + mapsetName );
549
+ }
550
+
551
+ QStringList QgsGrass::vectors ( QString mapsetPath )
552
+ {
553
+ #ifdef QGISDEBUG
554
+ std::cerr << " QgsGrass::vectors mapsetPath = "
555
+ << mapsetPath.ascii () << std::endl;
556
+ #endif
557
+
558
+ QStringList list;
559
+
560
+ if ( mapsetPath.isEmpty () ) return list;
561
+
562
+ QDir d = QDir ( mapsetPath + " /vector" );
563
+ d.setFilter (QDir::NoDotAndDotDot|QDir::Dirs);
564
+
565
+ for ( int i = 0 ; i < d.count (); i++ )
566
+ {
567
+ if ( QFile::exists ( mapsetPath + " /vector/" + d[i] + " /head" ) )
568
+ {
569
+ list.append (d[i]);
570
+ }
571
+ }
572
+ return list;
573
+ }
574
+
575
+ QStringList QgsGrass::rasters ( QString gisbase, QString locationName,
576
+ QString mapsetName)
577
+ {
578
+ if ( gisbase.isEmpty () || locationName.isEmpty () || mapsetName.isEmpty () )
579
+ return QStringList ();
580
+
581
+ return QgsGrass::rasters ( gisbase + " /" + locationName + " /" + mapsetName );
582
+ }
583
+
584
+ QStringList QgsGrass::rasters ( QString mapsetPath )
585
+ {
586
+ #ifdef QGISDEBUG
587
+ std::cerr << " QgsGrass::rasters mapsetPath = "
588
+ << mapsetPath.ascii () << std::endl;
589
+ #endif
590
+
591
+ QStringList list;
592
+
593
+ if ( mapsetPath.isEmpty () ) return list;
594
+
595
+ QDir d = QDir ( mapsetPath + " /cellhd" );
596
+ d.setFilter (QDir::Files);
597
+
598
+ for ( int i = 0 ; i < d.count (); i++ )
599
+ {
600
+ list.append (d[i]);
601
+ }
602
+ return list;
603
+ }
0 commit comments