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();
154 return mAndOrCombo->currentData().toString();
159 QStringList constraints;
160 constraints << QStringLiteral(
"tag" ) << QStringLiteral(
"name" ) << QStringLiteral(
"!tag" ) << QStringLiteral(
"!name" );
167 Q_FOREACH (
const QString &constr, constraints )
169 QStringList params = map.values( constr );
170 Q_FOREACH (
const QString ¶m, params )
188 mAndOrCombo->setCurrentIndex( mAndOrCombo->findData( QVariant( op ) ) );
193 mNameLineEdit->setText( name );
196 void QgsSmartGroupEditorDialog::buttonBox_accepted()
198 if ( mNameLineEdit->text().isEmpty() )
200 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