File indexing completed on 2024-05-05 04:39:25
0001 /* 0002 SPDX-FileCopyrightText: 2009 Aleix Pol <aleixpol@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "cmakenavigationwidget.h" 0008 #include <language/duchain/navigation/abstractnavigationcontext.h> 0009 #include <language/duchain/navigation/abstractdeclarationnavigationcontext.h> 0010 #include <interfaces/idocumentation.h> 0011 0012 using namespace KDevelop; 0013 0014 class CMakeNavigationContext: public AbstractNavigationContext 0015 { 0016 Q_OBJECT 0017 public: 0018 CMakeNavigationContext(const TopDUContextPointer& top, const QString& name, const QString& html) 0019 : AbstractNavigationContext(top, nullptr), mName(name), mDescription(html) {} 0020 QString name() const override { return mName; } 0021 QString html(bool shorten = false) override 0022 { 0023 Q_UNUSED(shorten); 0024 return mDescription; 0025 } 0026 0027 private: 0028 QString mName; 0029 QString mDescription; 0030 0031 }; 0032 0033 class CMakeDeclarationNavigationContext: public AbstractDeclarationNavigationContext 0034 { 0035 Q_OBJECT 0036 public: 0037 CMakeDeclarationNavigationContext(const DeclarationPointer& decl, const TopDUContextPointer& top) 0038 : AbstractDeclarationNavigationContext(decl, top) {} 0039 }; 0040 0041 CMakeNavigationWidget::CMakeNavigationWidget(const TopDUContextPointer& top, const IDocumentation::Ptr& doc) 0042 { 0043 setContext(NavigationContextPointer(new CMakeNavigationContext(top, doc->name(), doc->description()))); 0044 } 0045 0046 CMakeNavigationWidget::CMakeNavigationWidget(const KDevelop::DUChainPointer< KDevelop::TopDUContext >& top, KDevelop::Declaration* decl) 0047 { 0048 setContext(NavigationContextPointer(new CMakeDeclarationNavigationContext(DeclarationPointer(decl), top))); 0049 } 0050 0051 #include "cmakenavigationwidget.moc" 0052 #include "moc_cmakenavigationwidget.cpp"