From: Mikko Keinänen Date: Fri, 8 Oct 2010 21:42:45 +0000 (+0300) Subject: Fixed init error in Executable constructor and sql error in executable X-Git-Url: http://git.maemo.org/git/?p=emufront;a=commitdiff_plain;h=f769c9c51643d6aa447ef2d886857e963fddb90d Fixed init error in Executable constructor and sql error in executable update sql. --- diff --git a/src/dataobjects/executable.cpp b/src/dataobjects/executable.cpp index c16baef..3e65d0a 100644 --- a/src/dataobjects/executable.cpp +++ b/src/dataobjects/executable.cpp @@ -27,7 +27,7 @@ Executable::Executable(int id, QString name) {} Executable::Executable(int id, QString name, QString executable, - QString options, Setup*, int type) + QString options, Setup* setup, int type) : EmuFrontObject(id, name), executable(executable), options(options), setup(setup), type(type) {} diff --git a/src/db/dbexecutable.cpp b/src/db/dbexecutable.cpp index 0b44fb8..c7c0b2f 100644 --- a/src/db/dbexecutable.cpp +++ b/src/db/dbexecutable.cpp @@ -38,7 +38,9 @@ EmuFrontObject* DbExecutable::recordToDataObject(const QSqlRecord* rec) if (!rec) return ex; int id = rec->value(Executable_Id).toInt(); int supid = rec->value(Executable_SetupId).toInt(); - Setup *sup = dynamic_cast(dbSetup->getDataObject(supid)); + EmuFrontObject *ob = dbSetup->getDataObject(supid); + Setup *sup = dynamic_cast(ob); + qDebug() << "Setup id " << sup->getId() << ", platform " << sup->getPlatform()->getName(); QString name = rec->value(Executable_Name).toString(); QString exec = rec->value(Executable_Executable).toString(); QString opts = rec->value(Executable_Options).toString(); @@ -59,8 +61,8 @@ bool DbExecutable::updateDataObjectToModel(const EmuFrontObject* ob) "setupid=:setupid, " "type=:type " "WHERE id=:id"); - q.bindValue(":setupid", ex->getSetup() - ? QString(ex->getSetup()->getId()) : "NULL"); // TODO: null shouln't be allowed here + // TODO: null check + q.bindValue(":setupid", ex->getSetup()->getId()); q.bindValue(":name", ex->getName()); q.bindValue(":executable", ex->getExecutable()); q.bindValue(":options", ex->getOptions()); diff --git a/src/dialogs/executableeditdialog.cpp b/src/dialogs/executableeditdialog.cpp index de9bcf0..64049a9 100644 --- a/src/dialogs/executableeditdialog.cpp +++ b/src/dialogs/executableeditdialog.cpp @@ -121,6 +121,14 @@ void ExecutableEditDialog::setDataObject(EmuFrontObject *ob) if (!ob) return; efObject = ob; Executable *ex = dynamic_cast(ob); + if (!ex) { + qDebug("No executable"); + return; + } + if (!ex->getSetup()) { + qDebug() << "No setup"; + return; + } if (ex->getSetup() && ex->getSetup()->getId() >= 0) setSelectedSetup(ex->getSetup()); nameEdit->setText(ex->getName());