File indexing completed on 2024-05-05 04:40:50

0001 /*
0002     SPDX-FileCopyrightText: 2009 Aleix Pol <aleixpol@kde.org>
0003     SPDX-FileCopyrightText: 2010 Benjamin Port <port.benjamin@gmail.com>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 #ifndef QTHELPPLUGIN_H
0009 #define QTHELPPLUGIN_H
0010 
0011 #include <interfaces/iplugin.h>
0012 #include <interfaces/idocumentationproviderprovider.h>
0013 
0014 class QtHelpProvider;
0015 class QtHelpQtDoc;
0016 class QtHelpDocumentation;
0017 
0018 class QtHelpPlugin : public KDevelop::IPlugin, public KDevelop::IDocumentationProviderProvider
0019 {
0020     Q_OBJECT
0021     Q_INTERFACES( KDevelop::IDocumentationProviderProvider )
0022     public:
0023         QtHelpPlugin(QObject *parent, const QVariantList & args);
0024         ~QtHelpPlugin() override;
0025 
0026         static QtHelpPlugin *self() { return s_plugin; }
0027 
0028         QList<KDevelop::IDocumentationProvider*> providers() override;
0029         QList<QtHelpProvider*> qtHelpProviderLoaded();
0030         bool isQtHelpQtDocLoaded() const;
0031         bool isQtHelpAvailable() const;
0032 
0033         int configPages() const override;
0034         KDevelop::ConfigPage* configPage(int number, QWidget* parent) override;
0035 
0036     public Q_SLOTS:
0037         void readConfig();
0038     Q_SIGNALS:
0039         void changedProvidersList() override;
0040     private:
0041         void loadQtDocumentation(bool loadQtDoc);
0042         void searchHelpDirectory(QStringList& pathList, QStringList& nameList, QStringList& iconList, const QString& searchDir);
0043         void loadQtHelpProvider(const QStringList& pathList, const QStringList& nameList, const QStringList& iconList);
0044 
0045         static QtHelpPlugin *s_plugin;
0046         QList<QtHelpProvider*> m_qtHelpProviders;
0047         QtHelpQtDoc* m_qtDoc;
0048         bool m_loadSystemQtDoc;
0049 };
0050 
0051 #endif // QTHELPPLUGIN_H