Freeciv21
Develop your civilization from humble roots to a global empire
view_units.h
Go to the documentation of this file.
1 /*
2  * SPDX-License-Identifier: GPL-3.0-or-later
3  * SPDX-FileCopyrightText: James Robertson <jwrober@gmail.com>
4  * SPDX-FileCopyrightText: Tobias Rehbein <tobias.rehbein@web.de>
5  */
6 
7 #pragma once
8 
9 // Qt
10 #include <QItemSelection>
11 #include <QTableWidget>
12 #include <QWidget>
13 
14 #include "ui_view_units.h"
15 
16 // client
17 #include "climisc.h"
18 
19 struct unit_type;
20 
26  const struct unit_type *type;
28  bool upg;
29 };
30 std::vector<unit_view_entry> get_units_view_data();
31 
37  const struct unit_type *type;
38  time_t timer;
39  QString city_name;
40  int id;
41 };
42 std::vector<unit_waiting_entry> get_units_waiting_data();
43 
44 void units_view_dialog_update(void *unused);
45 
46 void popdown_units_view();
47 
48 struct unit *find_nearest_unit(const struct unit_type *utype,
49  struct tile *ptile);
50 
54 class units_view : public QWidget {
55  Q_OBJECT
56 
57 public:
58  units_view();
59  ~units_view();
60  void update_view();
61  void update_units();
62  void init();
63 
64 private:
65  int index;
66  int curr_row{-1};
67  int max_row{0};
68  cid uid{0};
69  int counter{0};
70  Ui::FormUnitsView ui;
71  void update_waiting();
72  void update_buttons(const QItemSelection &sl);
73 
74 private slots:
75  void disband_units();
76  void find_nearest();
77  void upgrade_units();
78  void selection_changed(const QItemSelection &sl, const QItemSelection &ds);
79 };
Table widget to display units view (F2)
Definition: view_units.h:54
void update_buttons(const QItemSelection &sl)
Updates the buttons according to the item selection sl in the units table.
Definition: view_units.cpp:461
void init()
Initializes place in tab for units view.
Definition: view_units.cpp:128
void disband_units()
Disband selected units.
Definition: view_units.cpp:501
void update_waiting()
Function to load the units waiting table.
Definition: view_units.cpp:348
Ui::FormUnitsView ui
Definition: view_units.h:70
int max_row
Definition: view_units.h:67
int curr_row
Definition: view_units.h:66
void update_view()
Refresh all widgets for units view.
Definition: view_units.cpp:133
void update_units()
Updates the units table.
Definition: view_units.cpp:146
void find_nearest()
Find nearest selected unit, closest units view when button is clicked.
Definition: view_units.cpp:539
int counter
Definition: view_units.h:69
units_view()
Constructor for units view.
Definition: view_units.cpp:39
void upgrade_units()
Upgrade selected units.
Definition: view_units.cpp:568
void selection_changed(const QItemSelection &sl, const QItemSelection &ds)
Action for selection changed in units view.
Definition: view_units.cpp:451
~units_view()
Destructor for units view.
Definition: view_units.cpp:123
int cid
Definition: climisc.h:21
Definition: tile.h:42
Structure of data for the Units View.
Definition: view_units.h:25
int food_cost
Definition: view_units.h:27
int total_cost
Definition: view_units.h:27
int shield_cost
Definition: view_units.h:27
int gold_cost
Definition: view_units.h:27
const struct unit_type * type
Definition: view_units.h:26
bool upg
Definition: view_units.h:28
int count
Definition: view_units.h:27
int in_prod
Definition: view_units.h:27
Structure of unit waiting data for the Units View.
Definition: view_units.h:36
QString city_name
Definition: view_units.h:39
time_t timer
Definition: view_units.h:38
int id
Definition: view_units.h:40
const struct unit_type * type
Definition: view_units.h:37
Definition: unit.h:134
const struct unit_type * utype
Definition: unit.h:135
std::vector< unit_waiting_entry > get_units_waiting_data()
Returns an array of units subject to unitwaittime.
Definition: view_units.cpp:718
std::vector< unit_view_entry > get_units_view_data()
Returns an array of units data.
Definition: view_units.cpp:643
void units_view_dialog_update(void *unused)
Update the units view.
Definition: view_units.cpp:758
void popdown_units_view()
Closes units view.
Definition: view_units.cpp:808
struct unit * find_nearest_unit(const struct unit_type *utype, struct tile *ptile)
Function to help us find the nearest unit.
Definition: view_units.cpp:608