[QGIS Commit] r12937 - trunk/qgis/src/plugins/grass
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Fri Feb 12 07:02:27 EST 2010
Author: rblazek
Date: 2010-02-12 07:02:26 -0500 (Fri, 12 Feb 2010)
New Revision: 12937
Modified:
trunk/qgis/src/plugins/grass/qgsgrassmapcalc.h
trunk/qgis/src/plugins/grass/qgsgrassmodule.cpp
trunk/qgis/src/plugins/grass/qgsgrassmodule.h
Log:
handle better mumltiple empty output
Modified: trunk/qgis/src/plugins/grass/qgsgrassmapcalc.h
===================================================================
--- trunk/qgis/src/plugins/grass/qgsgrassmapcalc.h 2010-02-12 09:55:42 UTC (rev 12936)
+++ trunk/qgis/src/plugins/grass/qgsgrassmapcalc.h 2010-02-12 12:02:26 UTC (rev 12937)
@@ -66,6 +66,7 @@
QStringList checkRegion();
bool inputRegion( struct Cell_head *window, bool all );
QStringList output( int type );
+ bool hasOutput ( int type ) { return true; }
/** \brief recieves contentsMousePressEvent from view */
void mousePressEvent( QMouseEvent* );
Modified: trunk/qgis/src/plugins/grass/qgsgrassmodule.cpp
===================================================================
--- trunk/qgis/src/plugins/grass/qgsgrassmodule.cpp 2010-02-12 09:55:42 UTC (rev 12936)
+++ trunk/qgis/src/plugins/grass/qgsgrassmodule.cpp 2010-02-12 12:02:26 UTC (rev 12937)
@@ -229,8 +229,8 @@
}
// Hide display if there is no output
- if ( mOptions->output( QgsGrassModuleOption::Vector ).size() == 0
- && mOptions->output( QgsGrassModuleOption::Raster ).size() == 0 )
+ if ( !mOptions->hasOutput( QgsGrassModuleOption::Vector )
+ && !mOptions->hasOutput( QgsGrassModuleOption::Raster ) )
{
mViewButton->hide();
}
@@ -766,7 +766,6 @@
#endif
}
-
QStringList QgsGrassModuleStandardOptions::output( int type )
{
QgsDebugMsg( "called." );
@@ -785,7 +784,9 @@
if ( opt->outputType() == type )
{
QString out = opt->value();
- list.append( out );
+ if ( !out.isEmpty() ) {
+ list.append( out );
+ }
}
}
}
@@ -793,6 +794,28 @@
return list;
}
+bool QgsGrassModuleStandardOptions::hasOutput( int type )
+{
+ QgsDebugMsg( "called." );
+ QStringList list;
+
+ for ( unsigned int i = 0; i < mItems.size(); i++ )
+ {
+ QgsGrassModuleOption *opt = dynamic_cast<QgsGrassModuleOption *>( mItems[i] );
+ if ( !opt )
+ continue;
+
+ QgsDebugMsg( "opt->key() = " + opt->key() );
+
+ if ( opt->isOutput() )
+ {
+ if ( opt->outputType() == type ) return true;
+ }
+ }
+
+ return false;
+}
+
QStringList QgsGrassModuleStandardOptions::ready()
{
QgsDebugMsg( "entered." );
Modified: trunk/qgis/src/plugins/grass/qgsgrassmodule.h
===================================================================
--- trunk/qgis/src/plugins/grass/qgsgrassmodule.h 2010-02-12 09:55:42 UTC (rev 12936)
+++ trunk/qgis/src/plugins/grass/qgsgrassmodule.h 2010-02-12 12:02:26 UTC (rev 12937)
@@ -192,6 +192,9 @@
//! Get list of current output maps
virtual QStringList output( int type ) { return QStringList() ; }
+ //! Has any output
+ virtual bool hasOutput ( int type ) { return true; }
+
//! Has raster input or output
virtual bool usesRegion() { return false; }
@@ -265,6 +268,7 @@
void thawOutput();
QStringList ready() ;
QStringList output( int type );
+ bool hasOutput ( int type );
QStringList checkRegion();
bool usesRegion();
bool requestsRegion();
More information about the QGIS-commit
mailing list