15 #include <QGridLayout>
16 #include <QHeaderView>
18 #include <QMessageBox>
19 #include <QPushButton>
20 #include <QRadioButton>
21 #include <QTableWidget>
49 QGridLayout *main_layout =
new QGridLayout(
this);
51 QLabel *save_ver_label;
53 QLabel *version_label;
54 QPushButton *save_button;
55 QPushButton *always_active_effects;
56 QPushButton *all_effects;
57 QPushButton *refresh_button;
59 QTableWidgetItem *
item;
63 main_layout->setSizeConstraint(QLayout::SetMaximumSize);
65 name_label =
new QLabel(QString::fromUtf8(
R__(
"Ruleset name")));
66 name_label->setParent(
this);
67 main_layout->addWidget(name_label, row, 0);
68 name =
new QLineEdit(
this);
69 main_layout->addWidget(
name, row++, 1);
70 version_label =
new QLabel(QString::fromUtf8(
R__(
"Ruleset version")));
71 version_label->setParent(
this);
72 main_layout->addWidget(version_label, row, 0);
74 main_layout->addWidget(
version, row++, 1);
75 save_label =
new QLabel(QString::fromUtf8(
R__(
"Save to directory")));
76 save_label->setParent(
this);
77 main_layout->addWidget(save_label, row, 0);
79 savedir->setText(QStringLiteral(
"ruledit-tmp"));
81 main_layout->addWidget(
savedir, row++, 1);
83 new QLabel(QString::fromUtf8(
R__(
"Version suffix to directory name")));
84 save_ver_label->setParent(
this);
85 main_layout->addWidget(save_ver_label, row, 0);
88 save_button =
new QPushButton(QString::fromUtf8(
R__(
"Save now")),
this);
90 main_layout->addWidget(save_button, row++, 1);
91 always_active_effects =
92 new QPushButton(QString::fromUtf8(
R__(
"Always active Effects")),
this);
93 connect(always_active_effects, &QAbstractButton::pressed,
this,
95 main_layout->addWidget(always_active_effects, row++, 1);
96 all_effects =
new QPushButton(QString::fromUtf8(
R__(
"All Effects")),
this);
97 connect(all_effects, &QAbstractButton::pressed,
this,
99 main_layout->addWidget(all_effects, row++, 1);
101 stats =
new QTableWidget(
this);
102 stats->setColumnCount(8);
103 stats->setRowCount(6);
104 item =
new QTableWidgetItem(QString::fromUtf8(
RQ_(
"?stat:Terrains")));
106 item =
new QTableWidgetItem(QStringLiteral(
"-"));
108 item =
new QTableWidgetItem(QString::fromUtf8(
RQ_(
"?stat:Resources")));
110 item =
new QTableWidgetItem(QStringLiteral(
"-"));
112 item =
new QTableWidgetItem(QString::fromUtf8(
RQ_(
"?stat:Tech Classes")));
114 item =
new QTableWidgetItem(QStringLiteral(
"-"));
116 item =
new QTableWidgetItem(QString::fromUtf8(
RQ_(
"?stat:Techs")));
118 item =
new QTableWidgetItem(QStringLiteral(
"-"));
120 item =
new QTableWidgetItem(QString::fromUtf8(
RQ_(
"?stat:Unit Classes")));
122 item =
new QTableWidgetItem(QStringLiteral(
"-"));
124 item =
new QTableWidgetItem(QString::fromUtf8(
RQ_(
"?stat:Unit Types")));
126 item =
new QTableWidgetItem(QStringLiteral(
"-"));
128 item =
new QTableWidgetItem(QString::fromUtf8(
RQ_(
"?stat:Buildings")));
130 item =
new QTableWidgetItem(QStringLiteral(
"-"));
132 item =
new QTableWidgetItem(QString::fromUtf8(
RQ_(
"?stat:Nations")));
134 item =
new QTableWidgetItem(QStringLiteral(
"-"));
136 item =
new QTableWidgetItem(QString::fromUtf8(
RQ_(
"?stat:Styles")));
138 item =
new QTableWidgetItem(QStringLiteral(
"-"));
140 item =
new QTableWidgetItem(QString::fromUtf8(
RQ_(
"?stat:Specialists")));
142 item =
new QTableWidgetItem(QStringLiteral(
"-"));
144 item =
new QTableWidgetItem(QString::fromUtf8(
RQ_(
"?stat:Governments")));
146 item =
new QTableWidgetItem(QStringLiteral(
"-"));
148 item =
new QTableWidgetItem(QString::fromUtf8(
RQ_(
"?stat:Disasters")));
150 item =
new QTableWidgetItem(QStringLiteral(
"-"));
152 item =
new QTableWidgetItem(QString::fromUtf8(
RQ_(
"?stat:Achievements")));
154 item =
new QTableWidgetItem(QStringLiteral(
"-"));
156 item =
new QTableWidgetItem(QString::fromUtf8(
RQ_(
"?stat:Extras")));
158 item =
new QTableWidgetItem(QStringLiteral(
"-"));
160 item =
new QTableWidgetItem(QString::fromUtf8(
RQ_(
"?stat:Bases")));
162 item =
new QTableWidgetItem(QStringLiteral(
"-"));
164 item =
new QTableWidgetItem(QString::fromUtf8(
RQ_(
"?stat:Roads")));
166 item =
new QTableWidgetItem(QStringLiteral(
"-"));
168 item =
new QTableWidgetItem(QString::fromUtf8(
RQ_(
"?stat:Goods")));
170 item =
new QTableWidgetItem(QStringLiteral(
"-"));
172 item =
new QTableWidgetItem(QString::fromUtf8(
RQ_(
"?stat:Multipliers")));
174 item =
new QTableWidgetItem(QStringLiteral(
"-"));
176 stats->verticalHeader()->setVisible(
false);
177 stats->horizontalHeader()->setVisible(
false);
178 stats->setEditTriggers(QAbstractItemView::NoEditTriggers);
179 main_layout->addWidget(
stats, row++, 0, 1, 2);
181 new QPushButton(QString::fromUtf8(
R__(
"Refresh Stats")),
this);
182 connect(refresh_button, &QAbstractButton::pressed,
this,
184 main_layout->addWidget(refresh_button, row++, 0, 1, 2);
192 setLayout(main_layout);
216 ba_bytes =
name->text().toUtf8();
217 qstrncpy(nameUTF8, ba_bytes.data(),
sizeof(nameUTF8) - 1);
219 if (nameUTF8[0] !=
'\0') {
223 ba_bytes =
version->text().toUtf8();
228 QMessageBox *box =
new QMessageBox();
231 QStringLiteral(
"Current data fails sanity checks. Save anyway?"));
232 box->setStandardButtons(QMessageBox::Yes | QMessageBox::No);
235 if (box->result() != QMessageBox::Yes) {
246 ba_bytes = full_dir.toUtf8();
265 stats->item(row++, 1)->setText(QString::number(count));
267 stats->item(row++, 1)->setText(
273 stats->item(row++, 1)->setText(QString::number(count));
278 stats->item(row++, 1)->setText(QString::number(count));
283 stats->item(row++, 1)->setText(QString::number(count));
288 stats->item(row++, 1)->setText(QString::number(count));
295 stats->item(row++, 4)->setText(QString::number(count));
302 stats->item(row++, 4)->setText(QString::number(count));
307 stats->item(row++, 4)->setText(QString::number(count));
310 [](
government &p) { return !p.ruledit_disabled; });
312 stats->item(row++, 4)->setText(QString::number(count));
314 stats->item(row++, 4)->setText(
323 stats->item(row++, 7)->setText(QString::number(count));
339 stats->item(row++, 7)->setText(QString::number(count));
346 stats->item(row++, 7)->setText(QString::number(count));
351 stats->item(row++, 7)->setText(QString::number(count));
353 stats->resizeColumnsToContents();
#define achievements_re_active_iterate(_p)
#define achievements_re_active_iterate_end
Base_type_id base_count()
Return the number of base_types.
void flush_widgets()
Flush information from widgets to stores where it can be saved from.
void display_msg(const char *msg)
Display status message.
void open_effect_edit(const QString &target, struct universal *uni, enum effect_filter_main_class efmc)
Open effect_edit dialog.
void edit_aae_effects()
User wants to edit always active effects.
void save_now()
User entered savedir.
void edit_all_effects()
User wants to edit effects from full list.
QRadioButton * savedir_version
void refresh_stats()
Recalculate stats.
tab_misc(ruledit_gui *ui_in)
Setup tab_misc object.
void refresh()
Refresh the information.
std::vector< government > governments
#define improvement_re_active_iterate_end
#define improvement_re_active_iterate(_p)
#define multipliers_re_active_iterate(_mul_)
#define multipliers_re_active_iterate_end
Road_type_id road_count()
Return the number of road_types.
void show_experimental(QWidget *wdg)
Show widget if experimental features enabled, hide otherwise.
bool save_ruleset(const char *path, const char *name, struct rule_data *data)
Save ruleset to directory given.
#define specialist_type_re_active_iterate_end
#define specialist_type_re_active_iterate(_p)
struct packet_ruleset_control control
#define styles_re_active_iterate_end
#define styles_re_active_iterate(_p)
#define advance_re_active_iterate(_p)
#define tech_class_re_active_iterate(_p)
#define advance_re_active_iterate_end
#define tech_class_re_active_iterate_end
#define terrain_re_active_iterate_end
#define terrain_re_active_iterate(_p)
#define goods_type_re_active_iterate_end
#define goods_type_re_active_iterate(_p)
#define unit_type_re_active_iterate(_p)
#define unit_class_re_active_iterate_end
#define unit_class_re_active_iterate(_p)
#define unit_type_re_active_iterate_end