23 #include <QMessageBox>    34   mCondCombo->addItem( tr( 
"has the tag" ), QVariant( 
"tag" ) );
    35   mCondCombo->addItem( tr( 
"has a part of name matching" ), QVariant( 
"name" ) );
    36   mCondCombo->addItem( tr( 
"does NOT have the tag" ), QVariant( 
"!tag" ) );
    37   mCondCombo->addItem( tr( 
"has NO part of name matching" ), QVariant( 
"!name" ) );
    51   return mCondCombo->currentData().toString();
    56   return mCondLineEdit->text();
    61   mCondCombo->setCurrentIndex( mCondCombo->findData( QVariant( constraint ) ) );
    66   mCondLineEdit->setText( param );
    71   mRemoveBtn->setVisible( !hide );
    85   connect( buttonBox, &QDialogButtonBox::accepted, 
this, &QgsSmartGroupEditorDialog::buttonBox_accepted );
    89   mAndOrCombo->addItem( tr( 
"ALL the constraints" ), QVariant( 
"AND" ) );
    90   mAndOrCombo->addItem( tr( 
"any ONE of the constraints" ), QVariant( 
"OR" ) );
    92   mLayout = 
new QGridLayout( mConditionsBox );
   100   return mNameLineEdit->text();
   111       condition->hideRemoveButton( 
false );
   134       condition->hideRemoveButton( 
true );
   149     conditions.insert( condition->constraint(), condition->parameter() );
   157   return mAndOrCombo->currentData().toString();
   162   QStringList constraints;
   163   constraints << QStringLiteral( 
"tag" ) << QStringLiteral( 
"name" ) << QStringLiteral( 
"!tag" ) << QStringLiteral( 
"!name" );
   170   const auto constConstraints = constraints;
   171   for ( 
const QString &constr : constConstraints )
   173     QStringList params = map.values( constr );
   174     const auto constParams = params;
   175     for ( 
const QString ¶m : constParams )
   193   mAndOrCombo->setCurrentIndex( mAndOrCombo->findData( QVariant( op ) ) );
   198   mNameLineEdit->setText( name );
   201 void QgsSmartGroupEditorDialog::buttonBox_accepted()
   203   if ( mNameLineEdit->text().isEmpty() )
   205     QMessageBox::critical( 
this, tr( 
"Edit Smart Group" ), tr( 
"The smart group name field is empty. Kindly provide a name." ) );
 void setParameter(const QString ¶m)
sets the given param 
 
QMap< int, QgsSmartGroupCondition * > mConditionMap
 
QgsSmartGroupEditorDialog(QgsStyle *style, QWidget *parent=nullptr)
 
QgsSmartConditionMap conditionMap()
returns the condition map 
 
static QString iconPath(const QString &iconFile)
Returns path to the desired icon file. 
 
void hideRemoveButton(bool hide)
sets the remove button hidden state to 'hide' 
 
void addCondition()
function to create a new ConditionBox and update UI 
 
QString smartgroupName()
returns the value from mNameLineEdit 
 
QString parameter()
returns the parameter 
 
QString constraint()
returns the constraint key 
 
void removeCondition(int)
slot to remove the condition with id int 
 
void setOperator(const QString &)
sets the operator AND/OR 
 
void setConstraint(const QString &constraint)
sets the given constraint 
 
static void enableAutoGeometryRestore(QWidget *widget, const QString &key=QString())
Register the widget to allow its position to be automatically saved and restored when open and closed...
 
void setSmartgroupName(const QString &)
sets the smart group Name 
 
QgsSmartGroupCondition(int id, QWidget *parent=nullptr)
 
void setConditionMap(const QgsSmartConditionMap &)
sets up the GUI for the given conditionmap 
 
QMultiMap< QString, QString > QgsSmartConditionMap
A multimap to hold the smart group conditions as constraint and parameter pairs. 
 
QString conditionOperator()
returns the AND/OR condition