15 #include <QGridLayout>
17 #include <QListWidget>
19 #include <QPushButton>
20 #include <QRadioButton>
42 QVBoxLayout *main_layout =
new QVBoxLayout(
this);
43 QGridLayout *mpr_layout =
new QGridLayout();
45 QPushButton *add_button;
46 QPushButton *delete_button;
47 QPushButton *reqs_button;
54 connect(
mpr_list, &QListWidget::itemSelectionChanged,
this,
58 mpr_layout->setSizeConstraint(QLayout::SetMaximumSize);
60 label =
new QLabel(QString::fromUtf8(
R__(
"Rule Name")));
61 label->setParent(
this);
62 rname =
new QLineEdit(
this);
63 rname->setText(QStringLiteral(
"None"));
64 connect(
rname, &QLineEdit::returnPressed,
this,
66 mpr_layout->addWidget(label, 0, 0);
67 mpr_layout->addWidget(
rname, 0, 2);
69 label =
new QLabel(QString::fromUtf8(
R__(
"Name")));
70 label->setParent(
this);
72 connect(
same_name, &QAbstractButton::toggled,
this,
74 name =
new QLineEdit(
this);
75 name->setText(QStringLiteral(
"None"));
76 connect(
name, &QLineEdit::returnPressed,
this,
78 mpr_layout->addWidget(label, 1, 0);
80 mpr_layout->addWidget(
name, 1, 2);
83 new QPushButton(QString::fromUtf8(
R__(
"Requirements")),
this);
84 connect(reqs_button, &QAbstractButton::pressed,
this,
86 mpr_layout->addWidget(reqs_button, 2, 2);
89 new QPushButton(QString::fromUtf8(
R__(
"Add Multiplier")),
this);
90 connect(add_button, &QAbstractButton::pressed,
this,
92 mpr_layout->addWidget(add_button, 4, 0);
95 delete_button =
new QPushButton(
96 QString::fromUtf8(
R__(
"Remove this Multiplier")),
this);
97 connect(delete_button, &QAbstractButton::pressed,
this,
99 mpr_layout->addWidget(delete_button, 4, 2);
104 main_layout->addLayout(mpr_layout);
106 setLayout(main_layout);
118 if (!pmul->ruledit_disabled) {
119 QListWidgetItem *
item =
139 name->setText(dispn);
140 rname->setText(rulen);
141 if (dispn == rulen) {
142 name->setEnabled(
false);
146 name->setEnabled(
true);
149 name->setText(QStringLiteral(
"None"));
150 rname->setText(QStringLiteral(
"None"));
152 name->setEnabled(
false);
161 QList<QListWidgetItem *> select_list =
mpr_list->selectedItems();
163 if (!select_list.isEmpty()) {
166 mn_bytes = select_list.at(0)->text().toUtf8();
177 QByteArray name_bytes;
178 QByteArray rname_bytes;
183 rname_bytes =
rname->text().toUtf8();
186 R__(
"A multiplier with that rule name already exists!"));
197 name_bytes =
name->text().toUtf8();
198 rname_bytes =
rname->text().toUtf8();
249 if (pmul->ruledit_disabled) {
251 pmul->ruledit_disabled =
false;
283 name->setEnabled(!checked);
void display_msg(const char *msg)
Display status message.
requirers_dlg * create_requirers(const char *title)
Create requirers dlg.
tab_multiplier(ruledit_gui *ui_in)
Setup tab_multiplier object.
void same_name_toggle(bool checked)
Toggled whether rule_name and name should be kept identical.
void edit_reqs()
User wants to edit reqs.
void delete_now()
User requested multiplier deletion.
void refresh()
Refresh the information.
void select_multiplier()
User selected multiplier from the list.
void update_multiplier_info(struct multiplier *pmul)
Update info of the multiplier.
void add_now()
User requested new multiplier.
void name_given()
User entered name for the multiplier.
struct multiplier * selected
bool initialize_new_multiplier(struct multiplier *pmul)
Initialize new multiplier for use.
#define MAX_NUM_MULTIPLIERS
struct multiplier * multiplier_by_number(Multiplier_type_id id)
Returns multiplier associated to given number.
const char * multiplier_rule_name(const struct multiplier *pmul)
Return the (untranslated) rule name of the multiplier.
struct multiplier * multiplier_by_rule_name(const char *name)
Returns multiplier matching rule name, or nullptr if there is no multiplier with such a name.
Multiplier_type_id multiplier_index(const struct multiplier *pmul)
Returns multiplier index.
#define multipliers_iterate(_mul_)
#define multipliers_iterate_end
static void name_set(struct name_translation *ptrans, const char *domain, const char *vernacular_name)
static const char * untranslated_name(const struct name_translation *ptrans)
static void names_set(struct name_translation *ptrans, const char *domain, const char *vernacular_name, const char *rule_name)
void show_experimental(QWidget *wdg)
Show widget if experimental features enabled, hide otherwise.
void ruledit_qt_display_requirers(const char *msg, void *data)
Display requirer list.
struct packet_ruleset_control control
struct requirement_vector reqs
struct name_translation name
bool is_multiplier_needed(struct multiplier *pmul, requirers_cb cb, void *data)
Check if anything in ruleset needs multiplier.