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

List:       kde-commits
Subject:    kdevelop/parts/classview
From:       Roberto Raggi <roberto () kdevelop ! org>
Date:       2003-08-16 10:44:04
[Download RAW message or body]

CVS commit by raggi: 

- better implementation of findFunctionDefinition()
- use CodeModelItemContext in class view's popup menu


  M +20 -6     classviewwidget.cpp   1.38
  M +7 -0      classviewwidget.h   1.10


--- kdevelop/parts/classview/classviewwidget.cpp  #1.37:1.38
@@ -83,4 +83,5 @@ ClassViewWidget::ClassViewWidget( ClassV
     addColumn( "" );
     header()->hide();
+    setSorting( 0 );
     setRootIsDecorated( true );
 
@@ -274,15 +275,20 @@ void ClassViewWidget::contentsContextMen
     m_actionOpenImplementation->setEnabled( item && item->hasImplementation() );
 
+    m_actionOpenDeclaration->plug( &menu );
+    m_actionOpenImplementation->plug( &menu );
+    menu.insertSeparator();
+
     if( item && item->isClass() ){
         m_actionAddMethod->plug( &menu );
         m_actionAddAttribute->plug( &menu );
-        menu.insertSeparator();
     }
 
-    int oldViewMode = viewMode();
-    m_actionOpenDeclaration->plug( &menu );
-    m_actionOpenImplementation->plug( &menu );
+    if( item && item->model() ){
+        CodeModelItemContext context( item->model() );
+        m_part->core()->fillContextMenu( &menu, &context );
+    }
     menu.insertSeparator();
 
+    int oldViewMode = viewMode();
     m_actionViewMode->plug( &menu );
 
@@ -698,7 +704,15 @@ void FunctionDomBrowserItem::openImpleme
         return;
 
+    FunctionDefinitionDom fun = lst.front();
+    QString path = QFileInfo( m_dom->fileName() ).dirPath( true );
+
+    for( FunctionDefinitionList::Iterator it=lst.begin(); it!=lst.end(); ++it ){
+        if( path == QFileInfo((*it)->fileName()).dirPath(true) )
+            fun = *it;
+    }
+
     int startLine, startColumn;
-    lst[ 0 ]->getStartPosition( &startLine, &startColumn );
-    listView()->m_part->partController()->editDocument( KURL(lst[0]->fileName()), startLine );
+    fun->getStartPosition( &startLine, &startColumn );
+    listView()->m_part->partController()->editDocument( KURL(fun->fileName()), startLine );
 }
 

--- kdevelop/parts/classview/classviewwidget.h  #1.9:1.10
@@ -106,4 +106,6 @@ public:
         : KListViewItem( parent, text ) {}
 
+    virtual const CodeModelItem* model() const { return 0; }
+
     virtual bool isFolder() const { return false; }
     virtual bool isFile() const { return false; }
@@ -158,4 +160,6 @@ public:
         : ClassViewItem( parent, dom->name() ), m_dom( dom ) {}
 
+    const CodeModelItem* model() const { return m_dom; }
+    
     virtual bool isNamespace() const { return true; }
 
@@ -186,4 +190,5 @@ public:
         : ClassViewItem( parent, dom->name() ), m_dom( dom ) {}
 
+    const CodeModelItem* model() const { return m_dom; }
     virtual bool isClass() const { return true; }
 
@@ -215,4 +220,5 @@ public:
         : ClassViewItem( parent, dom->name() ), m_dom( dom ) {}
 
+    const CodeModelItem* model() const { return m_dom; }
     virtual bool isFunction() const { return true; }
 
@@ -240,4 +246,5 @@ public:
         : ClassViewItem( parent, dom->name() ), m_dom( dom ) {}
 
+    const CodeModelItem* model() const { return m_dom; }
     virtual bool isVariable() const { return true; }
 


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

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