Did some fast and dirty refactoring (check later that everything's ok):
[emufront] / src / dialogs / dbobjectdialog.h
1 #ifndef DBOBJECTDIALOG_H
2 #define DBOBJECTDIALOG_H
3
4 #include "emufrontdialog.h"
5 #include "namedialog.h"
6 #include "../db/databasemanager.h"
7 #include "../dataobjects/emufrontobject.h"
8
9 class QPushButton;
10 class QModelIndex;
11 class QDialogButtonBox;
12 class QTableView;
13
14 class DbObjectDialog : public EmuFrontDialog
15 {
16     Q_OBJECT
17
18     public:
19     DbObjectDialog(QWidget *parent = 0);
20     ~DbObjectDialog();
21
22     protected slots:
23         void editButtonClicked();
24         void addButtonClicked();
25         void deleteButtonClicked();
26         //void enableEditButton();
27         //void enableDeleteButton();
28         void listObjectClicked(const QModelIndex &);
29     virtual void updateData();
30     void updateList() const;
31
32     protected:
33         virtual int deleteObject() =0;
34         virtual void addObject() =0;
35         virtual void editObject() =0;
36     virtual bool deleteItem() = 0;
37     NameDialog *nameDialog;
38     DatabaseManager *dbManager;
39     QTableView *objectList;
40     EmuFrontObject *dbObject;
41     void connectSignals();
42     void activateNameDialog() const;
43     virtual void updateDb(const EmuFrontObject*) const = 0;
44     virtual void insertDb(const EmuFrontObject*) const = 0;
45     //virtual QSqlTableModel* getDataObjects() = 0;
46
47     private:
48         QDialogButtonBox *buttonBox;
49         QPushButton *editButton;
50     QPushButton *addButton;
51         QPushButton *deleteButton;
52
53         void setButtonsEnabled(bool);
54     void layout();
55     void disableSelection();
56 };
57
58 #endif