Skip to content
Permalink
Browse files
fixed #1619, and another not yet reported bug for field
git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@12679 c8812cc2-4d05-0410-92ff-de0c093fc19c
  • Loading branch information
rblazek committed Jan 6, 2010
1 parent 513436c commit 80e7f98e5136d34a05ff2ff5c86269676a956be8
@@ -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>
@@ -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 );
@@ -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 );
@@ -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();
@@ -749,7 +752,7 @@ class QgsGrassModuleField: public QgsGrassModuleGroupBoxItem
QgsGrassModuleStandardOptions *mModuleStandardOptions;

//! Layer key
QString mLayerId;
QString mLayerKey;

//! Pointer to layer input
QgsGrassModuleInput *mLayerInput;

0 comments on commit 80e7f98

Please sign in to comment.