KDevelop API Documentation

viewcombos.cpp

Go to the documentation of this file.
00001 /*
00002  *  Copyright (C) 2003 Alexander Dymo (cloudtemple@mksat.net)
00003  *
00004  *  This program is free software; you can redistribute it and/or
00005  *  modify it under the terms of the GNU General Public
00006  *  License as published by the Free Software Foundation; either
00007  *  version 2 of the License, or (at your option) any later version.
00008  *
00009  *  This program is distributed in the hope that it will be useful,
00010  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  *  Library General Public License for more details.
00013  *
00014  *  You should have received a copy of the GNU General Public License
00015  *  along with this program; see the file COPYING.  If not, write to
00016  *  the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00017  *  Boston, MA 02111-1307, USA.
00018  *
00019  */
00020 #include <kiconloader.h>
00021 #include <klocale.h>
00022 #include <kdebug.h>
00023 
00024 #include "klistviewaction.h"
00025 #include "kcomboview.h"
00026 
00027 #include "viewcombos.h"
00028 #include "classviewpart.h"
00029 
00030 NamespaceItem::NamespaceItem(ClassViewPart *part, QListView *parent, QString name, NamespaceDom dom)
00031     :QListViewItem(parent, name), m_dom(dom), m_part(part)
00032 {
00033 }
00034 
00035 NamespaceItem::NamespaceItem(ClassViewPart *part, QListViewItem *parent, QString name, NamespaceDom dom)
00036     :QListViewItem(parent, name), m_dom(dom), m_part(part)
00037 {
00038 }
00039 
00040 NamespaceItem::~ NamespaceItem( )
00041 {
00042 }
00043 
00044 NamespaceDom NamespaceItem::dom() const
00045 {
00046     return m_dom;
00047 }
00048 
00049 void NamespaceItem::setup()
00050 {
00051     QListViewItem::setup();
00052     setPixmap( 0, UserIcon("CVnamespace", KIcon::DefaultState, m_part->instance()) );
00053 }
00054 
00055 
00056 ClassItem::ClassItem(ClassViewPart *part, QListView *parent, QString name, ClassDom dom)
00057     :QListViewItem(parent, name), m_dom(dom), m_part(part)
00058 {
00059 }
00060 
00061 ClassItem::ClassItem(ClassViewPart *part, QListViewItem *parent, QString name, ClassDom dom)
00062     :QListViewItem(parent, name), m_dom(dom), m_part(part)
00063 {
00064 }
00065 
00066 ClassItem::~ ClassItem( )
00067 {
00068 }
00069 
00070 ClassDom ClassItem::dom() const
00071 {
00072     return m_dom;
00073 }
00074 
00075 void ClassItem::setup()
00076 {
00077     QListViewItem::setup();
00078     setPixmap( 0, UserIcon("CVclass", KIcon::DefaultState, m_part->instance()) );
00079 }
00080 
00081 
00082 FunctionItem::FunctionItem(ClassViewPart *part, QListView *parent, QString name, FunctionDom dom)
00083     :QListViewItem(parent, name), m_dom(dom), m_part(part)
00084 {
00085 }
00086 
00087 FunctionItem::FunctionItem(ClassViewPart *part, QListViewItem *parent, QString name, FunctionDom dom)
00088     :QListViewItem(parent, name), m_dom(dom), m_part(part)
00089 {
00090 }
00091 
00092 FunctionItem::~ FunctionItem( )
00093 {
00094 }
00095 
00096 FunctionDom FunctionItem::dom() const
00097 {
00098     return m_dom;
00099 }
00100 
00101 void FunctionItem::setup()
00102 {
00103     QListViewItem::setup();
00104     QString iconName;
00105     if( m_dom->access() == CodeModelItem::Private )
00106         iconName = "CVprivate_meth";
00107     else if( m_dom->access() == CodeModelItem::Protected )
00108         iconName = "CVprotected_meth";
00109     else
00110         iconName = "CVpublic_meth";
00111     setPixmap( 0, UserIcon(iconName, KIcon::DefaultState, m_part->instance()) );
00112 }
00113 
00114 
00115 namespace ViewCombosOp{
00116 
00117 void refreshNamespaces(ClassViewPart *part, KComboView *view)
00118 {
00119     view->clear();
00120 
00121     NamespaceItem *global_item = new NamespaceItem( part, view->listView(), i18n("(Global Namespace)"), part->codeModel()->globalNamespace() );
00122     view->addItem(global_item);
00123     global_item->setPixmap( 0, UserIcon("CVnamespace", KIcon::DefaultState, part->instance()) );
00124     NamespaceList namespaces = part->codeModel()->globalNamespace()->namespaceList();
00125     for (NamespaceList::const_iterator it = namespaces.begin(); it != namespaces.end(); ++it)
00126     {
00127         NamespaceItem *item = new NamespaceItem(part, view->listView(), part->languageSupport()->formatModelItem(*it), *it);
00128         view->addItem(item);
00129         item->setOpen(true);
00130     }
00131     view->setCurrentActiveItem(global_item);
00132 }
00133 
00134 void refreshClasses(ClassViewPart *part, KComboView *view, const QString &dom)
00135 {
00136     view->clear();
00137 
00138     view->setCurrentText(EmptyClasses);
00139     NamespaceDom nsdom;
00140     if (dom == "::")
00141         nsdom = part->codeModel()->globalNamespace();
00142     else
00143     {
00144         nsdom = namespaceByName(part->codeModel()->globalNamespace(), dom);
00145         if (!nsdom)
00146             return;
00147     }
00148     ClassList classes = nsdom->classList();
00149     for (ClassList::const_iterator it = classes.begin(); it != classes.end(); ++it)
00150     {
00151         ClassItem *item = new ClassItem(part, view->listView(), part->languageSupport()->formatModelItem(*it), *it);
00152         view->addItem(item);
00153         item->setOpen(true);
00154     }
00155 }
00156 
00157 void refreshFunctions(ClassViewPart *part, KComboView *view, const ClassDom & dom)
00158 {
00159     view->clear();
00160 
00161     view->setCurrentText(EmptyFunctions);
00162     FunctionList functions = dom->functionList();
00163     for (FunctionList::const_iterator it = functions.begin(); it != functions.end(); ++it)
00164     {
00165         FunctionItem *item = new FunctionItem(part, view->listView(), part->languageSupport()->formatModelItem(*it, true), *it);
00166         view->addItem(item);
00167         item->setOpen(true);
00168     }
00169 }
00170 
00171 void refreshFunctions(ClassViewPart *part, KComboView *view, const QString & dom)
00172 {
00173     view->clear();
00174 
00175     view->setCurrentText(EmptyFunctions);
00176     NamespaceDom nsdom;
00177     if (dom == "::")
00178         nsdom = part->codeModel()->globalNamespace();
00179     else
00180     {
00181         nsdom = namespaceByName(part->codeModel()->globalNamespace(), dom);
00182         if (!nsdom)
00183             return;
00184     }
00185     FunctionList functions = nsdom->functionList();
00186     for (FunctionList::const_iterator it = functions.begin(); it != functions.end(); ++it)
00187     {
00188         FunctionItem *item = new FunctionItem(part, view->listView(), part->languageSupport()->formatModelItem(*it, true), *it);
00189         view->addItem(item);
00190         item->setOpen(true);
00191     }
00192 }
00193 
00194 
00195 }
00196 
00197 NamespaceDom ViewCombosOp::namespaceByName( NamespaceDom dom, QString name )
00198 {
00199     NamespaceDom result;
00200 
00201     result = dom->namespaceByName(name);
00202     if (!result)
00203     {
00204         NamespaceList nslist = dom->namespaceList();
00205         for (NamespaceList::const_iterator it = nslist.begin(); it != nslist.end(); ++it)
00206         {
00207             result = namespaceByName(*it, name);
00208             if (result)
00209                 break;
00210         }
00211     }
00212     return result;
00213 }
00214 
KDE Logo
This file is part of the documentation for KDevelop Version 3.1.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Feb 22 09:22:38 2005 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2003