diff options
author | Eike Ziller <eike.ziller@qt.io> | 2018-08-31 16:00:32 +0200 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2018-09-04 11:21:18 +0000 |
commit | 2c17fbe8dd9fdc619efdeceeddf68ad68f6dfcc1 (patch) | |
tree | 36439c95706d27a6c5f4ff9212bda25fe2125651 /src/plugins/coreplugin/helpmanager.h | |
parent | 25400751a4b4cd03758862b8365f57e8afed7985 (diff) | |
download | qt-creator-2c17fbe8dd9fdc619efdeceeddf68ad68f6dfcc1.tar.gz |
Make Core independent from QtHelp
We don't want various plugins to depend on the Help plugin,
but we also do not want Core to depend on QtHelp.
For example when turning the Help plugin off, documentation should
actually no longer be registered through QtHelp. So we need
parts of the interface in Core, which must then be delegated
to the actual implementation in Help.
As positive side-effects the interface in Core will be slimmer,
and the code in the Help plugin can later be simplified, too,
because then we don't have the "Core" and the "Gui" help engines
separated in different plugins anymore, which should remove the
need for some setup indirections.
Task-number: QTCREATORBUG-20381
Change-Id: I634c5811c45d6a3dfd6ddc682cae270e38384cbf
Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/plugins/coreplugin/helpmanager.h')
-rw-r--r-- | src/plugins/coreplugin/helpmanager.h | 89 |
1 files changed, 24 insertions, 65 deletions
diff --git a/src/plugins/coreplugin/helpmanager.h b/src/plugins/coreplugin/helpmanager.h index f3e2db5ea3..60bb412752 100644 --- a/src/plugins/coreplugin/helpmanager.h +++ b/src/plugins/coreplugin/helpmanager.h @@ -28,85 +28,44 @@ #include "core_global.h" #include <QObject> -#include <QStringList> -#include <QVariant> #include <QMap> -#include <QHash> -#include <QFutureInterface> -QT_FORWARD_DECLARE_CLASS(QUrl) +QT_BEGIN_NAMESPACE +class QStringList; +class QUrl; +QT_END_NAMESPACE namespace Core { -struct HelpManagerPrivate; -namespace Internal { -class CorePlugin; -class MainWindow; -} +namespace HelpManager { -class CORE_EXPORT HelpManager : public QObject +class CORE_EXPORT Signals : public QObject { Q_OBJECT public: - enum HelpViewerLocation { - SideBySideIfPossible = 0, - SideBySideAlways = 1, - HelpModeAlways = 2, - ExternalHelpAlways = 3 - }; - - using Filters = QHash<QString, QStringList>; - - static HelpManager *instance(); - static QString collectionFilePath(); - - static void registerDocumentation(const QStringList &fileNames); - static void unregisterDocumentation(const QStringList &nameSpaces); - - static void registerUserDocumentation(const QStringList &filePaths); - static QSet<QString> userDocumentationPaths(); - - static QUrl findFile(const QUrl &url); - static QByteArray fileData(const QUrl &url); - - - static QMap<QString, QUrl> linksForKeyword(const QString &key); - static QMap<QString, QUrl> linksForIdentifier(const QString &id); - static QStringList registeredNamespaces(); - static QString namespaceFromFile(const QString &file); - static QString fileFromNamespace(const QString &nameSpace); - static void setCustomValue(const QString &key, const QVariant &value); - static QVariant customValue(const QString &key, const QVariant &value = QVariant()); - static Filters filters(); - static Filters fixedFilters(); - static Filters userDefinedFilters(); - static void removeUserDefinedFilter(const QString &filter); - static void addUserDefinedFilter(const QString &filter, const QStringList &attr); - - static void aboutToShutdown(); - -public slots: - static void handleHelpRequest(const QUrl &url, - Core::HelpManager::HelpViewerLocation location = HelpModeAlways); - static void handleHelpRequest(const QString &url, - Core::HelpManager::HelpViewerLocation location = HelpModeAlways); + static Signals *instance(); signals: void setupFinished(); void documentationChanged(); - void collectionFileChanged(); - void helpRequested(const QUrl &url, Core::HelpManager::HelpViewerLocation location); - -private: - explicit HelpManager(QObject *parent = nullptr); - ~HelpManager() override; +}; - static void setupHelpManager(); - static void registerDocumentationNow(QFutureInterface<bool> &futureInterface, - const QStringList &fileNames); - friend class Core::Internal::CorePlugin; // setupHelpManager - friend class Core::Internal::MainWindow; // constructor/destructor +enum HelpViewerLocation { + SideBySideIfPossible = 0, + SideBySideAlways = 1, + HelpModeAlways = 2, + ExternalHelpAlways = 3 }; -} // Core +CORE_EXPORT void registerDocumentation(const QStringList &fileNames); +CORE_EXPORT void unregisterDocumentation(const QStringList &nameSpaces); + +CORE_EXPORT QMap<QString, QUrl> linksForIdentifier(const QString &id); +CORE_EXPORT QByteArray fileData(const QUrl &url); + +CORE_EXPORT void handleHelpRequest(const QUrl &url, HelpViewerLocation location = HelpModeAlways); +CORE_EXPORT void handleHelpRequest(const QString &url, HelpViewerLocation location = HelpModeAlways); + +} // HelpManager +} // Core |