1 /**************************************************************************** 2 ** 3 ** Copyright (C) 2016 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:GPL-EXCEPT$ 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 General Public License Usage 18 ** Alternatively, this file may be used under the terms of the GNU 19 ** General Public License version 3 as published by the Free Software 20 ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT 21 ** included in the packaging of this file. Please review the following 22 ** information to ensure the GNU General Public License requirements will 23 ** be met: https://www.gnu.org/licenses/gpl-3.0.html. 24 ** 25 ** $QT_END_LICENSE$ 26 ** 27 ****************************************************************************/ 28 29 #ifndef HELPENGINEWRAPPER_H 30 #define HELPENGINEWRAPPER_H 31 32 #include <QtCore/QMap> 33 #include <QtCore/QObject> 34 #include <QtCore/QString> 35 #include <QtCore/QStringList> 36 #include <QtCore/QUrl> 37 #include <QtGui/QFont> 38 #include <QtGui/QFontDatabase> 39 40 QT_BEGIN_NAMESPACE 41 42 class QFileSystemWatcher; 43 class QHelpContentModel; 44 class QHelpContentWidget; 45 class QHelpIndexModel; 46 class QHelpIndexWidget; 47 class QHelpSearchEngine; 48 class QHelpFilterEngine; 49 class QHelpEngineCore; 50 struct QHelpLink; 51 52 enum { 53 ShowHomePage = 0, 54 ShowBlankPage = 1, 55 ShowLastPages = 2 56 }; 57 58 class HelpEngineWrapperPrivate; 59 class TimeoutForwarder; 60 61 class HelpEngineWrapper : public QObject 62 { 63 Q_OBJECT 64 Q_DISABLE_COPY(HelpEngineWrapper) 65 friend class TimeoutForwarder; 66 public: 67 static HelpEngineWrapper &instance(const QString &collectionFile = QString()); 68 static void removeInstance(); 69 70 // Forwarded help engine member functions, possibly enriched. 71 QHelpSearchEngine *searchEngine() const; 72 QHelpContentModel *contentModel() const; 73 QHelpIndexModel *indexModel() const; 74 QHelpContentWidget *contentWidget(); 75 QHelpIndexWidget *indexWidget(); 76 bool setupData(); 77 const QStringList registeredDocumentations() const; 78 QString documentationFileName(const QString &namespaceName) const; 79 const QString collectionFile() const; 80 bool registerDocumentation(const QString &docFile); 81 bool unregisterDocumentation(const QString &namespaceName); 82 QUrl findFile(const QUrl &url) const; 83 QByteArray fileData(const QUrl &url) const; 84 QList<QHelpLink> documentsForIdentifier(const QString &id) const; 85 QString error() const; 86 87 QHelpFilterEngine *filterEngine() const; 88 89 /* 90 * To be called after assistant has finished looking for new documentation. 91 * This will mainly cause the search index to be updated, if necessary. 92 */ 93 void initialDocSetupDone(); 94 95 const QStringList qtDocInfo(const QString &component) const; 96 void setQtDocInfo(const QString &component, const QStringList &doc); 97 98 const QString homePage() const; 99 void setHomePage(const QString &page); 100 const QString defaultHomePage() const; 101 void setDefaultHomePage(const QString &page); 102 103 int lastTabPage() const; 104 void setLastTabPage(int lastPage); 105 106 // TODO: Don't allow last pages and zoom factors to be set in isolation 107 // Perhaps also fill up missing elements automatically or assert. 108 const QStringList lastShownPages() const; 109 void setLastShownPages(const QStringList &lastShownPages); 110 const QStringList lastZoomFactors() const; 111 void setLastZoomFactors(const QStringList &lastZoomFactors); 112 113 const QString cacheDir() const; 114 bool cacheDirIsRelativeToCollection() const; 115 void setCacheDir(const QString &cacheDir, bool relativeToCollection); 116 117 bool filterFunctionalityEnabled() const; 118 void setFilterFunctionalityEnabled(bool enabled); 119 120 bool filterToolbarVisible() const; 121 void setFilterToolbarVisible(bool visible); 122 123 bool addressBarEnabled() const; 124 void setAddressBarEnabled(bool enabled); 125 126 bool addressBarVisible() const; 127 void setAddressBarVisible(bool visible); 128 129 bool documentationManagerEnabled() const; 130 void setDocumentationManagerEnabled(bool enabled); 131 132 const QByteArray aboutMenuTexts() const; 133 void setAboutMenuTexts(const QByteArray &texts); 134 const QByteArray aboutTexts() const; 135 void setAboutTexts(const QByteArray &texts); 136 const QByteArray aboutIcon() const; 137 void setAboutIcon(const QByteArray &icon); 138 const QByteArray aboutImages() const; 139 void setAboutImages(const QByteArray &images); 140 141 const QString windowTitle() const; 142 void setWindowTitle(const QString &windowTitle); 143 144 const QByteArray applicationIcon() const; 145 void setApplicationIcon(const QByteArray &icon); 146 147 const QByteArray mainWindow() const; 148 void setMainWindow(const QByteArray &mainWindow); 149 const QByteArray mainWindowGeometry() const; 150 void setMainWindowGeometry(const QByteArray &geometry); 151 152 const QByteArray bookmarks() const; 153 void setBookmarks(const QByteArray &bookmarks); 154 155 int startOption() const; 156 void setStartOption(int option); 157 158 bool hasFontSettings() const; 159 bool usesAppFont() const; 160 void setUseAppFont(bool useAppFont); 161 bool usesBrowserFont() const; 162 void setUseBrowserFont(bool useBrowserFont); 163 const QFont appFont() const; 164 void setAppFont(const QFont &font); 165 QFontDatabase::WritingSystem appWritingSystem() const; 166 void setAppWritingSystem(QFontDatabase::WritingSystem system); 167 const QFont browserFont() const; 168 void setBrowserFont(const QFont &font); 169 QFontDatabase::WritingSystem browserWritingSystem() const; 170 void setBrowserWritingSystem(QFontDatabase::WritingSystem system); 171 172 bool showTabs() const; 173 void setShowTabs(bool show); 174 175 bool fullTextSearchFallbackEnabled() const; 176 177 const QByteArray topicChooserGeometry() const; 178 void setTopicChooserGeometry(const QByteArray &geometry); 179 180 QHelpEngineCore *helpEngine() const; 181 182 signals: 183 184 // For asynchronous doc updates triggered by external actions. 185 void documentationRemoved(const QString &namespaceName); 186 void documentationUpdated(const QString &namespaceName); 187 188 // Forwarded from QHelpEngineCore. 189 void setupFinished(); 190 191 private: 192 HelpEngineWrapper(const QString &collectionFile); 193 ~HelpEngineWrapper(); 194 195 static HelpEngineWrapper *helpEngineWrapper; 196 197 HelpEngineWrapperPrivate *d; 198 }; 199 200 QT_END_NAMESPACE 201 202 #endif // HELPENGINEWRAPPER_H 203