[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdevplatform/language
From: Nikolaus Sams <niko.sams () gmail ! com>
Date: 2008-10-18 17:14:47
Message-ID: 1224350087.291218.21282.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 873067 by nsams:
Add AbstractDeclarationNavigationContext, and move the html-method from
cpp language support there. Only special cpp features like templates are
handled in cpp langauge support.
Also move one TypeUtils function from cpp langauge support.
M +4 -0 CMakeLists.txt
A duchain/navigation/abstractdeclarationnavigationcontext.cpp \
[License: LGPL (v2)] A \
duchain/navigation/abstractdeclarationnavigationcontext.h [License: LGPL (v2)] M \
+9 -48 duchain/navigation/abstractnavigationcontext.cpp M +2 -11 \
duchain/navigation/abstractnavigationcontext.h M +4 -2 \
duchain/navigation/abstractnavigationwidget.cpp A \
duchain/types/typeutils.cpp [License: LGPL (v2)] A \
duchain/types/typeutils.h [License: LGPL (v2)]
--- trunk/KDE/kdevplatform/language/CMakeLists.txt #873066:873067
@@ -65,12 +65,14 @@
duchain/types/enumerationtype.cpp
duchain/types/constantintegraltype.cpp
duchain/types/enumeratortype.cpp
+ duchain/types/typeutils.cpp
duchain/repositories/itemrepository.cpp
duchain/repositories/typerepository.cpp
duchain/navigation/abstractnavigationwidget.cpp
duchain/navigation/abstractnavigationcontext.cpp
+ duchain/navigation/abstractdeclarationnavigationcontext.cpp
duchain/navigation/useswidget.cpp
interfaces/ilanguagesupport.cpp
@@ -205,6 +207,7 @@
duchain/types/constantintegraltype.h
duchain/types/enumeratortype.h
duchain/types/alltypes.h
+ duchain/types/typeutils.h
DESTINATION ${INCLUDE_INSTALL_DIR}/kdevplatform/language/duchain/types
)
@@ -241,6 +244,7 @@
install(FILES
duchain/navigation/abstractnavigationcontext.h
+ duchain/navigation/abstractdeclarationnavigationcontext.h
duchain/navigation/abstractnavigationwidget.h
duchain/navigation/navigationaction.h
duchain/navigation/useswidget.h
--- trunk/KDE/kdevplatform/language/duchain/navigation/abstractnavigationcontext.cpp \
#873066:873067 @@ -21,6 +21,7 @@
#include <QtGui/QTextDocument>
#include <klocale.h>
+#include "abstractdeclarationnavigationcontext.h"
#include "../../../interfaces/icore.h"
#include "../../../interfaces/idocumentcontroller.h"
#include "../functiondeclaration.h"
@@ -39,14 +40,10 @@
namespace KDevelop {
-AbstractNavigationContext::AbstractNavigationContext( DeclarationPointer decl, \
KDevelop::TopDUContextPointer topContext, AbstractNavigationContext* \
previousContext)
- : m_declaration(decl), m_selectedLink(0), m_linkCount(-1),
+AbstractNavigationContext::AbstractNavigationContext( KDevelop::TopDUContextPointer \
topContext, AbstractNavigationContext* previousContext) + : m_selectedLink(0), \
m_linkCount(-1), m_previousContext(previousContext), m_topContext(topContext)
{
- //Jump from definition to declaration if possible
- FunctionDefinition* definition = \
dynamic_cast<FunctionDefinition*>(m_declaration.data());
- if(definition && definition->declaration())
- m_declaration = DeclarationPointer(definition->declaration());
}
void AbstractNavigationContext::addExternalHtml( const QString& text )
@@ -116,7 +113,8 @@
break;
case NavigationAction::NavigateDeclaration:
{
- if( m_previousContext && m_previousContext->m_declaration == action.decl )
+ AbstractDeclarationNavigationContext* ctx = \
dynamic_cast<AbstractDeclarationNavigationContext*>(m_previousContext); + if( \
ctx && ctx->declaration() == action.decl ) return NavigationContextPointer( \
m_previousContext ); return registerChild(action.decl);
} break;
@@ -201,26 +199,24 @@
return m_selectedLinkAction;
}
-QString AbstractNavigationContext::declarationKind(Declaration* decl)
+
+QString AbstractNavigationContext::declarationKind(DeclarationPointer decl)
{
- const AbstractFunctionDeclaration* function = dynamic_cast<const \
AbstractFunctionDeclaration*>(decl); + const AbstractFunctionDeclaration* function = \
dynamic_cast<const AbstractFunctionDeclaration*>(decl.data());
QString kind;
if( decl->isTypeAlias() )
kind = i18n("Typedef");
else if( decl->kind() == Declaration::Type ) {
- //if( decl->type<CppClassType>() )
if( decl->type<StructureType>() )
kind = i18n("Class");
- else
- i18n("Class");
}
if( decl->kind() == Declaration::Instance )
kind = i18n("Variable");
- if( NamespaceAliasDeclaration* alias = \
dynamic_cast<NamespaceAliasDeclaration*>(decl) ) { + if( NamespaceAliasDeclaration* \
alias = dynamic_cast<NamespaceAliasDeclaration*>(decl.data()) ) { if( \
alias->identifier().isEmpty() ) kind = i18n("Namespace import");
else
@@ -236,41 +232,6 @@
return kind;
}
-
-DeclarationPointer AbstractNavigationContext::declaration() const
-{
- return m_declaration;
-}
-
-QString AbstractNavigationContext::stringFromAccess(Declaration::AccessPolicy \
access)
-{
- switch(access) {
- case Declaration::Private:
- return "private";
- case Declaration::Protected:
- return "protected";
- case Declaration::Public:
- return "public";
- }
- return "";
-}
-
-QString AbstractNavigationContext::declarationName( Declaration* decl )
-{
- if( NamespaceAliasDeclaration* alias = \
dynamic_cast<NamespaceAliasDeclaration*>(decl) ) {
- if( alias->identifier().isEmpty() )
- return "using namespace " + alias->importIdentifier().toString();
- else
- return "namespace " + alias->identifier().toString() + " = " + \
alias->importIdentifier().toString();
- }
-
- if( !decl )
- return i18nc("An unknown declaration that is unknown", "Unknown");
- else
- return decl->identifier().toString();
-}
-
-
const Colorizer AbstractNavigationContext::errorHighlight("990000");
const Colorizer AbstractNavigationContext::labelHighlight("000035");
const Colorizer AbstractNavigationContext::codeHighlight("005000");
--- trunk/KDE/kdevplatform/language/duchain/navigation/abstractnavigationcontext.h \
#873066:873067 @@ -30,8 +30,6 @@
namespace KDevelop {
-class FunctionDefinition;
-class NamespaceAliasDeclaration;
/** A helper-class for elegant colorization of html-strings .
*
* Initialize it with a html-color like "990000". and colorize strings
@@ -63,7 +61,7 @@
class KDEVPLATFORMLANGUAGE_EXPORT AbstractNavigationContext : public KShared
{
public:
- AbstractNavigationContext( DeclarationPointer decl, \
KDevelop::TopDUContextPointer topContext, AbstractNavigationContext* previousContext \
= 0 ); + AbstractNavigationContext( KDevelop::TopDUContextPointer topContext, \
AbstractNavigationContext* previousContext = 0 );
virtual ~AbstractNavigationContext() {
}
@@ -78,14 +76,8 @@
virtual QString name() const = 0;
virtual QString html(bool shorten = false) = 0;
- DeclarationPointer declaration() const;
-
- static QString declarationKind(Declaration* decl);
-
protected:
- DeclarationPointer m_declaration;
-
NavigationContextPointer execute(NavigationAction& action);
void addExternalHtml( const QString& text );
@@ -112,8 +104,7 @@
QString m_prefix, m_suffix;
KDevelop::TopDUContextPointer m_topContext;
- static QString stringFromAccess(Declaration::AccessPolicy access);
- static QString declarationName( Declaration* decl );
+ static QString declarationKind(DeclarationPointer decl);
static const Colorizer errorHighlight;
static const Colorizer labelHighlight;
--- trunk/KDE/kdevplatform/language/duchain/navigation/abstractnavigationwidget.cpp \
#873066:873067 @@ -38,6 +38,7 @@
#include "../classmemberdeclaration.h"
#include "../topducontext.h"
#include "abstractnavigationcontext.h"
+#include "abstractdeclarationnavigationcontext.h"
#include "navigationaction.h"
#include "useswidget.h"
#include "../../../interfaces/icore.h"
@@ -84,8 +85,9 @@
delete m_usesWidget;
m_usesWidget = 0;
- if (m_context->declaration()) {
- m_usesWidget = new KDevelop::UsesWidget(m_context->declaration().data());
+ AbstractDeclarationNavigationContext* declContext = \
dynamic_cast<AbstractDeclarationNavigationContext*>(m_context.data()); + if \
(declContext && declContext->declaration()) { + m_usesWidget = new \
KDevelop::UsesWidget(declContext->declaration().data()); \
layout()->addWidget(m_usesWidget); }
m_browser->verticalScrollBar()->setValue(scrollPos);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic