Skip to content

Commit d6ac833

Browse files
author
rblazek
committed
pepare for G_is_gisbase, G_is_location, G_is_mapset, G_list
git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@5487 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent de1fb26 commit d6ac833

File tree

2 files changed

+92
-7
lines changed

2 files changed

+92
-7
lines changed

src/providers/grass/qgsgrass.cpp

+89-7
Original file line numberDiff line numberDiff line change
@@ -188,17 +188,26 @@ void QgsGrass::init( void )
188188
*/
189189
bool QgsGrass::isValidGrassBaseDir(QString const gisBase)
190190
{
191+
std::cerr << "isValidGrassBaseDir()" << std::endl;
191192
if ( gisBase.isEmpty() )
192193
{
193194
return FALSE;
194195
}
195-
196-
QFileInfo gbi ( gisBase + "/etc/element_list" );
197-
if ( gbi.exists() ) {
198-
return TRUE;
199-
} else {
200-
return FALSE;
201-
}
196+
197+
/* TODO: G_is_gisbase() was added to GRASS 6.1 06-05-24,
198+
enable its use after some period (others do update) */
199+
/*
200+
if ( QgsGrass::versionMajor() > 6 || QgsGrass::versionMinor() > 0 )
201+
{
202+
if ( G_is_gisbase( gisBase.toLocal8Bit().constData() ) ) return TRUE;
203+
}
204+
else
205+
{
206+
*/
207+
QFileInfo gbi ( gisBase + "/etc/element_list" );
208+
if ( gbi.exists() ) return TRUE;
209+
//}
210+
return FALSE;
202211
}
203212

204213
bool QgsGrass::activeMode( void )
@@ -566,9 +575,37 @@ QStringList QgsGrass::mapsets ( QString locationPath )
566575
QStringList QgsGrass::vectors ( QString gisbase, QString locationName,
567576
QString mapsetName)
568577
{
578+
std::cerr << "QgsGrass::vectors()" << std::endl;
579+
569580
if ( gisbase.isEmpty() || locationName.isEmpty() || mapsetName.isEmpty() )
570581
return QStringList();
571582

583+
/* TODO: G_list() was added to GRASS 6.1 06-05-24,
584+
enable its use after some period (others do update) */
585+
/*
586+
if ( QgsGrass::versionMajor() > 6 || QgsGrass::versionMinor() > 0 )
587+
{
588+
QStringList list;
589+
590+
char **glist = G_list( G_ELEMENT_VECTOR,
591+
gisbase.toLocal8Bit().constData(),
592+
locationName.toLocal8Bit().constData(),
593+
mapsetName.toLocal8Bit().constData() );
594+
595+
int i = 0;
596+
597+
while ( glist[i] )
598+
{
599+
list.append( QString(glist[i]) );
600+
i++;
601+
}
602+
603+
G_free_list ( glist );
604+
605+
return list;
606+
}
607+
*/
608+
572609
return QgsGrass::vectors ( gisbase + "/" + locationName + "/" + mapsetName );
573610
}
574611

@@ -602,9 +639,38 @@ QStringList QgsGrass::vectors ( QString mapsetPath )
602639
QStringList QgsGrass::rasters ( QString gisbase, QString locationName,
603640
QString mapsetName)
604641
{
642+
std::cerr << "QgsGrass::rasters()" << std::endl;
643+
605644
if ( gisbase.isEmpty() || locationName.isEmpty() || mapsetName.isEmpty() )
606645
return QStringList();
607646

647+
648+
/* TODO: G_list() was added to GRASS 6.1 06-05-24,
649+
enable its use after some period (others do update) */
650+
/*
651+
if ( QgsGrass::versionMajor() > 6 || QgsGrass::versionMinor() > 0 )
652+
{
653+
QStringList list;
654+
655+
char **glist = G_list( G_ELEMENT_RASTER,
656+
gisbase.toLocal8Bit().constData(),
657+
locationName.toLocal8Bit().constData(),
658+
mapsetName.toLocal8Bit().constData() );
659+
660+
int i = 0;
661+
662+
while ( glist[i] )
663+
{
664+
list.append( QString(glist[i]) );
665+
i++;
666+
}
667+
668+
G_free_list ( glist );
669+
670+
return list;
671+
}
672+
*/
673+
608674
return QgsGrass::rasters ( gisbase + "/" + locationName + "/" + mapsetName );
609675
}
610676

@@ -858,4 +924,20 @@ int QgsGrass::versionMinor()
858924
return QString(GRASS_VERSION_MINOR).toInt();
859925
}
860926

927+
bool QgsGrass::isMapset ( QString path )
928+
{
929+
/* TODO: G_is_mapset() was added to GRASS 6.1 06-05-24,
930+
enable its use after some period (others do update) */
931+
if ( QgsGrass::versionMajor() > 6 || QgsGrass::versionMinor() > 0 )
932+
{
933+
if ( G_is_mapset( path.toLocal8Bit().constData() ) ) return true;
934+
}
935+
else
936+
{
937+
QString windf = path + "/WIND";
938+
if ( QFile::exists ( windf ) ) return true;
939+
}
940+
941+
return false;
942+
}
861943

src/providers/grass/qgsgrass.h

+3
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,9 @@ class QgsGrass {
145145

146146
static void init (void);
147147

148+
// ! test if the directory is mapset
149+
static bool isMapset ( QString path );
150+
148151
//! Library version
149152
static int QgsGrass::versionMajor();
150153
static int QgsGrass::versionMinor();

0 commit comments

Comments
 (0)