setExpression returns void

This commit is contained in:
Denis Rouzaud 2014-06-23 08:58:28 +02:00
parent daefe3e8ee
commit c80bae57be
4 changed files with 9 additions and 11 deletions

View File

@ -36,9 +36,8 @@ class QgsFieldModel : QAbstractItemModel
/**
* @brief setExpression sets a single expression to be added after the fields at the end of the model
* @return the model index of the newly added expression
*/
QModelIndex setExpression( const QString &expression );
void setExpression( const QString &expression );
//! remove expressions from the model
void removeExpression();

View File

@ -152,7 +152,8 @@ void QgsFieldExpressionWidget::setField( const QString &fieldName )
if ( !idx.isValid() )
{
// new expression
idx = mFieldProxyModel->sourceFieldModel()->setExpression( fieldName );
mFieldProxyModel->sourceFieldModel()->setExpression( fieldName );
idx = mFieldProxyModel->sourceFieldModel()->indexFromName( fieldName );
}
}
QModelIndex proxyIndex = mFieldProxyModel->mapFromSource( idx );
@ -189,7 +190,8 @@ void QgsFieldExpressionWidget::expressionEditingFinished()
{
QgsDebugMsg( "Editing finsihed" );
const QString expression = mCombo->lineEdit()->text();
QModelIndex idx = mFieldProxyModel->sourceFieldModel()->setExpression( expression );
mFieldProxyModel->sourceFieldModel()->setExpression( expression );
QModelIndex idx = mFieldProxyModel->sourceFieldModel()->indexFromName( expression );
QModelIndex proxyIndex = mFieldProxyModel->mapFromSource( idx );
mCombo->setCurrentIndex( proxyIndex.row() );
currentFieldChanged();

View File

@ -110,20 +110,18 @@ void QgsFieldModel::setAllowExpression( bool allowExpression )
}
}
QModelIndex QgsFieldModel::setExpression( const QString &expression )
void QgsFieldModel::setExpression( const QString &expression )
{
if ( !mAllowExpression )
return QModelIndex();
return;
QModelIndex idx = indexFromName( expression );
if ( idx.isValid() )
return idx;
return;
beginResetModel();
mExpression = QList<QString>() << expression;
endResetModel();
return index( mFields.count() , 0 );
}
void QgsFieldModel::removeExpression()

View File

@ -58,9 +58,8 @@ class GUI_EXPORT QgsFieldModel : public QAbstractItemModel
/**
* @brief setExpression sets a single expression to be added after the fields at the end of the model
* @return the model index of the newly added expression
*/
QModelIndex setExpression( const QString &expression );
void setExpression( const QString &expression );
//! remove expressions from the model
void removeExpression();