+// EmuFront
+// Copyright 2010 Mikko Keinänen
+//
+// This file is part of EmuFront.
+//
+//
+// EmuFront is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2 as published by
+// the Free Software Foundation and appearing in the file gpl.txt included in the
+// packaging of this file.
+//
+// EmuFront is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with EmuFront. If not, see <http://www.gnu.org/licenses/>.
+
#ifndef DBOBJECTDIALOG_H
#define DBOBJECTDIALOG_H
#include "emufrontdialog.h"
-#include "namedialog.h"
-#include "../db/databasemanager.h"
-#include "../dataobjects/emufrontobject.h"
+#include "dataobjecteditdialog.h"
+#include "databasemanager.h"
+#include "emufrontobject.h"
class QPushButton;
class QModelIndex;
{
Q_OBJECT
- public:
+public:
DbObjectDialog(QWidget *parent = 0);
~DbObjectDialog();
+ virtual void refreshDataModel();
- protected slots:
+private slots:
void editButtonClicked();
void addButtonClicked();
void deleteButtonClicked();
- //void enableEditButton();
- //void enableDeleteButton();
void listObjectClicked(const QModelIndex &);
- virtual void updateData();
- void updateList() const;
+ void updateData();
+ void updateReject();
+ void testSlot();
+ void enableUi();
- protected:
- virtual int deleteObject() =0;
- virtual void addObject() =0;
- virtual void editObject() =0;
- virtual bool deleteItem() = 0;
- NameDialog *nameDialog;
+protected:
+ // implementation specific, deletes current data object from memory
+ void updateList() const;
+ virtual void deleteCurrentObject() = 0;
+ virtual void cleanUp() = 0;
+ virtual void initEditDialog() = 0;
+ virtual EmuFrontObject* createObject() = 0;
+ virtual void closeEvent(QCloseEvent *);
+ void initDataTable();
+ virtual void connectSignals();
+ virtual void connectNameDialogSignals();
+ DataObjectEditDialog *nameDialog;
+ EmuFrontObject *dbObject;
DatabaseManager *dbManager;
+ QDialogButtonBox *buttonBox;
QTableView *objectList;
- EmuFrontObject *dbObject;
- void connectSignals();
- void activateNameDialog() const;
- virtual void updateDb(const EmuFrontObject*) const = 0;
- virtual void insertDb(const EmuFrontObject*) const = 0;
- //virtual QSqlTableModel* getDataObjects() = 0;
-
- private:
- QDialogButtonBox *buttonBox;
- QPushButton *editButton;
- QPushButton *addButton;
- QPushButton *deleteButton;
+ QList<int> hiddenColumns;
+ void hideColumns();
+ void setUIEnabled(bool);
- void setButtonsEnabled(bool);
+private:
+ bool deleteItem();
+ void addObject();
+ void insertDb(const EmuFrontObject*) const;
+ void updateDb(const EmuFrontObject*) const;
+ void editObject();
+ void activateNameDialog(bool updateData = true);
+ bool confirmDelete(QString name, int numRefs);
+ void setButtonsEnabled(bool);
void layout();
void disableSelection();
+ void createEditDialog();
+ QPushButton *editButton;
+ QPushButton *addButton;
+ QPushButton *deleteButton;
};
#endif