Freeciv21
Develop your civilization from humble roots to a global empire
req_edit.h
Go to the documentation of this file.
1 /*__ ___ ***************************************
2 / \ / \ Copyright (c) 1996-2020 Freeciv21 and Freeciv
3 \_ \ / __/ contributors. This file is part of Freeciv21.
4  _\ \ / /__ Freeciv21 is free software: you can redistribute it
5  \___ \____/ __/ and/or modify it under the terms of the GNU General
6  \_ _/ Public License as published by the Free Software
7  | @ @ \_ Foundation, either version 3 of the License,
8  | or (at your option) any later version.
9  _/ /\ You should have received a copy of the GNU
10  /o) (o/\ \_ General Public License along with Freeciv21.
11  \_____/ / If not, see https://www.gnu.org/licenses/.
12  \____/ ********************************************************/
13 
14 #ifndef FC__REQ_EDIT_H
15 #define FC__REQ_EDIT_H
16 
17 #include <fc_config.h>
18 
19 // Qt
20 #include <QDialog>
21 #include <QListWidget>
22 #include <QToolButton>
23 
24 // common
25 #include "requirements.h"
26 
27 class ruledit_gui;
28 
29 class req_edit : public QDialog {
30  Q_OBJECT
31 
32 public:
33  explicit req_edit(ruledit_gui *ui_in, const QString &target,
34  struct requirement_vector *preqs);
35  void refresh();
36  void add(const char *msg);
37 
38  struct requirement_vector *req_vector;
39 
40 signals:
41  /********************************************************************/
45  void rec_vec_may_have_changed(const requirement_vector *vec);
46 
47 private:
49 
50  QListWidget *req_list;
51 
54  void clear_selected();
55  void update_selected();
56 
57  QToolButton *edit_type_button;
58  QToolButton *edit_value_enum_button;
61  QToolButton *edit_range_button;
62  QToolButton *edit_present_button;
63 
64 private slots:
65  void select_req();
66  void fill_active();
67  void add_now();
68  void delete_now();
69  void close_now();
70 
71  void req_type_menu(QAction *action);
72  void req_range_menu(QAction *action);
73  void req_present_menu(QAction *action);
74  void univ_value_enum_menu(QAction *action);
75  void univ_value_edit();
76 
77  void incoming_rec_vec_change(const requirement_vector *vec);
78 
79 protected:
80  void closeEvent(QCloseEvent *event) override;
81 };
82 
83 #endif // FC__REQ_EDIT_H
struct requirement_vector * req_vector
Definition: req_edit.h:38
ruledit_gui * ui
Definition: req_edit.h:48
void req_present_menu(QAction *action)
User selected 'present' value for the requirement.
Definition: req_edit.cpp:336
void delete_now()
User requested requirement deletion.
Definition: req_edit.cpp:402
QToolButton * edit_value_enum_button
Definition: req_edit.h:58
QToolButton * edit_present_button
Definition: req_edit.h:62
void refresh()
Refresh the information.
Definition: req_edit.cpp:152
struct requirement selected_values
Definition: req_edit.h:53
void univ_value_enum_menu(QAction *action)
User selected value for the requirement.
Definition: req_edit.cpp:351
QLineEdit * edit_value_nbr_field
Definition: req_edit.h:60
void add(const char *msg)
void close_now()
User pushed close button.
Definition: req_edit.cpp:213
void rec_vec_may_have_changed(const requirement_vector *vec)
A requirement vector may have been changed.
QToolButton * edit_range_button
Definition: req_edit.h:61
void fill_active()
Fill active menus from selected req.
Definition: req_edit.cpp:272
struct requirement * selected
Definition: req_edit.h:52
req_edit(ruledit_gui *ui_in, const QString &target, struct requirement_vector *preqs)
Setup req_edit object.
Definition: req_edit.cpp:38
QMenu * edit_value_enum_menu
Definition: req_edit.h:59
void req_type_menu(QAction *action)
User selected type for the requirement.
Definition: req_edit.cpp:298
void univ_value_edit()
User entered numerical requirement value.
Definition: req_edit.cpp:368
void update_selected()
The selected requirement has changed.
Definition: req_edit.cpp:188
void select_req()
User selected requirement from the list.
Definition: req_edit.cpp:222
void incoming_rec_vec_change(const requirement_vector *vec)
The requirement vector may have been changed.
Definition: req_edit.cpp:426
QToolButton * edit_type_button
Definition: req_edit.h:57
void clear_selected()
Unselect the currently selected requirement.
Definition: req_edit.cpp:198
void req_range_menu(QAction *action)
User selected range for the requirement.
Definition: req_edit.cpp:318
QListWidget * req_list
Definition: req_edit.h:50
void closeEvent(QCloseEvent *event) override
User clicked windows close button.
Definition: req_edit.cpp:453
void add_now()
User requested new requirement.
Definition: req_edit.cpp:385
enum event_type event
Definition: events.cpp:68