File indexing completed on 2024-05-05 04:39:24
0001 /* 0002 SPDX-FileCopyrightText: 2009 Aleix Pol <aleixpol@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef CMAKEDOCUMENTATION_H 0008 #define CMAKEDOCUMENTATION_H 0009 0010 #include <QString> 0011 #include <QMap> 0012 #include <QVariantList> 0013 #include <interfaces/iplugin.h> 0014 #include "icmakedocumentation.h" 0015 0016 namespace KDevelop { class Declaration; } 0017 class CMakeManager; 0018 class QUrl; 0019 class CMakeCommandsContents; 0020 class KDescendantsProxyModel; 0021 0022 class CMakeDocumentation : public KDevelop::IPlugin, public ICMakeDocumentation 0023 { 0024 Q_OBJECT 0025 Q_INTERFACES( ICMakeDocumentation ) 0026 Q_INTERFACES( KDevelop::IDocumentationProvider ) 0027 public: 0028 explicit CMakeDocumentation( QObject* parent = nullptr, const QVariantList& args = QVariantList() ); 0029 0030 KDevelop::IDocumentation::Ptr description(const QString& identifier, const QUrl &file) const override; 0031 KDevelop::IDocumentation::Ptr documentationForDeclaration(KDevelop::Declaration* declaration) const override; 0032 KDevelop::IDocumentation::Ptr documentation(const QUrl& url) const override; 0033 0034 QVector<QString> names(Type t) const override; 0035 0036 CMakeCommandsContents* model() const { return m_index; } 0037 QAbstractItemModel* indexModel() const override; 0038 KDevelop::IDocumentation::Ptr documentationForIndex(const QModelIndex& idx) const override; 0039 0040 QIcon icon() const override; 0041 QString name() const override; 0042 KDevelop::IDocumentation::Ptr homePage() const override; 0043 0044 QString descriptionForIdentifier(const QString& identifier, Type t) const; 0045 0046 private: 0047 CMakeCommandsContents* m_index; 0048 KDescendantsProxyModel* m_flatIndex; 0049 }; 0050 0051 #endif // CMAKEDOCUMENTATION_H