More exception handling.
authorMikko Keinänen <mikko.keinanen@gmail.com>
Thu, 18 Nov 2010 21:47:53 +0000 (23:47 +0200)
committerMikko Keinänen <mikko.keinanen@gmail.com>
Thu, 18 Nov 2010 21:47:53 +0000 (23:47 +0200)
src/db/databasemanager.cpp
src/db/dbtablemodelmanager.cpp
src/dialogs/dbobjectdialog.cpp
src/dialogs/executableeditdialog.cpp
src/dialogs/mediaimagepathdialog.cpp
src/dialogs/mediaimagepathmaindialog.cpp
src/dialogs/setupeditdialog.cpp
src/emulauncher.cpp
src/utils/emuhelper.cpp
src/utils/fileutil.cpp

index faca76e..b2b20fc 100644 (file)
@@ -119,7 +119,7 @@ EmuFrontObject* DatabaseManager::getDataObject(QString filter)
     QList<QString> filters;
     filters.append(filter);
     filterDataObjects(filters);
-    return getFilteredDataObject();
+    return getFilteredDataObject(); // throws EmuFrontException
 }
 
 /* Throws EmuFrontException if filtered data was not found. */
index 87fdba4..4b29213 100644 (file)
@@ -25,15 +25,15 @@ DbTableModelManager::DbTableModelManager(QObject *parent)
 {
 }
 
+/* Throws EmuFrontException */
 void DbTableModelManager::filterById(int id)
 {
     return filterDataObjects(QString("id = %1").arg(id));
 }
 
-/* Throws EmuFrontException */
 void DbTableModelManager::filterDataObjects(QString filter)
 {
-    if (!sqlTableModel) sqlTableModel = getDataModel(); // throw EmuFrontException("Data model not available!");
+    if (!sqlTableModel) sqlTableModel = getDataModel();
     QSqlTableModel *tmodel = dynamic_cast<QSqlTableModel*>(sqlTableModel);
     tmodel->setFilter(filter);
     tmodel->select();
index db01ba4..206e8be 100644 (file)
@@ -112,7 +112,7 @@ void DbObjectDialog::editObject()
     }
     deleteCurrentObject();
     try {
-        dbObject = dbManager->getDataObjectFromModel(&index);
+        dbObject = dbManager->getDataObjectFromModel(&index); // throws EmuFrontException
     } catch (EmuFrontException &e) { errorMessage->showMessage(e.what()); }
     activateNameDialog();
     nameDialog->setDataObject(dbObject);
@@ -125,7 +125,7 @@ bool DbObjectDialog::deleteItem()
     if (!index.isValid()) return false;
     try
     {
-        EmuFrontObject *ob = dbManager->getDataObjectFromModel(&index);
+        EmuFrontObject *ob = dbManager->getDataObjectFromModel(&index); // throws EmuFrontException
 
         qDebug() << "Trying to delete " << ob->getName();
 
index d23a838..ca640a8 100644 (file)
@@ -158,7 +158,7 @@ Setup* ExecutableEditDialog::getSelectedSetup()
 {
     EmuFrontObject *o = 0;
     try { o = setupComBox->getSelected(); }
-    catch(EmuFrontException &e){ QMessageBox::warning(this, "Exception", e.what()); }
+    catch(EmuFrontException &e){ errorMessage->showMessage(e.what()); }
 
     if (!o) return 0;
     Setup *ex = dynamic_cast<Setup*>(o);
index ea8276d..f3b4b1e 100644 (file)
@@ -108,7 +108,7 @@ Setup* MediaImagePathDialog::getSelectedSetup()
         ob = setupComBox->getSelected();
     }
     catch(EmuFrontException &e){
-        QMessageBox::warning(this, "Exception", e.what());
+        errorMessage->showMessage(e.what());
     }
 
     if (!ob) return 0;
index 325d6af..86a4489 100644 (file)
@@ -74,7 +74,7 @@ void MediaImagePathMainDialog::beginScanFilePath()
     FilePathObject *fpo = 0;
     try
     {
-        EmuFrontObject *ob = dbManager->getDataObjectFromModel(&index);
+        EmuFrontObject *ob = dbManager->getDataObjectFromModel(&index); // throws EmuFrontException
         if (!ob) return;
         fpo = dynamic_cast<FilePathObject*>(ob);
         if (!fpo) return;
index 5fce5d5..0b4f18a 100644 (file)
@@ -148,7 +148,7 @@ Platform* SetupEditDialog::getSelectedPlatform()
     EmuFrontObject *o = 0;
     try { o = platformComBox->getSelected();  }
     catch(EmuFrontException &e){
-        QMessageBox::warning(this, "Exception", e.what());
+        errorMessage->showMessage(e.what());
     }
 
     if (!o) return 0;
@@ -160,7 +160,7 @@ MediaType* SetupEditDialog::getSelectedMediaType()
 {
     EmuFrontObject *o = 0;
     try { o = mediaTypeComBox->getSelected(); }
-    catch(EmuFrontException &e){ QMessageBox::warning(this, "Exception", e.what()); }
+    catch(EmuFrontException &e){ errorMessage->showMessage(e.what()); }
     if (!o) return 0;
     MediaType *mt = dynamic_cast<MediaType*>(o);
     return mt;
index 733a4d0..890d5e0 100644 (file)
@@ -113,7 +113,7 @@ void EmuLauncher::updateMediaImageContainers()
                     : -1;
     }
     catch(EmuFrontException &e){
-        QMessageBox::warning(this, "Exception", e.what());
+        errorMessage->showMessage(e.what());
         return;
     }
 
@@ -182,7 +182,7 @@ void EmuLauncher::launchEmu()
 
         foreach(QModelIndex mind, listMIndex) {
             if (!mind.isValid()) continue;
-            EmuFrontObject *obImg = dbMic->getDataObjectFromModel(&mind);
+            EmuFrontObject *obImg = dbMic->getDataObjectFromModel(&mind); // throws EmuFrontException
             if (!obImg) {
                 qDebug() << "Failed creating media image container at row " << mind.row();
                 continue;
index 3307ac5..4855e69 100644 (file)
@@ -88,7 +88,7 @@ void EmuHelper::launch(const Executable * ex, QList<MediaImageContainer *> micLi
         if (!fp.endsWith('/')) fp.append("/");
         fp.append(mic->getName());
         qDebug() << "Extracting " << fp;
-        int ret = unzipHelper->extractAll(fp, tmp);
+        int ret = unzipHelper->extractAll(fp, tmp); // throws EmuFrontException
         if (ret) {
             qDebug() << "Failed unzipping " << fp << ".";
         }
index 0cf3cd1..f18244d 100644 (file)
@@ -78,56 +78,56 @@ int FileUtil::scanFilePath(FilePathObject *fp,
     //qDebug() << "We have " << list.count() << " files to go through.";
     QList<MediaImageContainer*> containers;
     try {
-    progressDialog.setMinimum(0);
-    progressDialog.setMaximum(list.size());
-    for (int i = 0; i < list.size(); ++i)
-    {
-        progressDialog.setValue(i);
-        if (progressDialog.wasCanceled())
-            break;
-        QFileInfo fileInfo = list.at(i);
-        //qDebug() << QString("%1 %2").arg(fileInfo.size(), 10).arg(fileInfo.absoluteFilePath());
+        progressDialog.setMinimum(0);
+        progressDialog.setMaximum(list.size());
+        for (int i = 0; i < list.size(); ++i)
+        {
+            progressDialog.setValue(i);
+            if (progressDialog.wasCanceled())
+                break;
+            QFileInfo fileInfo = list.at(i);
+            //qDebug() << QString("%1 %2").arg(fileInfo.size(), 10).arg(fileInfo.absoluteFilePath());
 
-        //... and collect the contents of each archive
-        QMap<QString, EmuFrontObject*> files = unzipHelper->listContents(fileInfo.absoluteFilePath(), fp);
+            //... and collect the contents of each archive
+            QMap<QString, EmuFrontObject*> files = unzipHelper->listContents(fileInfo.absoluteFilePath(), fp);
 
-        if (files.count() > 0)
-        {
-            // read crc32 checksum for media image container
-            quint32 crc = readCrc32(fileInfo.absoluteFilePath());
-            FilePathObject *fpo = new FilePathObject(*fp);
-            MediaImageContainer *con = new MediaImageContainer (
-                    fileInfo.fileName(),
-                    QString("%1").arg(crc, 0, 16),
-                    fileInfo.size(),
-                    files,
-                    fpo // we need a copy since MediaImageContainers are deleted and the original filepath object would get deleted also.
-                );
-            containers.append(con);
-            ++count;
-            //qDebug() << "We have " << containers.count() << " containers.";
+            if (files.count() > 0)
+            {
+                // read crc32 checksum for media image container
+                quint32 crc = readCrc32(fileInfo.absoluteFilePath());
+                FilePathObject *fpo = new FilePathObject(*fp);
+                MediaImageContainer *con = new MediaImageContainer (
+                        fileInfo.fileName(),
+                        QString("%1").arg(crc, 0, 16),
+                        fileInfo.size(),
+                        files,
+                        fpo // we need a copy since MediaImageContainers are deleted and the original filepath object would get deleted also.
+                        );
+                containers.append(con);
+                ++count;
+                //qDebug() << "We have " << containers.count() << " containers.";
 
-            if (containers.count() >= MIC_BUFFER_SIZE)  {
-                //qDebug() << "We have " << containers.count() << " containers .. storing to db.";
-                dbMic->storeContainers(containers, fp);
-                qDeleteAll(containers);
-                containers.clear();
-                //qDebug() << "containers now: " << containers.count();
+                if (containers.count() >= MIC_BUFFER_SIZE)  {
+                    //qDebug() << "We have " << containers.count() << " containers .. storing to db.";
+                    dbMic->storeContainers(containers, fp);
+                    qDeleteAll(containers);
+                    containers.clear();
+                    //qDebug() << "containers now: " << containers.count();
+                }
+                //qDebug() << "We have " << containers.size() << " containers.";
+            } // files.count() > 0
+            else {
+                qDebug() << "No files from container " << fileInfo.absoluteFilePath();
             }
-            //qDebug() << "We have " << containers.size() << " containers.";
-        } // files.count() > 0
-        else {
-            qDebug() << "No files from container " << fileInfo.absoluteFilePath();
         }
-    }
-    progressDialog.setValue(list.size());
-    if (containers.count() > 0) {
-        //qDebug() << "Storing the rest " << containers.count() << " containers.";
-        dbMic->storeContainers(containers, fp);
-        qDeleteAll(containers);
-        containers.clear();
+        progressDialog.setValue(list.size());
+        if (containers.count() > 0) {
+            //qDebug() << "Storing the rest " << containers.count() << " containers.";
+            dbMic->storeContainers(containers, fp);
+            qDeleteAll(containers);
+            containers.clear();
 
-    }
+        }
     } catch (EmuFrontException &e) {
         qDebug() << "Got exception " << e.what() << ", aborting & deleting created data objects.";
         qDeleteAll(containers);