UI tune: use buttonBox instead of single buttons to comply with platform conventions
[toast/confclerk.git] / src / sql / sqlengine.h
1 /*
2  * Copyright (C) 2010 Ixonos Plc.
3  *
4  * This file is part of fosdem-schedule.
5  *
6  * fosdem-schedule is free software: you can redistribute it and/or modify it
7  * under the terms of the GNU General Public License as published by the Free
8  * Software Foundation, either version 2 of the License, or (at your option)
9  * any later version.
10  *
11  * fosdem-schedule is distributed in the hope that it will be useful, but
12  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
14  * more details.
15  *
16  * You should have received a copy of the GNU General Public License along with
17  * fosdem-schedule.  If not, see <http://www.gnu.org/licenses/>.
18  */
19 #ifndef SQLENGINE_H
20 #define SQLENGINE_H
21
22 #include <QObject>
23 #include <QHash>
24
25 class QSqlDatabase;
26
27 class SqlEngine : public QObject
28 {
29     Q_OBJECT
30     public:
31         SqlEngine(QObject *aParent = NULL);
32         ~SqlEngine();
33         static void initialize();
34         static void addConferenceToDB(QHash<QString,QString> &aConference);
35         static void addEventToDB(QHash<QString,QString> &aEvent);
36         static void addPersonToDB(QHash<QString,QString> &aPerson);
37         static void addLinkToDB(QHash<QString,QString> &aLink);
38         static void addRoomToDB(QHash<QString,QString> &aRoom);
39         static void deleteConference(int id);
40
41         static bool beginTransaction();
42         static bool commitTransaction();
43
44         // search Events for ....
45         static int searchEvent(int conferenceId, const QHash<QString,QString> &columns, const QString &keyword);
46     private:
47         static QString login(const QString &aDatabaseType, const QString &aDatabaseName);
48         static bool execQuery(QSqlDatabase &aDatabase, const QString &aQuery);
49         static bool execQueryWithParameter(QSqlDatabase &aDatabase, const QString &aQuery, const QHash<QString, QVariant>& params);
50 };
51
52 #endif /* SQLENGINE_H */
53