KDevelop API Documentation

parts/classview/classtoolwidget.cpp

Go to the documentation of this file.
00001 /*************************************************************************** 00002 * Copyright (C) 1999 by Jonas Nordin * 00003 * jonas.nordin@syncom.se * 00004 * Copyright (C) 2000-2001 by Bernd Gehrmann * 00005 * bernd@kdevelop.org * 00006 * * 00007 * This program is free software; you can redistribute it and/or modify * 00008 * it under the terms of the GNU General Public License as published by * 00009 * the Free Software Foundation; either version 2 of the License, or * 00010 * (at your option) any later version. * 00011 * * 00012 ***************************************************************************/ 00013 00014 #include "classtoolwidget.h" 00015 00016 #include <kconfig.h> 00017 #include <klocale.h> 00018 #include <kglobal.h> 00019 #include <kpopupmenu.h> 00020 #include "classstore.h" 00021 00022 00023 ClassToolWidget::ClassToolWidget(ClassViewPart *part, QWidget *parent) 00024 : ClassTreeBase(part, parent, "class tool widget") 00025 {} 00026 00027 00028 ClassToolWidget::~ClassToolWidget() 00029 {} 00030 00031 00032 KPopupMenu *ClassToolWidget::createPopup() 00033 { 00034 KPopupMenu *popup = contextItem? contextItem->createPopup() : 0; 00035 if (!popup) { 00036 popup = new KPopupMenu(i18n("Class Tool"), this); 00037 } 00038 00039 return popup; 00040 } 00041 00042 00043 void ClassToolWidget::insertClassAndClasses(ParsedClass *parsedClass, QValueList<ParsedClass*> classList) 00044 { 00045 ClassTreeItem *root = new ClassTreeClassItem(this, 0, parsedClass); 00046 00047 ClassTreeItem *lastItem = 0; 00048 00049 QValueList<ParsedClass*>::ConstIterator it; 00050 for (it = classList.begin(); it != classList.end(); ++it) { 00051 lastItem = new ClassTreeClassItem(root, lastItem, *it); 00052 lastItem->setExpandable(false); 00053 } 00054 00055 if (!root->firstChild()) 00056 root->setExpandable(false); 00057 else 00058 root->setOpen(true); 00059 } 00060 00061 00062 void ClassToolWidget::insertClassAndClasses(ParsedClass *parsedClass, const QPtrList<ParsedParent> &parentList) 00063 { 00064 ClassTreeItem *root = new ClassTreeClassItem(this, 0, parsedClass); 00065 00066 ClassTreeItem *lastItem = 0; 00067 00068 QPtrListIterator<ParsedParent> it(parentList); 00069 for (; it.current(); ++it) { 00070 ParsedClass *parentClass = m_part->classStore()->getClassByName((*it)->name()); 00071 lastItem = new ClassTreeClassItem(root, lastItem, parentClass); 00072 lastItem->setExpandable(false); 00073 } 00074 00075 if (!root->firstChild()) 00076 root->setExpandable(false); 00077 else 00078 root->setOpen(true); 00079 } 00080 00081 00082 void ClassToolWidget::addClassAndAttributes(ParsedClass *parsedClass, PIAccess filter, ClassTreeItem **lastItem) 00083 { 00084 *lastItem = new ClassTreeClassItem(this, *lastItem, parsedClass); 00085 00086 ClassTreeItem *ilastItem = 0; 00087 00088 QValueList<ParsedAttribute*> attrList = parsedClass->getSortedAttributeList(); 00089 QValueList<ParsedAttribute*>::ConstIterator it; 00090 for (it = attrList.begin(); it != attrList.end(); ++it) { 00091 if (filter == (PIAccess)-1 || filter == (*it)->access()) 00092 ilastItem = new ClassTreeAttrItem(*lastItem, ilastItem, *it); 00093 } 00094 00095 if (!(*lastItem)->firstChild()) 00096 (*lastItem)->setExpandable(false); 00097 else 00098 (*lastItem)->setOpen(true); 00099 } 00100 00101 00102 void ClassToolWidget::addClassAndMethods(ParsedClass *parsedClass, PIAccess filter, ClassTreeItem **lastItem) 00103 { 00104 *lastItem = new ClassTreeClassItem(this, *lastItem, parsedClass); 00105 00106 ClassTreeItem *ilastItem = 0; 00107 00108 QValueList<ParsedMethod*> methodList = parsedClass->getSortedMethodList(); 00109 QValueList<ParsedMethod*>::ConstIterator it; 00110 for (it = methodList.begin(); it != methodList.end(); ++it) { 00111 if (filter == (PIAccess)-1 || filter == (*it)->access()) 00112 ilastItem = new ClassTreeMethodItem(*lastItem, ilastItem, *it); 00113 } 00114 00115 if (!(*lastItem)->firstChild()) 00116 (*lastItem)->setExpandable(false); 00117 else 00118 (*lastItem)->setOpen(true); 00119 } 00120 00121 00122 void ClassToolWidget::insertAllClassMethods(ParsedClass *parsedClass, PIAccess filter) 00123 { 00124 ClassTreeItem *lastItem = 0; 00125 00126 // First treat all parents. 00127 for ( ParsedParent *pParent = parsedClass->parents.first(); 00128 pParent != 0; 00129 pParent = parsedClass->parents.next() ) 00130 { 00131 ParsedClass *parentClass = m_part->classStore()->getClassByName(pParent->name()); 00132 if (parentClass) 00133 addClassAndMethods(parentClass, filter, &lastItem); 00134 } 00135 00136 // Add the current class 00137 addClassAndMethods(parsedClass, filter, &lastItem); 00138 } 00139 00140 00141 void ClassToolWidget::insertAllClassAttributes(ParsedClass *parsedClass, PIAccess filter) 00142 { 00143 ClassTreeItem *lastItem = 0; 00144 // First treat all parents. 00145 for ( ParsedParent *pParent = parsedClass->parents.first(); 00146 pParent != 0; 00147 pParent = parsedClass->parents.next() ) 00148 { 00149 ParsedClass *parentClass = m_part->classStore()->getClassByName(pParent->name()); 00150 if (parentClass) 00151 addClassAndAttributes(parentClass, filter, &lastItem); 00152 } 00153 00154 // Add the current class 00155 addClassAndAttributes(parsedClass, filter, &lastItem); 00156 } 00157 00158 #include "classtoolwidget.moc"
KDE Logo
This file is part of the documentation for KDevelop Version 3.0.4.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Oct 6 17:39:10 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003