1 /* 2 * SPDX-FileCopyrightText: 2012 Sebastian Gottfried <sebastiangottfried@web.de> 3 * 4 * SPDX-License-Identifier: GPL-2.0-or-later 5 */ 6 7 #ifndef RESOURCEDATAACCESS_H 8 #define RESOURCEDATAACCESS_H 9 10 #include <QObject> 11 12 class QXmlSchema; 13 class QDomDocument; 14 class QFile; 15 class DataIndex; 16 class KeyboardLayout; 17 class Course; 18 19 class ResourceDataAccess : public QObject 20 { 21 Q_OBJECT 22 public: 23 explicit ResourceDataAccess(QObject *parent = 0); 24 Q_INVOKABLE bool fillDataIndex(DataIndex* target); 25 Q_INVOKABLE bool loadKeyboardLayout(const QString& path, KeyboardLayout* target); 26 Q_INVOKABLE bool storeKeyboardLayout(const QString& path, KeyboardLayout* source); 27 Q_INVOKABLE bool loadCourse(const QString& path, Course* target); 28 Q_INVOKABLE bool storeCourse(const QString& path, Course* source); 29 30 private: 31 QXmlSchema loadXmlSchema(const QString& name); 32 QDomDocument getDomDocument(QFile& file, QXmlSchema& schema); 33 bool openResourceFile(const QString& relPath, QFile& file); 34 }; 35 36 #endif // RESOURCEDATAACCESS_H 37