Freeciv21
Develop your civilization from humble roots to a global empire
upkeep_widget.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: 2023 Louis Moureaux <m_louis30@yahoo.com>
3  *
4  * SPDX-License-Identifier: GPLv3-or-later
5  */
6 
7 #pragma once
8 
9 #include <QListView>
10 #include <QStandardItemModel>
11 
12 namespace freeciv {
13 
14 class upkeep_widget : public QListView {
15  Q_OBJECT;
16 
17 public:
18  explicit upkeep_widget(QWidget *parent = nullptr);
19 
20  void refresh();
21  void set_city(int city_id);
22 
23  QSize viewportSizeHint() const override;
24  QSize minimumSizeHint() const override;
25 
26 protected:
27  void contextMenuEvent(QContextMenuEvent *event) override;
28  bool event(QEvent *event) override;
29 
30 private:
31  void item_double_clicked(const QModelIndex &index);
32 
33 private:
34  int m_city = -1;
35  QStandardItemModel *m_model;
36 };
37 
38 } // namespace freeciv
Displays the list of items supported by a city (improvements and units).
Definition: upkeep_widget.h:14
QSize minimumSizeHint() const override
Reimplemented to allow for tiny tilesets.
QStandardItemModel * m_model
Definition: upkeep_widget.h:35
void contextMenuEvent(QContextMenuEvent *event) override
Reimplemented to provide the improvement and unit actions.
bool event(QEvent *event) override
Reimplemented to handle tileset changes.
void refresh()
Updates the widget from the city.
void set_city(int city_id)
Changes the city displayed by this widget.
void item_double_clicked(const QModelIndex &index)
Called when an item is double clicked.
upkeep_widget(QWidget *parent=nullptr)
Constructor.
QSize viewportSizeHint() const override
Reimplemented to provide a meaningful size hint.
Definition: path.cpp:10