File indexing completed on 2024-04-14 14:47:36

0001 /*
0002     SPDX-FileCopyrightText: 2012 Milian Wolff <mail@milianw.de>
0003 
0004     SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0005 */
0006 
0007 #ifndef PHPDOCSPLUGIN_H
0008 #define PHPDOCSPLUGIN_H
0009 
0010 #include <interfaces/iplugin.h>
0011 #include <interfaces/idocumentationprovider.h>
0012 #include <QAbstractListModel>
0013 #include <QVariantList>
0014 
0015 class PhpDocsModel;
0016 
0017 class PhpDocsPlugin : public KDevelop::IPlugin, public KDevelop::IDocumentationProvider
0018 {
0019   Q_OBJECT
0020 
0021   Q_INTERFACES( KDevelop::IDocumentationProvider )
0022 
0023   public:
0024     explicit PhpDocsPlugin(QObject *parent, const QVariantList & args= QVariantList());
0025     ~PhpDocsPlugin() override;
0026 
0027     KDevelop::IDocumentation::Ptr documentationForDeclaration (KDevelop::Declaration* dec) const override;
0028     QAbstractListModel* indexModel() const override;
0029     KDevelop::IDocumentation::Ptr documentationForIndex(const QModelIndex& index) const override;
0030     KDevelop::IDocumentation::Ptr documentation(const QUrl& url) const override;
0031     QIcon icon() const override;
0032     QString name() const override;
0033     KDevelop::IDocumentation::Ptr homePage() const override;
0034 
0035     void showDocumentation(const QUrl& url);
0036 
0037   public slots:
0038     void loadUrl(const QUrl &url) const;
0039 
0040   private:
0041     KDevelop::IDocumentation::Ptr documentationForUrl( const QUrl& url, const QString& name, const QByteArray& description = QByteArray() ) const;
0042 
0043     QString getDocumentationFilename(KDevelop::Declaration* dec, const bool& isLocal) const;
0044     PhpDocsModel* m_model;
0045 
0046   private slots:
0047     void readConfig();
0048 };
0049 
0050 #endif // PHPDOCSPLUGIN_H