[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdevelop/parts/classview
From:       Alexander Dymo <cloudtemple () mksat ! net>
Date:       2004-06-02 22:32:36
Message-ID: 20040602223236.40CFB126E6 () office ! kde ! org
[Download RAW message or body]

CVS commit by dymo: 

React on addedSourceInfo() signal and update function navigation combo items when \
code changes.


  M +1 -0      classviewpart.cpp   1.62
  M +29 -8     navigator.cpp   1.2


--- kdevelop/parts/classview/classviewpart.cpp  #1.61:1.62
@@ -127,4 +127,5 @@ void ClassViewPart::setupActions( )
     m_functionsnav = new KListViewAction( new KComboView(true, 150, 0, \
"m_functionsnav_combo"), i18n("Functions Navigation"), 0, 0, 0, actionCollection(), \
                "functionsnav_combo", true );
     connect(m_functionsnav->view(), SIGNAL(activated(QListViewItem*)), navigator, \
SLOT(selectFunctionNav(QListViewItem*))); +//    \
                m_functionsnav->view()->setEditable(false);
     connect(m_functionsnav->view(), SIGNAL(focusGranted()), navigator, \
                SLOT(functionNavFocused()));
     connect(m_functionsnav->view(), SIGNAL(focusLost()), navigator, \
SLOT(functionNavUnFocused()));

--- kdevelop/parts/classview/navigator.cpp  #1.1:1.2
@@ -262,12 +262,33 @@ void Navigator::refreshNavBars(const QSt
         QString fullName = fullFunctionDefinitionName(*it);
         
+        if (clear || !functionNavDefs[fullName])
+        {
         FunctionNavItem *item = new FunctionNavItem(m_part,
             m_part->m_functionsnav->view()->listView(), fullName, \
FunctionNavItem::Definition);  functionNavDefs[fullName] = item;
         m_part->m_functionsnav->view()->addItem(item);
+        }
         
         //remove unnecessary items with function declarations for which a definition \
item was created  if (functionNavDecls[fullName])
+        {
             m_part->m_functionsnav->view()->removeItem(functionNavDecls[fullName]);
+            functionNavDecls.remove(fullName);
+        }
+        
+        toLeave << fullName;
+    }
+        
+    kdDebug() << "leave list: " << toLeave << endl;
+    //remove items not in toLeave list
+    for (QMap<QString, QListViewItem*>::iterator it = functionNavDefs.begin();
+        it != functionNavDefs.end(); ++it)
+    {
+        if (!toLeave.contains(it.key()))
+        {
+            if (it.data())
+                m_part->m_functionsnav->view()->removeItem(it.data());
+            functionNavDefs.remove(it);
+        }
     }
 }
@@ -284,5 +305,5 @@ void Navigator::addFile(const QString & 
     {
         kdDebug() << "Navigator::addFile, processing active file" << endl;
- //       refreshNavBars(m_part->m_activeFileName, false);
+        refreshNavBars(m_part->m_activeFileName, false);
     }
 }
@@ -470,6 +491,6 @@ QString Navigator::fullFunctionDefinitio
     if (!funName.isEmpty())
         funName += ".";
-    funName = m_part->languageSupport()->formatClassName(funName);
     funName += m_part->languageSupport()->formatModelItem(fun, true);   
+    funName = m_part->languageSupport()->formatClassName(funName);
     
     return funName;
@@ -482,6 +503,6 @@ QString Navigator::fullFunctionDeclarati
     if (!funName.isEmpty())
         funName += ".";
-    funName = m_part->languageSupport()->formatClassName(funName);
     funName += m_part->languageSupport()->formatModelItem(fun, true);   
+    funName = m_part->languageSupport()->formatClassName(funName);
     
     return funName;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic