Skip to content

Commit 01d2fc5

Browse files
authoredOct 24, 2018
UX - Add icon for field types in expression widget (#8195)
1 parent 302529a commit 01d2fc5

File tree

3 files changed

+11
-6
lines changed

3 files changed

+11
-6
lines changed
 

‎python/gui/auto_generated/qgsexpressionbuilderwidget.sip.in

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,8 @@ preview result and for populating the list of available functions and variables.
198198
void registerItem( const QString &group, const QString &label, const QString &expressionText,
199199
const QString &helpText = QString(),
200200
QgsExpressionItem::ItemType type = QgsExpressionItem::ExpressionNode,
201-
bool highlightedItem = false, int sortOrder = 1 );
201+
bool highlightedItem = false, int sortOrder = 1,
202+
QIcon icon = QIcon() );
202203
%Docstring
203204
Registers a node item for the expression builder.
204205

‎src/gui/qgsexpressionbuilderwidget.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,7 @@ void QgsExpressionBuilderWidget::loadFieldNames()
388388
loadFieldNames( mLayer->fields() );
389389
}
390390

391+
391392
void QgsExpressionBuilderWidget::loadFieldNames( const QgsFields &fields )
392393
{
393394
if ( fields.isEmpty() )
@@ -396,13 +397,14 @@ void QgsExpressionBuilderWidget::loadFieldNames( const QgsFields &fields )
396397
txtExpressionString->setFields( fields );
397398

398399
QStringList fieldNames;
399-
//Q_FOREACH ( const QgsField& field, fields )
400400
fieldNames.reserve( fields.count() );
401401
for ( int i = 0; i < fields.count(); ++i )
402402
{
403-
QString fieldName = fields.at( i ).name();
403+
QgsField field = fields.at( i );
404+
QString fieldName = field.name();
404405
fieldNames << fieldName;
405-
registerItem( QStringLiteral( "Fields and Values" ), fieldName, " \"" + fieldName + "\" ", QString(), QgsExpressionItem::Field, false, i );
406+
QIcon icon = fields.iconForField( i );
407+
registerItem( QStringLiteral( "Fields and Values" ), fieldName, " \"" + fieldName + "\" ", QString(), QgsExpressionItem::Field, false, i, icon );
406408
}
407409
// highlighter->addFields( fieldNames );
408410
}
@@ -465,11 +467,12 @@ void QgsExpressionBuilderWidget::registerItem( const QString &group,
465467
const QString &label,
466468
const QString &expressionText,
467469
const QString &helpText,
468-
QgsExpressionItem::ItemType type, bool highlightedItem, int sortOrder )
470+
QgsExpressionItem::ItemType type, bool highlightedItem, int sortOrder, QIcon icon )
469471
{
470472
QgsExpressionItem *item = new QgsExpressionItem( label, expressionText, helpText, type );
471473
item->setData( label, Qt::UserRole );
472474
item->setData( sortOrder, QgsExpressionItem::CUSTOM_SORT_ROLE );
475+
item->setIcon( icon );
473476

474477
// Look up the group and insert the new function.
475478
if ( mExpressionGroups.contains( group ) )

‎src/gui/qgsexpressionbuilderwidget.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,8 @@ class GUI_EXPORT QgsExpressionBuilderWidget : public QWidget, private Ui::QgsExp
217217
void registerItem( const QString &group, const QString &label, const QString &expressionText,
218218
const QString &helpText = QString(),
219219
QgsExpressionItem::ItemType type = QgsExpressionItem::ExpressionNode,
220-
bool highlightedItem = false, int sortOrder = 1 );
220+
bool highlightedItem = false, int sortOrder = 1,
221+
QIcon icon = QIcon() );
221222

222223
bool isExpressionValid();
223224

0 commit comments

Comments
 (0)
Please sign in to comment.