15 #include <QGridLayout>
17 #include <QListWidget>
19 #include <QPushButton>
20 #include <QRadioButton>
42 QVBoxLayout *main_layout =
new QVBoxLayout(
this);
43 QGridLayout *terrains_layout =
new QGridLayout();
45 QPushButton *effects_button;
46 QPushButton *add_button;
47 QPushButton *delete_button;
54 connect(
terrain_list, &QListWidget::itemSelectionChanged,
this,
58 terrains_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 terrains_layout->addWidget(label, 0, 0);
66 terrains_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 terrains_layout->addWidget(label, 1, 0);
77 terrains_layout->addWidget(
same_name, 1, 1);
78 terrains_layout->addWidget(
name, 1, 2);
80 effects_button =
new QPushButton(QString::fromUtf8(
R__(
"Effects")),
this);
81 connect(effects_button, &QAbstractButton::pressed,
this,
83 terrains_layout->addWidget(effects_button, 2, 2);
85 add_button =
new QPushButton(QString::fromUtf8(
R__(
"Add Terrain")),
this);
86 connect(add_button, &QAbstractButton::pressed,
this,
88 terrains_layout->addWidget(add_button, 3, 0);
92 new QPushButton(QString::fromUtf8(
R__(
"Remove this Terrain")),
this);
93 connect(delete_button, &QAbstractButton::pressed,
this,
95 terrains_layout->addWidget(delete_button, 3, 2);
100 main_layout->addLayout(terrains_layout);
102 setLayout(main_layout);
114 if (!pterr->ruledit_disabled) {
115 QListWidgetItem *
item =
135 name->setText(dispn);
136 rname->setText(rulen);
137 if (dispn == rulen) {
138 name->setEnabled(
false);
142 name->setEnabled(
true);
145 name->setText(QStringLiteral(
"None"));
146 rname->setText(QStringLiteral(
"None"));
148 name->setEnabled(
false);
157 QList<QListWidgetItem *> select_list =
terrain_list->selectedItems();
159 if (!select_list.isEmpty()) {
162 tn_bytes = select_list.at(0)->text().toUtf8();
173 QByteArray name_bytes;
174 QByteArray rname_bytes;
179 rname_bytes =
rname->text().toUtf8();
182 R__(
"A terrain with that rule name already exists!"));
193 name_bytes =
name->text().toUtf8();
194 rname_bytes =
rname->text().toUtf8();
245 if (pterr->ruledit_disabled) {
247 pterr->ruledit_disabled =
false;
279 name->setEnabled(!checked);
294 uni.
kind = VUT_TERRAIN;
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 same_name_toggle(bool checked)
Toggled whether rule_name and name should be kept identical.
void add_now()
User requested new terrain.
void edit_effects()
User wants to edit effects.
tab_terrains(ruledit_gui *ui_in)
Setup tab_terrains object.
bool initialize_new_terrain(struct terrain *pterr)
Initialize new terrain for use.
void select_terrain()
User selected terrain from the list.
struct terrain * selected
void refresh()
Refresh the information.
void update_terrain_info(struct terrain *pterr)
Update info of the terrain.
void delete_now()
User requested terrain deletion.
QListWidget * terrain_list
void name_given()
User entered name for the terrain.
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 name_translation name
struct terrain * terrain_by_number(const Terrain_type_id type)
Return the terrain for the given terrain index.
const char * terrain_rule_name(const struct terrain *pterrain)
Return the (untranslated) rule name of the terrain.
struct terrain * terrain_by_rule_name(const char *name)
Return the terrain type matching the name, or T_UNKNOWN if none matches.
Terrain_type_id terrain_index(const struct terrain *pterrain)
Return the terrain index.
#define terrain_type_iterate(_p)
#define terrain_type_iterate_end
bool is_terrain_needed(struct terrain *pterr, requirers_cb cb, void *data)
Check if anything in ruleset needs terrain type.