1 /* ============================================================ 2 * QuiteRSS is a open-source cross-platform RSS/Atom news feeds reader 3 * Copyright (C) 2011-2020 QuiteRSS Team <quiterssteam@gmail.com> 4 * 5 * This program is free software: you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation, either version 3 of the License, or 8 * (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with this program. If not, see <https://www.gnu.org/licenses/>. 17 * ============================================================ */ 18 #ifndef DATABASE_H 19 #define DATABASE_H 20 21 #include <QtCore> 22 #include <QtSql> 23 24 class Database : public QObject 25 { 26 Q_OBJECT 27 public: 28 static int version(); 29 static void initialization(); 30 static QSqlDatabase connection(const QString &connectionName = QString()); 31 static void sqliteDBMemFile(QSqlDatabase &db, bool save = true); 32 static void setVacuum(); 33 34 private: 35 static void setPragma(QSqlDatabase &db); 36 static void createTables(QSqlDatabase &db); 37 static void prepareDatabase(); 38 static void createLabels(QSqlDatabase &db); 39 static void addColumnsToFeedsTables(QSqlDatabase &db); 40 tablesList()41 static QStringList tablesList() { 42 QStringList tables; 43 tables << "feeds" << "news" << "feeds_ex" 44 << "news_ex" << "filters" << "filterConditions" 45 << "filterActions" << "filters_ex" << "labels" 46 << "passwords" << "info"; 47 return tables; 48 } 49 50 }; 51 52 #endif // DATABASE_H 53