Skip to content

Commit 120d3e0

Browse files
author
rblazek
committed
set also unused flags
git-svn-id: http://svn.osgeo.org/qgis/trunk@5268 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 78384a6 commit 120d3e0

File tree

1 file changed

+46
-1
lines changed

1 file changed

+46
-1
lines changed

src/plugins/grass/qgsgrassmodule.cpp

+46-1
Original file line numberDiff line numberDiff line change
@@ -501,6 +501,26 @@ QgsGrassModuleStandardOptions::QgsGrassModuleStandardOptions (
501501
n = n.nextSibling();
502502
}
503503

504+
// Create list of flags
505+
n = gDocElem.firstChild();
506+
while( !n.isNull() )
507+
{
508+
QDomElement e = n.toElement();
509+
if( !e.isNull() )
510+
{
511+
QString optionType = e.tagName();
512+
std::cout << "optionType = " << optionType.toLocal8Bit().data() << std::endl;
513+
514+
if ( optionType == "flag" )
515+
{
516+
QString name = e.attribute("name").trimmed();
517+
std::cout << "name = " << name.data() << std::endl;
518+
mFlagNames.append( name );
519+
}
520+
}
521+
n = n.nextSibling();
522+
}
523+
504524
layout->addStretch();
505525
}
506526

@@ -1139,15 +1159,18 @@ void QgsGrassModule::run()
11391159
QFileInfo fi ( exe );
11401160
if ( !fi.isExecutable() )
11411161
{
1162+
QStringList usedFlagNames;
1163+
11421164
// Set enviroment variables
11431165
for ( int i = 0; i < arguments.size(); i++ )
11441166
{
11451167
QString arg = arguments.at(i);
11461168
QString env;
11471169
if ( arg.at(0) == '-' ) //flag
11481170
{
1149-
env = "GIS_FLAG_" + QString(arg.at(0).toUpper())
1171+
env = "GIS_FLAG_" + QString(arg.at(1).toUpper())
11501172
+ "=1";
1173+
usedFlagNames.append(arg.at(1));
11511174
}
11521175
else // option
11531176
{
@@ -1158,6 +1181,28 @@ void QgsGrassModule::run()
11581181
std::cerr << "set: " << env.ascii() << std::endl;
11591182
environment.append(env);
11601183
}
1184+
1185+
// Set remaining flags
1186+
QStringList allFlagNames = mOptions->flagNames();
1187+
for ( int i = 0; i < allFlagNames.size(); i++ )
1188+
{
1189+
bool used = false;
1190+
for ( int j = 0; j < usedFlagNames.size(); j++ )
1191+
{
1192+
if ( usedFlagNames.at(j) == allFlagNames.at(i) )
1193+
{
1194+
used = true;
1195+
break;
1196+
}
1197+
}
1198+
if ( used ) continue;
1199+
QString env = "GIS_FLAG_"
1200+
+ QString(allFlagNames.at(i).toUpper())
1201+
+ "=0";
1202+
std::cerr << "set: " << env.ascii() << std::endl;
1203+
environment.append(env);
1204+
}
1205+
11611206
arguments.clear();
11621207
arguments.append ( "@ARGS_PARSED@" );
11631208
}

0 commit comments

Comments
 (0)