Cleaning up here and there
authorMikko Keinänen <mikko.keinanen@gmail.com>
Sat, 22 May 2010 17:29:27 +0000 (20:29 +0300)
committerMikko Keinänen <mikko.keinanen@gmail.com>
Sat, 22 May 2010 17:29:27 +0000 (20:29 +0300)
src/dialogs/dbobjectdialog.cpp
src/dialogs/dbobjectdialog.h
src/dialogs/namedialog.cpp
src/dialogs/namedialog.h
src/dialogs/platformdialog.cpp
src/dialogs/platformnamedialog.cpp
src/dialogs/platformnamedialog.h
src/main.cpp
src/mainwindow.cpp

index 43ad314..28732bd 100644 (file)
@@ -27,7 +27,6 @@ DbObjectDialog::DbObjectDialog(QWidget *parent)
 {
     dbObject = 0;
     dbManager = 0;
-    //dbManager = new DatabaseManager(this);
     editButton = new QPushButton(tr("&Edit")); 
     editButton->setEnabled(false);
     addButton = new QPushButton(tr("&Add"));
@@ -38,15 +37,18 @@ DbObjectDialog::DbObjectDialog(QWidget *parent)
     buttonBox->addButton(editButton, QDialogButtonBox::ActionRole);
     buttonBox->addButton(addButton, QDialogButtonBox::ActionRole);
     buttonBox->addButton(deleteButton, QDialogButtonBox::ActionRole);
-    // nameDialog will be created on request
-    
+    // this be called from the implementing classes:
     //connectSignals();
     layout();
 } 
 
 DbObjectDialog::~DbObjectDialog()
 {
-    delete dbObject;
+    // no need to explicitically delete widgets within a parented layout
+    // they are automatically parented and will be deleted
+    // dbManager is also parented and will be implicitically deleted
+    // this must be deleted in an implementing class
+    //delete dbObject;
 }
 
 void DbObjectDialog::connectSignals()
@@ -57,7 +59,6 @@ void DbObjectDialog::connectSignals()
     connect(editButton, SIGNAL(clicked()), this, SLOT(editButtonClicked()));
     connect(addButton, SIGNAL(clicked()), this, SLOT(addButtonClicked()));
     connect(deleteButton, SIGNAL(clicked()), this, SLOT(deleteButtonClicked()));
-    //connect(nameDialog, SIGNAL(accepted()), this, SLOT(updateList()));
     connect(nameDialog, SIGNAL(dataObjectUpdated()), this, SLOT(updateData()));
 }
 
@@ -134,7 +135,7 @@ void DbObjectDialog::updateData()
     updateList();
 }
 
-void DbObjectDialog::activateNameDialog() const
+void DbObjectDialog::activateNameDialog()
 {
     if (!nameDialog) return;
     nameDialog->show();
index 32a282f..024256d 100644 (file)
@@ -34,44 +34,41 @@ class DbObjectDialog : public EmuFrontDialog
 {
     Q_OBJECT
 
-    public:
+public:
     DbObjectDialog(QWidget *parent = 0);
     ~DbObjectDialog();
 
-    protected slots:
+protected slots:
        void editButtonClicked();
        void addButtonClicked();
        void deleteButtonClicked();
-       //void enableEditButton();
-       //void enableDeleteButton();
        void listObjectClicked(const QModelIndex &);
     virtual void updateData();
     void updateList() const;
 
-    protected:
+protected:
        virtual int deleteObject() =0;
        virtual void addObject() =0;
        virtual void editObject() =0;
     virtual bool deleteItem() = 0;
+    virtual void updateDb(const EmuFrontObject*) const = 0;
+    virtual void insertDb(const EmuFrontObject*) const = 0;
+    void connectSignals();
+    void activateNameDialog();
     NameDialog *nameDialog;
     DatabaseManager *dbManager;
     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;
 
+private:
        void setButtonsEnabled(bool);
     void layout();
     void disableSelection();
+    QDialogButtonBox *buttonBox;
+    QPushButton *editButton;
+    QPushButton *addButton;
+    QPushButton *deleteButton;
+
 };
 
 #endif
index 419a96f..82147f0 100644 (file)
@@ -34,9 +34,10 @@ NameDialog::NameDialog(QWidget *parent, EmuFrontObject *efObj)
 
 NameDialog::~NameDialog()
 {
-    delete efObject;
+    // should be deleted in implementing classes
+    // delete efObject;
 
-    /* deleting parenteed QT-objects in heap is not needed here
+    /* no need to delete parented QT-objects in heap here
         * because when deleting a parent widget
      * the child widgets will be also deleted
         */
@@ -46,7 +47,7 @@ void NameDialog::connectSignals()
 {
     connect(nameEdit, SIGNAL(textChanged(const QString &)), this, SLOT(enableSaveButton(const QString &)));
     connect(buttonBox, SIGNAL(accepted()), this, SLOT(acceptChanges()));
-    connect(buttonBox, SIGNAL(rejected()), this, SLOT(close()));
+    connect(buttonBox, SIGNAL(rejected()), this, SLOT(rejectChanges()));
 }
 
 void NameDialog::layout()
@@ -64,6 +65,12 @@ void NameDialog::layout()
        setLayout(mainLayout);
 }
 
+void NameDialog::rejectChanges()
+{
+    efObject = 0;
+    close();
+}
+
 void NameDialog::acceptChanges()
 {
     if (nameEdit->text() == 0 || nameEdit->text().trimmed().isEmpty())
@@ -75,7 +82,7 @@ void NameDialog::acceptChanges()
        QString name = nameEdit->text().simplified();
     setDataObject(name);
     emit dataObjectUpdated();
-    efObject = 0; // TODO we should also se efObject to null when user clicks abort
+    efObject = 0; // TODO we should also set efObject to null when user clicks abort
     close();
 }
 
index f76a776..7301be4 100644 (file)
@@ -23,7 +23,6 @@
 #include "../dataobjects/emufrontobject.h"
 #include "emufrontdialog.h"
 
-
 class QLabel;
 class QLineEdit;
 class QPushButton;
@@ -43,7 +42,8 @@ signals:
 
 protected slots:
     void acceptChanges();
-       void enableSaveButton(const QString &);
+    void rejectChanges();
+    void enableSaveButton(const QString &);
 
 protected:
     virtual void setDataObject(QString name) =0;
index 1fc1576..e600164 100644 (file)
@@ -41,7 +41,7 @@ PlatformDialog::PlatformDialog(QWidget *parent)
     
     objectList->setModel(dbManager->getDataModel());
     objectList->setSelectionMode(QAbstractItemView::SingleSelection);
-    //objectList->setColumnHidden(DatabaseManager::Platform_Id, true);
+    //objectList->setColumnHidden(Platform_Id, true);
     objectList->resizeColumnsToContents();
 
     // do not move to parent class:
@@ -60,17 +60,14 @@ int PlatformDialog::deleteObject()
 
 void PlatformDialog::addObject()
 {
-    cout << "PlaformDialog::addObject" << endl;
     /*if (!nameDialog)
     {
         if (!dbObject) dbObject = new Platform;
-        cout << "PlaformDialog::addObject: creating nameDialog..." << endl;
         nameDialog = new PlatformNameDialog(this, dynamic_cast<Platform*>(dbObject));
     }*/
 
     delete dynamic_cast<Platform*>(dbObject);
     dbObject = new Platform;
-    // we need to fetch a new id for this platform
     nameDialog->setDataObject(dbObject);
     activateNameDialog();
 }
@@ -96,7 +93,7 @@ void PlatformDialog::updateData()
 
     qDebug() << "dbObject is not 0";
 
-    QMessageBox::information(this, "Test", "We have a " + dbObject->getName());
+    qDebug() << "We have a " + dbObject->getName();
 
     qDebug() << "Data will be inserted/updated...";
 
@@ -104,6 +101,10 @@ void PlatformDialog::updateData()
     if (dbObject->getId() > -1) updateDb(dbObject);
     else insertDb(dbObject);
 
+    // we don't need dbObject anymore
+    delete dynamic_cast<Platform*>(dbObject);
+    dbObject = 0;
+
     // refresh...
     DbObjectDialog::updateData();
 }
index aaa2250..f07fbc7 100644 (file)
@@ -27,6 +27,12 @@ PlatformNameDialog::PlatformNameDialog(QWidget *parent, Platform *efObj)
     setWindowTitle(tr("Set platform name"));
 }
 
+PlatformNameDialog::~PlatformNameDialog()
+{
+    // no need to delete efObject here, the calling widget will take care of it
+    // delete dynamic_cast<Platform*>(efObject);
+}
+
 void PlatformNameDialog::setDataObject(QString name)
 {
     efObject->setName(name);
index ae2815b..56f49c7 100644 (file)
@@ -29,6 +29,7 @@ class PlatformNameDialog : public NameDialog
 
 public:
     PlatformNameDialog(QWidget *parent = 0, Platform * = 0);
+    ~PlatformNameDialog();
     virtual void setDataObject(EmuFrontObject*);
 
 protected:
index 01cbce4..f585380 100644 (file)
@@ -30,7 +30,7 @@ int main(int argc, char *argv[])
        QTextStream cout(stdout, QIODevice::WriteOnly);
 
     if (DatabaseManager::openDB())
-        cout << " Database opened succesflly!" << endl;
+        cout << " Database opened succesfully!" << endl;
        else cout << " Database connection failed!" << endl;
 
     if (DatabaseManager::dbExists())
@@ -45,18 +45,6 @@ int main(int argc, char *argv[])
                        exit(1);
                }
         }
-     /*
-
-       if (dbm.insertPerson("Testi","Tapaus",1) > 0)
-               cout << "Database insert successfull!" << endl;
-       else cout << "Database insert failed!" << endl;
-
-
-       cout << "Trying to select from database: " << dbm.getName(1) << endl;
-       */
-
-       /*PlatformNameDialog *nameDialog = new PlatformNameDialog;
-       nameDialog->show();*/
        MainWindow *mw = new MainWindow;
        mw->show();
        return app.exec();
index 8d675b0..59cdb58 100644 (file)
@@ -30,7 +30,6 @@ MainWindow::MainWindow()
     createStatusBar();
     readSettings();
     platformDialog = 0;
-    //dbManager = new DatabaseManager;
 }
 
 void MainWindow::createActions()