aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/classeditor/classeditor.cpp
diff options
context:
space:
mode:
authorGravatar Noldor2010-03-22 20:07:34 +0000
committerGravatar Noldor2010-03-22 20:07:34 +0000
commit42c8c7861e7c6498d0b68c9883cf3415d5b67a39 (patch)
tree866736292bbff163259a1b618c20ccd0802e1188 /src/modules/classeditor/classeditor.cpp
parentMore work on classeditor (diff)
downloadKVIrc-42c8c7861e7c6498d0b68c9883cf3415d5b67a39.tar.gz
KVIrc-42c8c7861e7c6498d0b68c9883cf3415d5b67a39.tar.bz2
KVIrc-42c8c7861e7c6498d0b68c9883cf3415d5b67a39.zip
More work on classeditor
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@4202 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/classeditor/classeditor.cpp')
-rw-r--r--src/modules/classeditor/classeditor.cpp36
1 files changed, 29 insertions, 7 deletions
diff --git a/src/modules/classeditor/classeditor.cpp b/src/modules/classeditor/classeditor.cpp
index 36f2e1c9d..31295074d 100644
--- a/src/modules/classeditor/classeditor.cpp
+++ b/src/modules/classeditor/classeditor.cpp
@@ -311,6 +311,33 @@ KviClassEditorTreeWidgetItem * KviClassEditor::createFullItem(const QString & sz
}
return new KviClassEditorTreeWidgetItem(pItem,KviClassEditorTreeWidgetItem::Class,lNamespaces.at(i));
}
+KviClassEditorTreeWidgetItem * KviClassEditor::createFullNamespace(const QString & szFullName)
+{
+ QStringList lNamespaces=szFullName.split("::");
+ debug("createfullnamespace %s",szFullName.toUtf8().data());
+ if(!lNamespaces.count()) return 0;
+ KviClassEditorTreeWidgetItem *pItem=findTopLevelItem(lNamespaces.at(0));
+ if (!pItem) pItem=new KviClassEditorTreeWidgetItem(m_pTreeWidget,KviClassEditorTreeWidgetItem::Namespace,lNamespaces.at(0));
+ if (lNamespaces.count()==1) return pItem;
+ bool bFound;
+ int i;
+ for(i=1;i<lNamespaces.count()-1;i++)
+ {
+ bFound=false;
+ for(int j=0;j<pItem->childCount();j++)
+ {
+ if (KviQString::equalCI(pItem->child(j)->text(0),lNamespaces.at(i)))
+ {
+ pItem=( KviClassEditorTreeWidgetItem *)pItem->child(j);
+ bFound=true;
+ break;
+ }
+ }
+ if (!bFound)
+ pItem=new KviClassEditorTreeWidgetItem(pItem,KviClassEditorTreeWidgetItem::Namespace,lNamespaces.at(i));
+ }
+ return new KviClassEditorTreeWidgetItem(pItem,KviClassEditorTreeWidgetItem::Namespace,lNamespaces.at(i));
+}
void KviClassEditor::oneTimeSetup()
{
@@ -559,8 +586,7 @@ void KviClassEditor::renameClass(KviClassEditorTreeWidgetItem *pClassItem)
cutItem(pClassItem);
if(szNewClassName.contains("::"))
{
- pNewItem=createFullItem(szNewClassName.left(szNewClassName.lastIndexOf("::")));
- pNewItem->setType(KviClassEditorTreeWidgetItem::Namespace);
+ pNewItem=createFullNamespace(szNewClassName.left(szNewClassName.lastIndexOf("::")));
pClassItem->setName(szNewClassName.section("::",-1,-1));
pNewItem->addChild(pClassItem);
m_pClasses->insert(szNewClassName,pNewItem);
@@ -571,9 +597,6 @@ void KviClassEditor::renameClass(KviClassEditorTreeWidgetItem *pClassItem)
m_pTreeWidget->addTopLevelItem(pClassItem);
m_pClasses->insert(szNewClassName,pClassItem);
}
- //KviKvsObjectClass *pClass;
- //pClass = KviKvsKernel::instance()->objectController()->lookupClass(szClassName);
- //if (pClass) KviKvsKernel::instance()->objectController()->deleteClass(pClass);
pClassItem->setInheritsClass(szNewInheritsClassName);
pClassItem->setClassNotBuilt(true);
KviPointerList<KviClassEditorTreeWidgetItem> pInheritedClasses;
@@ -630,8 +653,7 @@ void KviClassEditor::renameNamespace(KviClassEditorTreeWidgetItem *pOldNamespace
cutItem(pOldNamespaceItem);
if(szNewNameSpaceName.contains("::"))
{
- pNewItem=createFullItem(szNewNameSpaceName.left(szNewNameSpaceName.lastIndexOf("::")));
- pNewItem->setType(KviClassEditorTreeWidgetItem::Namespace);
+ pNewItem=createFullNamespace(szNewNameSpaceName.left(szNewNameSpaceName.lastIndexOf("::")));
pOldNamespaceItem->setName(szNewNameSpaceName.section("::",-1,-1));
pNewItem->addChild(pOldNamespaceItem);
}