//
//
// EmuFront is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
+// it under the terms of the GNU General Public License version 2 as published by
+// the Free Software Foundation and appearing in the file gpl.txt included in the
+// packaging of this file.
//
// EmuFront is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
#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);
}
int DatabaseManager::getCurrentTimeStamp() {
return QDateTime::currentDateTime().toTime_t();
}
+
+int DatabaseManager::countDataObjectRefs(int id) const
+{
+ int ret = 0;
+ QSqlQuery q;
+ q.prepare(getCountRefsSelect(id));
+ q.exec();
+ QSqlRecord rec;
+ if (q.next()) {
+ rec = q.record();
+ ret = rec.value(0).toInt();
+ }
+ qDebug() << "Found " << ret << " references.";
+ return ret;
+}