File indexing completed on 2024-04-28 15:52:42

0001 /*
0002     SPDX-FileCopyrightText: 2007 David Nolden <david.nolden.kdevelop@art-master.de>
0003     SPDX-FileCopyrightText: 2008 Niko Sams <niko.sams@gmail.com>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-only
0006 */
0007 
0008 #include "navigationwidget.h"
0009 #include "declarationnavigationcontext.h"
0010 #include "includenavigationcontext.h"
0011 #include "magicconstantnavigationcontext.h"
0012 
0013 namespace Php
0014 {
0015 using namespace KDevelop;
0016 
0017 NavigationWidget::NavigationWidget(KDevelop::DeclarationPointer declaration, KDevelop::TopDUContextPointer topContext,
0018                                    KDevelop::AbstractNavigationWidget::DisplayHints hints)
0019     : AbstractNavigationWidget()
0020 {
0021     setDisplayHints(hints);
0022 
0023     initBrowser(400);
0024 
0025     //The first context is registered so it is kept alive by the shared-pointer mechanism
0026     auto context = NavigationContextPointer(new DeclarationNavigationContext(declaration, topContext));
0027     setContext(context);
0028 }
0029 
0030 NavigationWidget::NavigationWidget(const IncludeItem& includeItem, KDevelop::TopDUContextPointer topContext,
0031                                    KDevelop::AbstractNavigationWidget::DisplayHints hints)
0032     : AbstractNavigationWidget()
0033 {
0034   setDisplayHints(hints);
0035 
0036   initBrowser(200);
0037 
0038   //The first context is registered so it is kept alive by the shared-pointer mechanism
0039   auto context = NavigationContextPointer(new IncludeNavigationContext(includeItem, topContext));
0040   setContext(context);
0041 }
0042 
0043 NavigationWidget::NavigationWidget(TopDUContextPointer topContext, KTextEditor::Cursor position, const QString& constant,
0044                                    KDevelop::AbstractNavigationWidget::DisplayHints hints)
0045     : AbstractNavigationWidget()
0046 {
0047   setDisplayHints(hints);
0048 
0049   initBrowser(200);
0050 
0051   //The first context is registered so it is kept alive by the shared-pointer mechanism
0052   auto context = NavigationContextPointer(new MagicConstantNavigationContext(topContext, position, constant));
0053   setContext(context);
0054 }
0055 
0056 QString NavigationWidget::shortDescription(KDevelop::Declaration* declaration)
0057 {
0058     NavigationContextPointer ctx(new DeclarationNavigationContext(DeclarationPointer(declaration), TopDUContextPointer())); ///@todo give correct top-context
0059     return ctx->html(true);
0060 }
0061 
0062 QString NavigationWidget::shortDescription(const IncludeItem& includeItem) {
0063   NavigationContextPointer ctx(new IncludeNavigationContext(includeItem, TopDUContextPointer())); ///@todo give correct top-context
0064   return ctx->html(true);
0065 }
0066 
0067 }
0068 
0069 #include "moc_navigationwidget.cpp"