Tome
A generic data editor for games supporting arbitrary input and output formats.
listwidget.h
1 #ifndef LISTWIDGET_H
2 #define LISTWIDGET_H
3 
4 #include <QHBoxLayout>
5 #include <QListWidget>
6 #include <QString>
7 #include <QToolButton>
8 #include <QVBoxLayout>
9 #include <QWidget>
10 
11 class ListItemWindow;
12 
13 namespace Tome
14 {
15  class FacetsController;
16  class ProjectController;
17  class RecordsController;
18  class TypesController;
19 
23  class ListWidget : public QWidget
24  {
25  Q_OBJECT
26 
27  public:
36  explicit ListWidget(FacetsController& facetsController,
37  ProjectController& projectController,
38  RecordsController& recordsController,
39  TypesController& typesController,
40  QWidget *parent = 0);
41  ~ListWidget();
42 
47  QString getItemType() const;
48 
53  QVariantList getItems() const;
54 
59  void setItemType(const QString& itemType);
60 
65  void setItems(const QVariantList& items);
66 
67  private slots:
68  void addItem();
69  void editItem(QListWidgetItem* item);
70  void removeItem();
71  void moveItemUp();
72  void moveItemDown();
73 
74  private:
75  QString itemType;
76  QVariantList items;
77 
78  ListItemWindow* listItemWindow;
79 
80  QHBoxLayout* layout;
81  QVBoxLayout* buttonLayout;
82  QListWidget* listWidget;
83 
84  FacetsController& facetsController;
85  ProjectController& projectController;
86  RecordsController& recordsController;
87  TypesController& typesController;
88 
89  void addListWidgetItem(const QVariant& itemData);
90  int getSelectedItemIndex() const;
91  void updateListWidgetItem(QListWidgetItem* listWidgetItem, const QVariant& itemData);
92  };
93 }
94 #endif // LISTWIDGET_H
Definition: commandlineoptions.h:6
Controller for adding, updating and removing records.
Definition: recordscontroller.h:21
ListWidget(FacetsController &facetsController, ProjectController &projectController, RecordsController &recordsController, TypesController &typesController, QWidget *parent=0)
Constructs a new widget for adding, editing, re-ordering and removing list items. ...
Definition: listwidget.cpp:14
QString getItemType() const
Gets the type of the list items.
Definition: listwidget.cpp:90
QVariantList getItems() const
Gets all current list items.
Definition: listwidget.cpp:95
Controller for adding, updating and removing custom types.
Definition: typescontroller.h:14
Allows adding, editing, re-ordering and removing list items.
Definition: listwidget.h:23
void setItemType(const QString &itemType)
Sets the type of the list items.
Definition: listwidget.cpp:100
Controller for validating type facets.
Definition: facetscontroller.h:16
Controller for creating, loading and saving projects.
Definition: projectcontroller.h:22
void setItems(const QVariantList &items)
Sets all current list items.
Definition: listwidget.cpp:105
Window for editing the value of a single list item.
Definition: listitemwindow.h:23