15 #include <QGridLayout>
17 #include <QListWidget>
19 #include <QPushButton>
20 #include <QRadioButton>
42 QVBoxLayout *main_layout =
new QVBoxLayout(
this);
43 QGridLayout *good_layout =
new QGridLayout();
45 QPushButton *effects_button;
46 QPushButton *add_button;
47 QPushButton *delete_button;
48 QPushButton *reqs_button;
55 connect(
good_list, &QListWidget::itemSelectionChanged,
this,
59 good_layout->setSizeConstraint(QLayout::SetMaximumSize);
61 label =
new QLabel(QString::fromUtf8(
R__(
"Rule Name")));
62 label->setParent(
this);
63 rname =
new QLineEdit(
this);
64 rname->setText(QStringLiteral(
"None"));
66 good_layout->addWidget(label, 0, 0);
67 good_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"));
77 good_layout->addWidget(label, 1, 0);
79 good_layout->addWidget(
name, 1, 2);
82 new QPushButton(QString::fromUtf8(
R__(
"Requirements")),
this);
83 connect(reqs_button, &QAbstractButton::pressed,
this,
85 good_layout->addWidget(reqs_button, 2, 2);
87 effects_button =
new QPushButton(QString::fromUtf8(
R__(
"Effects")),
this);
88 connect(effects_button, &QAbstractButton::pressed,
this,
90 good_layout->addWidget(effects_button, 3, 2);
92 add_button =
new QPushButton(QString::fromUtf8(
R__(
"Add Good")),
this);
94 good_layout->addWidget(add_button, 4, 0);
98 new QPushButton(QString::fromUtf8(
R__(
"Remove this Good")),
this);
99 connect(delete_button, &QAbstractButton::pressed,
this,
101 good_layout->addWidget(delete_button, 4, 2);
106 main_layout->addLayout(good_layout);
108 setLayout(main_layout);
120 if (!pgood->ruledit_disabled) {
121 QListWidgetItem *
item =
141 name->setText(dispn);
142 rname->setText(rulen);
143 if (dispn == rulen) {
144 name->setEnabled(
false);
148 name->setEnabled(
true);
151 name->setText(QStringLiteral(
"None"));
152 rname->setText(QStringLiteral(
"None"));
154 name->setEnabled(
false);
163 QList<QListWidgetItem *> select_list =
good_list->selectedItems();
165 if (!select_list.isEmpty()) {
168 gn_bytes = select_list.at(0)->text().toUtf8();
179 QByteArray name_bytes;
180 QByteArray rname_bytes;
185 rname_bytes =
rname->text().toUtf8();
198 name_bytes =
name->text().toUtf8();
199 rname_bytes =
rname->text().toUtf8();
249 if (pgood->ruledit_disabled) {
251 pgood->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.
void open_effect_edit(const QString &target, struct universal *uni, enum effect_filter_main_class efmc)
Open effect_edit dialog.
void edit_effects()
User wants to edit effects.
struct goods_type * selected
bool initialize_new_good(struct goods_type *pgood)
Initialize new good for use.
tab_good(ruledit_gui *ui_in)
Setup tab_good object.
void refresh()
Refresh the information.
void select_good()
User selected good from the list.
void delete_now()
User requested good deletion.
void name_given()
User entered name for the good.
void edit_reqs()
User wants to edit reqs.
void update_good_info(struct goods_type *pgood)
Update info of the good.
void add_now()
User requested new good.
void same_name_toggle(bool checked)
Toggled whether rule_name and name should be kept identical.
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
struct goods_type * goods_by_number(Goods_type_id id)
Return goods type of given id.
const char * goods_rule_name(struct goods_type *pgood)
Return untranslated name of this goods type.
struct goods_type * goods_by_rule_name(const char *name)
Returns goods type matching rule name or nullptr if there is no goods type with such name.
Goods_type_id goods_index(const struct goods_type *pgood)
Return the goods index.
#define goods_type_iterate_end
#define goods_type_iterate(_p)
bool is_good_needed(struct goods_type *pgood, requirers_cb cb, void *data)
Check if anything in ruleset needs goods type.