[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdevplatform/plugins/contextbrowser
From: David Nolden <david.nolden.kde () art-master ! de>
Date: 2008-10-24 15:06:28
Message-ID: 1224860788.301196.9825.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 875480 by zwabel:
Do not re-create the navigation-widget when the navigated declaration has stayed the \
same
M +17 -0 contextbrowserview.cpp
M +1 -0 contextbrowserview.h
--- trunk/KDE/kdevplatform/plugins/contextbrowser/contextbrowserview.cpp \
#875479:875480 @@ -46,6 +46,7 @@
#include <language/duchain/types/functiontype.h>
#include <language/duchain/specializationstore.h>
#include "browsemanager.h"
+#include <language/duchain/navigation/abstractnavigationwidget.h>
const int maxHistoryLength = 30;
@@ -447,16 +448,23 @@
void ContextBrowserView::updateMainWidget(QWidget* widget)
{
if (widget) {
+ setUpdatesEnabled(false);
kDebug() << "";
resetWidget();
m_navigationWidget = widget;
m_layout->insertWidget(1, widget, 1);
m_allowLockedUpdate = false;
+ setUpdatesEnabled(true);
}
}
void ContextBrowserView::setDeclaration(KDevelop::Declaration* decl, \
KDevelop::TopDUContext* topContext) {
if (!isLocked() && isVisible()) { // NO-OP if toolview is hidden, for \
performance reasons +
+ if(m_navigationWidgetDeclaration == decl->id())
+ return;
+ m_navigationWidgetDeclaration = decl->id();
+
QWidget* w = m_declarationCtrl->createWidget(decl, topContext);
updateMainWidget(w);
}
@@ -475,6 +483,15 @@
void ContextBrowserView::setContext(KDevelop::DUContext* context) {
if (!isLocked() && isVisible()) { // NO-OP if toolview is hidden, for \
performance reasons +
+ if(context->owner()) {
+ if(context->owner()->id() == m_navigationWidgetDeclaration)
+ return;
+ m_navigationWidgetDeclaration = context->owner()->id();
+ }else{
+ m_navigationWidgetDeclaration = DeclarationId();
+ }
+
QWidget* w = m_contextCtrl->createWidget(context);
updateMainWidget(w);
}
--- trunk/KDE/kdevplatform/plugins/contextbrowser/contextbrowserview.h #875479:875480
@@ -73,6 +73,7 @@
QVBoxLayout* m_layout;
QToolButton* m_lockButton;
QWidget* m_navigationWidget;
+ KDevelop::DeclarationId m_navigationWidgetDeclaration;
bool m_allowLockedUpdate;
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic