Updated the git clone command.
[emufront] / src / models / emufrontquerymodel.h
index ca64d27..216615c 100644 (file)
 **
 ** You should have received a copy of the GNU General Public License
 ** along with EmuFront.  If not, see <http://www.gnu.org/licenses/>.
-*/#ifndef EMUFRONTQUERYMODEL_H
+*/
+
+#ifndef EMUFRONTQUERYMODEL_H
 #define EMUFRONTQUERYMODEL_H
 
 #include <QSqlQueryModel>
 
 class EmuFrontObject;
+class Platform;
+class MediaType;
 
 class EmuFrontQueryModel : public QSqlQueryModel
 {
     Q_OBJECT
+
 public:
     EmuFrontQueryModel(QObject *parent = 0);
-    EmuFrontObject* getObject(int id) const;
-
-signals:
-
-public slots:
+    EmuFrontObject* getDataObject(int id);
+    EmuFrontObject* getDataObject(const QModelIndex &index);
+    EmuFrontObject* getObject(int row);
+    static int getCurrentTimeStamp();
 
 protected:
     QString tableName;
     QList<int> editableColumns;
+    void filterDataObjects(QList<QString> filter);
+    QString constructWhereByFilters(QList<QString> filters);
+    EmuFrontObject* getDataObject(QString filter);
+    virtual void filterById(int id);
+    void clearFilters();
+    virtual EmuFrontObject* recordToDataObject(const QSqlRecord* ) = 0;
+    virtual QString constructFilterById(int id) const = 0;
+    virtual QString constructSelect(QString whereClause = "") const = 0;
+
+private:
+    EmuFrontObject* getFilteredDataObject();
 };
 
 #endif // EMUFRONTQUERYMODEL_H