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