Fixed bug in main window: selected platform and media types remain
authorMikko Keinänen <mikko.keinanen@gmail.com>
Sat, 20 Nov 2010 22:02:11 +0000 (00:02 +0200)
committerMikko Keinänen <mikko.keinanen@gmail.com>
Sat, 20 Nov 2010 22:02:11 +0000 (00:02 +0200)
selected after update button is pressed.

src/emulauncher.cpp
src/mainwindow.cpp
src/widgets/efcombobox.cpp
src/widgets/efcombobox.h

index f141afe..3e75ed9 100644 (file)
@@ -133,8 +133,6 @@ void EmuLauncher::updateMediaImageContainers()
     micTable->hideColumn(DbMediaImageContainer::MIC_MediaTypeName);
     micTable->hideColumn(DbMediaImageContainer::MIC_MediaTypeId);
     micTable->resizeColumnsToContents();
-    platformSelectBox->updateDataModel();
-    mediaTypeSelectBox->updateDataModel();
     execSelectBox->updateToSetup(plfid, mtid);
 }
 
index 5354d83..928ea76 100644 (file)
@@ -267,7 +267,7 @@ void MainWindow::updateData()
 
 void MainWindow::about()
 {
-    QMessageBox::about(this, aboutTitle, aboutStr );
+    QMessageBox::about(this, aboutTitle, aboutStr);
 }
 
 bool MainWindow::testDB(bool reset)
index 5a8db80..2d0a487 100644 (file)
@@ -50,28 +50,26 @@ void EFComboBox::updateDataModel(bool reset)
 
     Throws EmuFrontException
 */
-EmuFrontObject* EFComboBox::getSelected() const
+EmuFrontObject* EFComboBox::getSelected()
 {
     EmuFrontObject *efo = 0;
     int index = currentIndex();
-    qDebug() << "Selected index " << index << ".";
     if (index < 0)
         return 0;
     QSqlQueryModel *qmodel
         = dynamic_cast<QSqlQueryModel*>(model());
     if (!qmodel) {
-        qDebug() << "No data model available!";
-        return 0;
+        throw EmuFrontException(tr("No data model available!"));
     }
     QSqlRecord rec = qmodel->record(index);
     if (rec.isEmpty()) {
-        qDebug() << "No record available!";
-        return efo;
+        throw EmuFrontException(tr("No data available for selected item!"));
     }
-    qDebug() << "Fetching a data object with id "
-        << rec.value(dataModelIndex_id).toInt();
-    EmuFrontObject *o
-        = dbManager->getDataObject(rec.value(dataModelIndex_id).toInt()); /* Throws EmuFrontException */
+    int id = rec.value(dataModelIndex_id).toInt();
+    EmuFrontObject *o = dbManager->getDataObject(id); /* Throws EmuFrontException */
+    dbManager->resetModel();
+    setCurrentIndex(index);
+    if (!o) throw EmuFrontException(tr("Failed creating selected data object!"));
     return o;
 }
 
index d3c05a3..c35971e 100644 (file)
@@ -28,7 +28,7 @@ class EFComboBox : public QComboBox
 public:
     EFComboBox(DatabaseManager *dbMan, QWidget *parent = 0);
     ~EFComboBox();
-    EmuFrontObject* getSelected() const;
+    EmuFrontObject* getSelected();
     // This will replace DataObjectEditDialog::setSelected!
     void setSelected(const EmuFrontObject*);
     // reset sets the data model to orinal, non filtered setting