connect(editButton, SIGNAL(clicked()), this, SLOT(editButtonClicked()));
connect(addButton, SIGNAL(clicked()), this, SLOT(addButtonClicked()));
connect(deleteButton, SIGNAL(clicked()), this, SLOT(deleteButtonClicked()));
+}
+
+void DbObjectDialog::connectNameDialogSignals()
+{
connect(nameDialog, SIGNAL(dataObjectUpdated()), this, SLOT(updateData()));
connect(nameDialog, SIGNAL(updateRejected()), this, SLOT(updateReject()));
connect(nameDialog, SIGNAL(test()), this, SLOT(testSlot()));
+ connect(nameDialog, SIGNAL(dialogClosed()), this, SLOT(enableUi()));
}
void DbObjectDialog::testSlot()
errorMessage->showMessage(tr("Inserting data object %1 failed.").arg(ob->getName()));
}
+void DbObjectDialog::createEditDialog()
+{
+ initEditDialog();
+ // call this from implementing classes:
+ //connectNameDialogSignals();
+}
+
void DbObjectDialog::addObject()
{
setUIEnabled(false);
- if (!nameDialog) initEditDialog();
+ if (!nameDialog) {
+ createEditDialog();
+ }
deleteCurrentObject();
dbObject = createObject();
nameDialog->setDataObject(dbObject);
QModelIndex index = objectList->currentIndex();
if (!index.isValid())
return;
- if (!nameDialog) initEditDialog();
+ if (!nameDialog) {
+ createEditDialog();
+ }
deleteCurrentObject();
- dbObject = dbManager->getDataObjectFromModel(&index);
+ try {
+ dbObject = dbManager->getDataObjectFromModel(&index); // throws EmuFrontException
+ } catch (EmuFrontException &e) {
+ errorMessage->showMessage(e.what());
+ return;
+ }
activateNameDialog();
nameDialog->setDataObject(dbObject);
}
if (!index.isValid()) return false;
try
{
- EmuFrontObject *ob = dbManager->getDataObjectFromModel(&index);
+ EmuFrontObject *ob = dbManager->getDataObjectFromModel(&index); // throws EmuFrontException
qDebug() << "Trying to delete " << ob->getName();
{
if (!dbManager) return;
dbManager->resetModel();
+ objectList->resizeColumnsToContents();
}
void DbObjectDialog::addButtonClicked()
return;
}
+void DbObjectDialog::enableUi()
+{
+ setUIEnabled(true);
+}
+
void DbObjectDialog::setButtonsEnabled(bool enabled)
{
addButton->setEnabled(enabled);
void DbObjectDialog::updateData()
{
- qDebug() << "DbObjectDialog::updateData()";
// update data model
if (!dbObject) return;
-
// if data object id > -1 we are updating the data otherwise we are inserting new data
if (dbObject->getId() > -1) updateDb(dbObject);
else insertDb(dbObject);
foreach(int c, hiddenColumns)
objectList->hideColumn(c);
}
+
+/* Enables UI. Deletes nameDialog object and current data object */
+void DbObjectDialog::closeEvent(QCloseEvent *ev)
+{
+ qDebug() << "DbObjectDialog closing!";
+ setUIEnabled(true);
+ cleanUp();
+}