OpenClonk
C4ConsoleQtObjectListViewer.h
Go to the documentation of this file.
1 /*
2 * OpenClonk, http://www.openclonk.org
3 *
4 * Copyright (c) 2001-2009, RedWolf Design GmbH, http://www.clonk.de/
5 * Copyright (c) 2013, The OpenClonk Team and contributors
6 *
7 * Distributed under the terms of the ISC license; see accompanying file
8 * "COPYING" for details.
9 *
10 * "Clonk" is a registered trademark of Matthes Bender, used with permission.
11 * See accompanying file "TRADEMARK" for details.
12 *
13 * To redistribute this file separately, substitute the full license texts
14 * for the above references.
15 */
16 
17 /* Proplist table view */
18 
19 #ifndef INC_C4ConsoleQtObjectListViewer
20 #define INC_C4ConsoleQtObjectListViewer
21 #ifdef WITH_QT_EDITOR
22 
23 #include "C4Include.h" // needed for automoc
24 #include "editor/C4ConsoleGUI.h" // for OpenGL
25 #include "script/C4Value.h"
26 #include "editor/C4ConsoleQt.h"
27 
28 // Prop list view implemented as a model view
29 class C4ConsoleQtObjectListModel : public QAbstractItemModel
30 {
31  Q_OBJECT
32 
33  mutable int32_t last_row_count{0};
34  QBrush clr_deleted, clr_effect;
35 
36  // model indices for static proplists
37  enum
38  {
39  IDX_Global = 0,
40  IDX_Scenario = 1,
41  IDX_Objects = 2
42  };
43 
44 public:
45  C4ConsoleQtObjectListModel();
46  ~C4ConsoleQtObjectListModel() override;
47 
48  // Refresh object list on next redraw
49  void Invalidate();
50 
51  QModelIndex GetModelIndexByItem(class C4PropList *item) const;
52  C4PropList *GetItemByModelIndex(const QModelIndex &index) const;
53 
54 protected:
55  int rowCount(const QModelIndex & parent = QModelIndex()) const override;
56  int columnCount(const QModelIndex & parent = QModelIndex()) const override;
57  QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const override;
58  QModelIndex index(int row, int column, const QModelIndex &parent) const override;
59  QModelIndex parent(const QModelIndex &index) const override;
60 };
61 
62 #endif // WITH_QT_EDITOR
63 #endif // INC_C4ConsoleQtObjectListViewer