1 /****************************************************************************
2 **
3 ** Copyright (C) 2018 The Qt Company Ltd.
4 ** Contact: https://www.qt.io/licensing/
5 **
6 ** This file is part of the Qt Assistant of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:LGPL$
9 ** Commercial License Usage
10 ** Licensees holding valid commercial Qt licenses may use this file in
11 ** accordance with the commercial license agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and The Qt Company. For licensing terms
14 ** and conditions see https://www.qt.io/terms-conditions. For further
15 ** information use the contact form at https://www.qt.io/contact-us.
16 **
17 ** GNU Lesser General Public License Usage
18 ** Alternatively, this file may be used under the terms of the GNU Lesser
19 ** General Public License version 3 as published by the Free Software
20 ** Foundation and appearing in the file LICENSE.LGPL3 included in the
21 ** packaging of this file. Please review the following information to
22 ** ensure the GNU Lesser General Public License version 3 requirements
23 ** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
24 **
25 ** GNU General Public License Usage
26 ** Alternatively, this file may be used under the terms of the GNU
27 ** General Public License version 2.0 or (at your option) the GNU General
28 ** Public license version 3 or any later version approved by the KDE Free
29 ** Qt Foundation. The licenses are as published by the Free Software
30 ** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
31 ** included in the packaging of this file. Please review the following
32 ** information to ensure the GNU General Public License requirements will
33 ** be met: https://www.gnu.org/licenses/gpl-2.0.html and
34 ** https://www.gnu.org/licenses/gpl-3.0.html.
35 **
36 ** $QT_END_LICENSE$
37 **
38 ****************************************************************************/
39 
40 #ifndef COLLECTIONCONFIGREADER_H
41 #define COLLECTIONCONFIGREADER_H
42 
43 #include <QtCore/QMap>
44 #include <QtCore/QObject>
45 #include <QtCore/QXmlStreamReader>
46 
47 QT_USE_NAMESPACE
48 
49 class CollectionConfigReader : public QXmlStreamReader
50 {
51 public:
52     void readData(const QByteArray &contents);
53 
title()54     QString title() const { return m_title; }
homePage()55     QString homePage() const { return m_homePage; }
startPage()56     QString startPage() const { return m_startPage; }
applicationIcon()57     QString applicationIcon() const { return m_applicationIcon; }
currentFilter()58     QString currentFilter() const { return m_currentFilter; }
enableFilterFunctionality()59     bool enableFilterFunctionality() const
60         { return m_enableFilterFunctionality; }
hideFilterFunctionality()61     bool hideFilterFunctionality() const
62         { return m_hideFilterFunctionality; }
enableAddressBar()63     bool enableAddressBar() const { return m_enableAddressBar; }
hideAddressBar()64     bool hideAddressBar() const { return m_hideAddressBar; }
enableDocumentationManager()65     bool enableDocumentationManager() const
66         { return m_enableDocumentationManager; }
67 
aboutMenuTexts()68     QMap<QString, QString> aboutMenuTexts() const
69         { return m_aboutMenuTexts; }
aboutIcon()70     QString aboutIcon() const { return m_aboutIcon; }
aboutTextFiles()71     QMap<QString, QString> aboutTextFiles() const
72         { return m_aboutTextFiles; }
73 
filesToGenerate()74     QMap<QString, QString> filesToGenerate() const
75         { return m_filesToGenerate; }
76 
filesToRegister()77     QStringList filesToRegister() const { return m_filesToRegister; }
78 
cacheDirectory()79     QString cacheDirectory() const { return m_cacheDirectory; }
cacheDirRelativeToCollection()80     bool cacheDirRelativeToCollection() const { return m_cacheDirRelativeToCollection; }
81 
fullTextSearchFallbackEnabled()82     bool fullTextSearchFallbackEnabled() const {
83         return m_enableFullTextSearchFallback;
84     }
85 
86 private:
87     void raiseErrorWithLine();
88     void readConfig();
89     void readAssistantSettings();
90     void readMenuTexts();
91     void readAboutDialog();
92     void readDocFiles();
93     void readGenerate();
94     void readFiles();
95     void readRegister();
96 
97     QMap<QString, QString> m_aboutMenuTexts;
98     QMap<QString, QString> m_aboutTextFiles;
99     QMap<QString, QString> m_filesToGenerate;
100     QStringList m_filesToRegister;
101     QString m_title;
102     QString m_homePage;
103     QString m_startPage;
104     QString m_applicationIcon;
105     QString m_currentFilter;
106     QString m_aboutIcon;
107     QString m_cacheDirectory;
108     bool m_enableFilterFunctionality;
109     bool m_hideFilterFunctionality;
110     bool m_enableAddressBar;
111     bool m_hideAddressBar;
112     bool m_enableDocumentationManager;
113     bool m_cacheDirRelativeToCollection;
114     bool m_enableFullTextSearchFallback;
115 };
116 
117 #endif
118