#include "dbsetup.h"
#include "../dataobjects/executable.h"
+
DbExecutable::DbExecutable(QObject *parent)
: DbQueryModelManager(parent)
{
dbSetup = new DbSetup(this);
+ tableName = DbExecutable::DB_TABLE_EXECUTABLE;
}
+
+/* Throws EmuFrontException */
EmuFrontObject* DbExecutable::recordToDataObject(const QSqlRecord* rec)
{
Executable *ex = 0;
if (!rec) return ex;
int id = rec->value(Executable_Id).toInt();
int supid = rec->value(Executable_SetupId).toInt();
- EmuFrontObject *ob = dbSetup->getDataObject(supid);
+ EmuFrontObject *ob = dbSetup->getDataObject(supid); /* Throws EmuFrontException */
Setup *sup = dynamic_cast<Setup*>(ob);
qDebug() << "Setup id " << sup->getId() << ", platform " << sup->getPlatform()->getName();
QString name = rec->value(Executable_Name).toString();
QString DbExecutable::constructSelect(QString whereClause) const
{
- return QString("SELECT "
+ QString sql = QString("SELECT "
"executable.id AS ExecutableId, "
"executable.name AS ExecutableName, "
"executable.executable AS Executable, "
"INNER JOIN platform ON setup.platformid=platform.id "
"INNER JOIN mediatype ON setup.mediatypeid=mediatype.id "
"%1 "
- "ORDER BY executable.name ")
- .arg(whereClause);
+ "ORDER BY executable.name ").arg(whereClause);
+ qDebug() << sql;
+ return sql;
}
-bool DbExecutable::deleteDataObject(int id) const
+/*bool DbExecutable::deleteDataObject(int id) const
{
// TODO
return false;
-}
+}*/
QSqlQueryModel* DbExecutable::getData()
{
- QSqlQueryModel *model = new QSqlQueryModel;
+ QSqlQueryModel *model = new QSqlQueryModel(this);
QString select = constructSelect();
qDebug() << select;
model->setHeaderData(Executable_Id, Qt::Horizontal, tr("Id"));
// currently.
return QString("SELECT 0");
}
+
+void DbExecutable::filterByPlatformMediaType(int platformId, int mediaTypeId)
+{
+ QList<QString> filters;
+ filters.append(QString("setup.platformid=%1").arg(platformId));
+ filters.append(QString("setup.mediatypeid=%1").arg(mediaTypeId));
+ filterDataObjects(filters);
+}