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

0001 /*
0002     SPDX-FileCopyrightText: 2009 Aleix Pol <aleixpol@kde.org>
0003     SPDX-FileCopyrightText: 2009 David Nolden <david.nolden.kdevelop@art-master.de>
0004     SPDX-FileCopyrightText: 2010 Benjamin Port <port.benjamin@gmail.com>
0005 
0006     SPDX-License-Identifier: LGPL-2.0-or-later
0007 */
0008 
0009 #ifndef QTHELPPROVIDERABSTRACT_H
0010 #define QTHELPPROVIDERABSTRACT_H
0011 
0012 #include <interfaces/idocumentationprovider.h>
0013 #include <QObject>
0014 #include <QVariantList>
0015 #include <QHelpEngine>
0016 
0017 class HelpNetworkAccessManager;
0018 
0019 class QtHelpProviderAbstract : public QObject, public KDevelop::IDocumentationProvider
0020 {
0021     Q_OBJECT
0022     Q_INTERFACES( KDevelop::IDocumentationProvider )
0023 public:
0024     QtHelpProviderAbstract(QObject *parent, const QString &collectionFileName, const QVariantList & args);
0025     ~QtHelpProviderAbstract() override;
0026     KDevelop::IDocumentation::Ptr documentationForDeclaration (KDevelop::Declaration*) const override;
0027     KDevelop::IDocumentation::Ptr documentation(const QUrl& url) const override;
0028 
0029     KDevelop::IDocumentation::Ptr documentationForIndex(const QModelIndex& idx) const override;
0030     QAbstractItemModel* indexModel() const override;
0031 
0032     KDevelop::IDocumentation::Ptr homePage() const override;
0033 
0034     /// @return False in case we failed to load any documentation files, else true
0035     bool isValid() const;
0036 
0037     QHelpEngine* engine() { return &m_engine; }
0038 
0039     HelpNetworkAccessManager* networkAccess() const;
0040 public Q_SLOTS:
0041     void jumpedTo(const QUrl& newUrl);
0042 protected:
0043     QHelpEngine m_engine;
0044     HelpNetworkAccessManager* const m_nam;
0045 };
0046 
0047 #endif // QTHELPPROVIDERABSTRACT_H