15 #include <QGridLayout>
19 #include <QPushButton>
41 QVBoxLayout *main_layout =
new QVBoxLayout(
this);
42 QGridLayout *effect_edit_layout =
new QGridLayout();
43 QHBoxLayout *active_layout =
new QHBoxLayout();
44 QPushButton *close_button;
45 QPushButton *reqs_button;
52 if (filter_in ==
nullptr) {
66 connect(
list_widget, &QListWidget::itemSelectionChanged,
this,
70 lbl =
new QLabel(
R__(
"Type:"));
71 active_layout->addWidget(lbl, 0);
78 for (eff = (
enum effect_type) 0; eff < EFT_COUNT;
79 eff = (
enum effect_type)(eff + 1)) {
80 menu->addAction(effect_type_name(eff));
84 lbl =
new QLabel(
R__(
"Value:"));
85 active_layout->addWidget(lbl, 2);
88 connect(
value_box, QOverload<int>::of(&QSpinBox::valueChanged),
this,
91 main_layout->addLayout(active_layout);
94 new QPushButton(QString::fromUtf8(
R__(
"Requirements")),
this);
95 connect(reqs_button, &QAbstractButton::pressed,
this,
97 effect_edit_layout->addWidget(reqs_button, 0, 0);
99 close_button =
new QPushButton(QString::fromUtf8(
R__(
"Close")),
this);
100 connect(close_button, &QAbstractButton::pressed,
this,
102 effect_edit_layout->addWidget(close_button, 1, 0);
106 main_layout->addLayout(effect_edit_layout);
108 setLayout(main_layout);
109 setWindowTitle(target);
128 if (requirement_vector_size(&peffect->
reqs) == 0) {
169 QListWidgetItem *
item;
172 effect_type_name(peffect->
type));
174 item =
new QListWidgetItem(QString::fromUtf8(buf));
176 effect_list_append(
effects, peffect);
178 item->setSelected(
true);
207 if (
item !=
nullptr &&
item->isSelected()) {
233 QByteArray en_bytes =
action->text().toUtf8();
234 enum effect_type type =
265 en_bytes =
name.toUtf8();
266 fc_snprintf(buf,
sizeof(buf),
R__(
"%s effect #%d"), en_bytes.data(),
struct effect_list * effects
QToolButton * edit_type_button
void close_now()
User pushed close button.
void fill_active()
Fill active menus from selected effect.
void edit_reqs()
User wants to edit requirements.
enum effect_filter_main_class efmc
void add_effect_to_list(struct effect *peffect, struct effect_list_fill_data *data)
Add entry to effect list.
void set_value(int value)
Read value from spinbox to effect.
~effect_edit() override
Effect edit destructor.
QListWidget * list_widget
void closeEvent(QCloseEvent *event) override
User clicked windows close button.
struct universal * filter_get()
Getter for filter.
void refresh()
Refresh the information.
void effect_type_menu(QAction *action)
User selected type for the effect.
effect_edit(ruledit_gui *ui_in, const QString &target, struct universal *filter_in, enum effect_filter_main_class efmc_in)
Setup effect_edit object.
void select_effect()
User selected effect from the list.
void unregister_effect_edit(class effect_edit *e_edit)
Unregisted closed effect_edit dialog.
void refresh_effect_edits()
Refresh all effect edit dialogs.
void open_req_edit(const QString &target, struct requirement_vector *preqs)
Open req_edit dialog.
static bool effect_list_fill_cb(struct effect *peffect, void *data)
Callback to fill effects list from iterate_effect_cache()
bool iterate_effect_cache(iec_cb cb, void *data)
Iterate through all the effects in cache, and call callback for each.
#define effect_list_iterate_end
#define effect_list_iterate(effect_list, peffect)
#define fc_assert(condition)
bool universal_is_mentioned_by_requirements(const struct requirement_vector *reqs, const struct universal *psource)
Returns TRUE iff the universal 'psource' is directly mentioned by any of the requirements in 'reqs'.
struct universal * filter
enum effect_filter_main_class efmc
struct requirement_vector reqs
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.