Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
fixed #1619, and another not yet reported bug for field
git-svn-id: http://svn.osgeo.org/qgis/trunk@12679 c8812cc2-4d05-0410-92ff-de0c093fc19c
  • Loading branch information
rblazek committed Jan 6, 2010
1 parent 7431269 commit 9dd0eff
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 10 deletions.
2 changes: 1 addition & 1 deletion src/plugins/grass/modules-common/v.what.vect.qgm
Expand Up @@ -5,5 +5,5 @@
<option key="vector" layeroption="layer" typemask="point"/>
<field key="column" layer="vector" type="integer,double,string"/>
<option key="qvector" layeroption="layer" typemask="area"/>
<option key="qcolumn" layer="qvector" type="string"/>
<field key="qcolumn" layer="qvector" type="string"/>
</qgisgrassmodule>
36 changes: 28 additions & 8 deletions src/plugins/grass/qgsgrassmodule.cpp
Expand Up @@ -562,6 +562,23 @@ QStringList QgsGrassModuleStandardOptions::arguments()
return arg;
}

// id is not used in fact, was intended for field, but key is used instead
QgsGrassModuleItem *QgsGrassModuleStandardOptions::itemByKey( QString key )
{
QgsDebugMsg( "key = " + key );

for ( unsigned int i = 0; i < mItems.size(); i++ )
{
if ( mItems[i]->key() == key )
{
return mItems[i];
}
}

QMessageBox::warning( 0, tr( "Warning" ), tr( "Item with key %1 not found" ).arg( key ) );
return 0;
}

QgsGrassModuleItem *QgsGrassModuleStandardOptions::item( QString id )
{
QgsDebugMsg( "id = " + id );
Expand Down Expand Up @@ -2908,16 +2925,19 @@ QgsGrassModuleField::QgsGrassModuleField(
QDomElement promptElem = promptNode.toElement();
QString element = promptElem.attribute( "element" );

mLayerId = qdesc.attribute( "layerid" );

mType = qdesc.attribute( "type" );

QgsGrassModuleItem *item = mModuleStandardOptions->item( mLayerId );
// TODO check type
if ( item )
{
mLayerInput = dynamic_cast<QgsGrassModuleInput *>( item );
connect( mLayerInput, SIGNAL( valueChanged() ), this, SLOT( updateFields() ) );
mLayerKey = qdesc.attribute( "layer" );
if ( mLayerKey.isNull() || mLayerKey.length() == 0 ) {
QMessageBox::warning( 0, tr( "Warning" ), tr( "'layer' attribute in field tag with key= %1 is missing." ).arg( mKey ) );
} else {
QgsGrassModuleItem *item = mModuleStandardOptions->itemByKey( mLayerKey );
// TODO check type
if ( item )
{
mLayerInput = dynamic_cast<QgsGrassModuleInput *>( item );
connect( mLayerInput, SIGNAL( valueChanged() ), this, SLOT( updateFields() ) );
}
}

QHBoxLayout *l = new QHBoxLayout( this );
Expand Down
5 changes: 4 additions & 1 deletion src/plugins/grass/qgsgrassmodule.h
Expand Up @@ -256,6 +256,9 @@ class QgsGrassModuleStandardOptions: QWidget, public QgsGrassModuleOptions
// ! Get item by ID
QgsGrassModuleItem *item( QString id );

// ! Get item by key
QgsGrassModuleItem *itemByKey( QString key );

// Reimplemented methods from QgsGrassModuleOptions
QStringList checkOutput();
void freezeOutput();
Expand Down Expand Up @@ -749,7 +752,7 @@ class QgsGrassModuleField: public QgsGrassModuleGroupBoxItem
QgsGrassModuleStandardOptions *mModuleStandardOptions;

//! Layer key
QString mLayerId;
QString mLayerKey;

//! Pointer to layer input
QgsGrassModuleInput *mLayerInput;
Expand Down

0 comments on commit 9dd0eff

Please sign in to comment.