15 #include <QGridLayout>
19 #include <QPushButton>
39 struct requirement_vector *preqs)
42 QVBoxLayout *main_layout =
new QVBoxLayout(
this);
43 QGridLayout *reqedit_layout =
new QGridLayout();
44 QHBoxLayout *active_layout =
new QHBoxLayout();
45 QPushButton *close_button;
46 QPushButton *add_button;
47 QPushButton *delete_button;
60 connect(
req_list, &QListWidget::itemSelectionChanged,
this,
64 lbl =
new QLabel(
R__(
"Type:"));
65 active_layout->addWidget(lbl, 0);
78 menu->addAction(universals_n_name(univ_id));
84 lbl =
new QLabel(
R__(
"Value:"));
85 active_layout->addWidget(lbl, 2);
101 lbl =
new QLabel(
R__(
"Range:"));
102 active_layout->addWidget(lbl, 5);
119 menu->addAction(QStringLiteral(
"Allows"));
120 menu->addAction(QStringLiteral(
"Prevents"));
123 main_layout->addLayout(active_layout);
126 new QPushButton(QString::fromUtf8(
R__(
"Add Requirement")),
this);
128 reqedit_layout->addWidget(add_button, 0, 0);
131 new QPushButton(QString::fromUtf8(
R__(
"Delete Requirement")),
this);
132 connect(delete_button, &QAbstractButton::pressed,
this,
134 reqedit_layout->addWidget(delete_button, 1, 0);
136 close_button =
new QPushButton(QString::fromUtf8(
R__(
"Close")),
this);
137 connect(close_button, &QAbstractButton::pressed,
this,
139 reqedit_layout->addWidget(close_button, 2, 0);
143 main_layout->addLayout(reqedit_layout);
145 setLayout(main_layout);
146 setWindowTitle(target);
161 QListWidgetItem *
item;
171 fc_snprintf(buf,
sizeof(buf),
"%s prevents", buf2);
174 item =
new QListWidgetItem(QString::fromUtf8(buf));
177 item->setSelected(
true);
230 if (
item !=
nullptr &&
item->isSelected()) {
254 if (value ==
nullptr) {
258 data->
number->setText(QString::number(val));
259 data->
number->setVisible(
true);
262 data->
menu->addAction(value);
300 QByteArray un_bytes =
action->text().toUtf8();
301 enum universals_n
univ =
320 QByteArray un_bytes =
action->text().toUtf8();
354 QByteArray un_bytes =
action->text().toUtf8();
392 requirement_vector_append(
req_vector, new_req);
407 for (i = 0; i < requirement_vector_size(
req_vector); i++) {
struct requirement_vector * req_vector
void req_present_menu(QAction *action)
User selected 'present' value for the requirement.
void delete_now()
User requested requirement deletion.
QToolButton * edit_value_enum_button
QToolButton * edit_present_button
void refresh()
Refresh the information.
struct requirement selected_values
void univ_value_enum_menu(QAction *action)
User selected value for the requirement.
QLineEdit * edit_value_nbr_field
void close_now()
User pushed close button.
void rec_vec_may_have_changed(const requirement_vector *vec)
A requirement vector may have been changed.
QToolButton * edit_range_button
void fill_active()
Fill active menus from selected req.
struct requirement * selected
req_edit(ruledit_gui *ui_in, const QString &target, struct requirement_vector *preqs)
Setup req_edit object.
QMenu * edit_value_enum_menu
void req_type_menu(QAction *action)
User selected type for the requirement.
void univ_value_edit()
User entered numerical requirement value.
void update_selected()
The selected requirement has changed.
void select_req()
User selected requirement from the list.
void incoming_rec_vec_change(const requirement_vector *vec)
The requirement vector may have been changed.
QToolButton * edit_type_button
void clear_selected()
Unselect the currently selected requirement.
void req_range_menu(QAction *action)
User selected range for the requirement.
void closeEvent(QCloseEvent *event) override
User clicked windows close button.
void add_now()
User requested new requirement.
void rec_vec_may_have_changed(const requirement_vector *vec)
A requirement vector may have been changed.
void unregister_req_edit(class req_edit *redit)
Unregisted closed req_edit dialog.
static void universal_value_cb(const char *value, bool current, void *cbdata)
Callback for filling menu values.
bool req_text_insert(char *buf, size_t bufsz, struct player *pplayer, const struct requirement *preq, enum rt_verbosity verb, const char *prefix)
Append text for the requirement.
void universal_extraction(const struct universal *source, int *kind, int *value)
Extract universal structure into its components for serialization; the opposite of universal_by_numbe...
bool are_requirements_equal(const struct requirement *req1, const struct requirement *req2)
Returns TRUE if req1 and req2 are equal.
void universal_value_from_str(struct universal *source, const char *value)
Parse requirement value strings into a universal structure.
struct requirement req_from_values(int type, int range, bool survives, bool present, bool quiet, int value)
Set the values of a req from serializable integers.
const char * universal_name_translation(const struct universal *psource, char *buf, size_t bufsz)
Make user-friendly text for the source.
#define universals_iterate(_univ_)
#define requirement_vector_iterate_end
#define req_range_iterate_end
#define req_range_iterate(_range_)
#define requirement_vector_iterate(req_vec, preq)
#define universals_iterate_end
QToolButton * enum_button
int fc_snprintf(char *str, size_t n, const char *format,...)
See also fc_utf8_snprintf_trunc(), fc_utf8_snprintf_rep().
int fc_strcasecmp(const char *str0, const char *str1)
Compare strings like strcmp(), but ignoring case.
bool universal_value_initial(struct universal *src)
Initialize universal value with a value suitable for the kind.
void universal_kind_values(struct universal *univ, univ_kind_values_cb cb, void *data)
Call cb for each value possible for the universal kind.