15 #include <QGridLayout>
17 #include <QListWidget>
19 #include <QPushButton>
20 #include <QRadioButton>
41 QVBoxLayout *main_layout =
new QVBoxLayout(
this);
42 QGridLayout *extra_layout =
new QGridLayout();
44 QPushButton *effects_button;
45 QPushButton *add_button;
46 QPushButton *delete_button;
47 QPushButton *reqs_button;
54 connect(
extra_list, &QListWidget::itemSelectionChanged,
this,
58 extra_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"));
65 extra_layout->addWidget(label, 0, 0);
66 extra_layout->addWidget(
rname, 0, 2);
68 label =
new QLabel(QString::fromUtf8(
R__(
"Name")));
69 label->setParent(
this);
71 connect(
same_name, &QAbstractButton::toggled,
this,
73 name =
new QLineEdit(
this);
74 name->setText(QStringLiteral(
"None"));
76 extra_layout->addWidget(label, 1, 0);
78 extra_layout->addWidget(
name, 1, 2);
81 new QPushButton(QString::fromUtf8(
R__(
"Requirements")),
this);
82 connect(reqs_button, &QAbstractButton::pressed,
this,
84 extra_layout->addWidget(reqs_button, 2, 2);
86 effects_button =
new QPushButton(QString::fromUtf8(
R__(
"Effects")),
this);
87 connect(effects_button, &QAbstractButton::pressed,
this,
89 extra_layout->addWidget(effects_button, 3, 2);
91 add_button =
new QPushButton(QString::fromUtf8(
R__(
"Add Extra")),
this);
93 extra_layout->addWidget(add_button, 4, 0);
97 new QPushButton(QString::fromUtf8(
R__(
"Remove this Extra")),
this);
98 connect(delete_button, &QAbstractButton::pressed,
this,
100 extra_layout->addWidget(delete_button, 4, 2);
105 main_layout->addLayout(extra_layout);
107 setLayout(main_layout);
119 if (!pextra->ruledit_disabled) {
120 QListWidgetItem *
item =
140 name->setText(dispn);
141 rname->setText(rulen);
142 if (dispn == rulen) {
143 name->setEnabled(
false);
147 name->setEnabled(
true);
150 name->setText(QStringLiteral(
"None"));
151 rname->setText(QStringLiteral(
"None"));
153 name->setEnabled(
false);
162 QList<QListWidgetItem *> select_list =
extra_list->selectedItems();
164 if (!select_list.isEmpty()) {
167 en_bytes = select_list.at(0)->text().toUtf8();
178 QByteArray name_bytes;
179 QByteArray rname_bytes;
184 rname_bytes =
rname->text().toUtf8();
187 R__(
"An extra with that rule name already exists!"));
198 name_bytes =
name->text().toUtf8();
199 rname_bytes =
rname->text().toUtf8();
250 if (pextra->ruledit_disabled) {
252 pextra->ruledit_disabled =
false;
284 name->setEnabled(!checked);
310 uni.
kind = VUT_EXTRA;
void display_msg(const char *msg)
Display status message.
void open_req_edit(const QString &target, struct requirement_vector *preqs)
Open req_edit dialog.
requirers_dlg * create_requirers(const char *title)
Create requirers dlg.
void open_effect_edit(const QString &target, struct universal *uni, enum effect_filter_main_class efmc)
Open effect_edit dialog.
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 extra_type * extra
bool is_extra_needed(struct extra_type *pextra, requirers_cb cb, void *data)
Check if anything in ruleset needs extra type.