3 ** Copyright 2010 Mikko Keinänen
5 ** This file is part of EmuFront.
8 ** EmuFront is free software: you can redistribute it and/or modify
9 ** it under the terms of the GNU General Public License version 2 as published by
10 ** the Free Software Foundation and appearing in the file gpl.txt included in the
11 ** packaging of this file.
13 ** EmuFront is distributed in the hope that it will be useful,
14 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
15 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 ** GNU General Public License for more details.
18 ** You should have received a copy of the GNU General Public License
19 ** along with EmuFront. If not, see <http://www.gnu.org/licenses/>.
20 */#ifndef EMUFRONTQUERYMODEL_H
21 #define EMUFRONTQUERYMODEL_H
23 #include <QSqlQueryModel>
29 class EmuFrontQueryModel : public QSqlQueryModel
34 EmuFrontQueryModel(QObject *parent = 0);
35 EmuFrontObject* getDataObject(int id);
36 EmuFrontObject* getDataObject(const QModelIndex &index);
37 EmuFrontObject* getObject(int row) const;
38 static int getCurrentTimeStamp();
42 QList<int> editableColumns;
43 void filterDataObjects(QList<QString> filter);
44 QString constructWhereByFilters(QList<QString> filters);
45 EmuFrontObject* getDataObject(QString filter);
46 virtual void filterById(int id);
48 virtual EmuFrontObject* recordToDataObject(const QSqlRecord* ) = 0;
49 virtual QString constructFilterById(int id) const = 0;
50 virtual QString constructSelect(QString whereClause = "") const = 0;
53 EmuFrontObject* getFilteredDataObject();
56 #endif // EMUFRONTQUERYMODEL_H