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