1
0
mirror of https://github.com/altlinux/admc.git synced 2025-02-13 17:57:25 +03:00

add slot for "add" button

This commit is contained in:
Dmitry Degtyarev 2022-06-23 16:51:17 +04:00
parent 4a63080773
commit 26a40d2bfa
2 changed files with 62 additions and 0 deletions

View File

@ -73,8 +73,67 @@ FindPolicyDialog::FindPolicyDialog(QWidget *parent)
}
settings_setup_dialog_geometry(SETTING_find_policy_dialog_geometry, this);
connect(
ui->add_button, &QAbstractButton::clicked,
this, &FindPolicyDialog::add_filter);
}
FindPolicyDialog::~FindPolicyDialog() {
delete ui;
}
void FindPolicyDialog::add_filter() {
const QString filter = [&]() {
const QString attribute = [&]() -> QString {
const SearchItem search_item = (SearchItem) ui->search_item_combo->currentData().toInt();
switch (search_item) {
case SearchItem_Name: return ATTRIBUTE_DISPLAY_NAME;
case SearchItem_GUID: return ATTRIBUTE_CN;
}
return QString();
}();
const Condition condition = (Condition) ui->condition_combo->currentData().toInt();
const QString value = ui->value_edit->text();
const QString out = filter_CONDITION(condition, attribute, value);
return out;
}();
const QString filter_display = [&]() {
const QString search_item_display = [&]() -> QString {
const SearchItem search_item = (SearchItem) ui->search_item_combo->currentData().toInt();
switch (search_item) {
case SearchItem_Name: return tr("Name");
case SearchItem_GUID: return tr("GUID");
}
return QString();
}();
const QString condition_display = [&]() {
const Condition condition = (Condition) ui->condition_combo->currentData().toInt();
const QString out = condition_to_display_string(condition);
return out;
}();
const QString value = ui->value_edit->text();
const QString out = QString("%1 %2: \"%3\"").arg(search_item_display, condition_display, value);
return out;
}();
auto item = new QListWidgetItem();
item->setText(filter_display);
item->setData(Qt::UserRole, filter);
ui->filter_list->addItem(item);
ui->value_edit->clear();
}

View File

@ -39,6 +39,9 @@ public:
FindPolicyDialog(QWidget *parent);
~FindPolicyDialog();
private:
void add_filter();
};
#endif /* FIND_POLICY_DIALOG_H */