#include <QDebug>
#include <QDateTime>
-const QString DatabaseManager::DB_FILENAME = QString("my.db.sqlite");
+const QString DatabaseManager::DB_FILENAME = QString("emufront.db.sqlite");
const QString DatabaseManager::DATABASE = QString("QSQLITE");
const QString DatabaseManager::DB_TABLE_NAME_MEDIATYPE = QString("mediatype");
const QString DatabaseManager::DB_TABLE_NAME_PLATFORM = QString("platform");
// be destroyed when parent is destroyed
}
+/*
+ You may wanna set the possible filters (filterDataObjects) before calling getDataModel.
+ After filtering do not set update to true. Data model is already updated.
+*/
QSqlQueryModel* DatabaseManager::getDataModel(bool update)
{
- if (!sqlTableModel || (sqlTableModel && !update)) sqlTableModel = getData();
+ if (!sqlTableModel) {
+ sqlTableModel = getData();
+ }
+ else if (update)
+ clearFilters();
return sqlTableModel;
}
return numEntries;
}
+
+/* Throws EmuFrontException if filtered data was not found. */
EmuFrontObject* DatabaseManager::getDataObject(int id)
{
filterById(id);
return getFilteredDataObject();
- /*EmuFrontObject *plf = 0;
- if (sqlTableModel->rowCount() == 1)
- {
- QSqlRecord record = sqlTableModel->record(0);
- if (record.isEmpty())
- {
- throw new EmuFrontException(tr("No data available for id %1").arg(id));
- }
- else plf = recordToDataObject(&record);
- }
- return plf;*/
}
+/* Throws EmuFrontException if filtered data was not found. */
EmuFrontObject* DatabaseManager::getDataObject(QString filter)
{
- qDebug() << "Filtering data object" << filter;
QList<QString> filters;
filters.append(filter);
filterDataObjects(filters);
- qDebug() << "...done filtering.";
return getFilteredDataObject();
}
+/* Throws EmuFrontException if filtered data was not found. */
EmuFrontObject* DatabaseManager::getFilteredDataObject()
{
EmuFrontObject *plf = 0;
if (sqlTableModel->rowCount() >= 1)
{
QSqlRecord record = sqlTableModel->record(0);
- if (record.isEmpty())
- {
- throw new EmuFrontException(tr("No filtered data available"));
+ if (record.isEmpty()) {
+ throw EmuFrontException(tr("No filtered data available"));
}
else plf = recordToDataObject(&record);
}
return plf;
}
-
+/* Throws EmuFrontException */
EmuFrontObject* DatabaseManager::getDataObjectFromModel(QModelIndex *index)
{
if (!sqlTableModel) sqlTableModel = getDataModel();