Refactoring the project, new folders for view and model classes. Added
[emufront] / src / dialogs / mediatypedialog.cpp
index cac8e02..bd5efe3 100644 (file)
@@ -1,5 +1,74 @@
+// 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/>.
+
+#include <QtGui>
+#include <QAbstractItemView>
+#include <QSqlTableModel>
+#include <QTextStream>
+#include "dbmediatype.h"
+#include "mediatype.h"
 #include "mediatypedialog.h"
+#include "mediatypenamedialog.h"
+
+MediaTypeDialog::MediaTypeDialog(QWidget* parent)
+    :EmuFrontFileObjectDialog(parent)
+{
+    setWindowTitle(tr("Set media types"));
+    dbManager = new DbMediaType(this);
+    initDataTable();
+    initEditDialog();
+    // do not move to parent class:
+    connectSignals();
+    setColumnsHidden();
+    hideColumns();
+}
+
+MediaTypeDialog::~MediaTypeDialog()
+{
+    deleteCurrentObject();
+}
+
+void MediaTypeDialog::initEditDialog()
+{
+    nameDialog = new MediaTypeNameDialog(this, dynamic_cast<MediaType*>(dbObject));
+    connectNameDialogSignals();
+}
+
+EmuFrontObject* MediaTypeDialog::createObject()
+{
+    return new MediaType;
+}
+
+void MediaTypeDialog::deleteCurrentObject()
+{
+    delete dynamic_cast<MediaType*>(dbObject);
+    dbObject = 0;
+}
 
-MediaTypeDialog::MediaTypeDialog()
+void MediaTypeDialog::cleanUp()
 {
+    deleteCurrentObject();
+    if (nameDialog) {
+        MediaTypeNameDialog *pnd =
+            dynamic_cast<MediaTypeNameDialog*>(nameDialog);
+        if (pnd) delete pnd;
+        else qDebug() << "Failed to delete MediaTypeNameDialog";
+        nameDialog = 0;
+    }
 }