00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
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
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
00137
addClassAndMethods(parsedClass, filter, &lastItem);
00138 }
00139
00140
00141 void ClassToolWidget::insertAllClassAttributes(ParsedClass *parsedClass, PIAccess filter)
00142 {
00143
ClassTreeItem *lastItem = 0;
00144
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
00155
addClassAndAttributes(parsedClass, filter, &lastItem);
00156 }
00157
00158
#include "classtoolwidget.moc"