From d9ef70c90c20899f7a1ff1bfb057a6f24b5fe2a0 Mon Sep 17 00:00:00 2001 From: Noldor Date: Fri, 29 Apr 2011 11:19:17 +0000 Subject: Fixed classes export in classeditor git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@5808 17fca916-40b9-46aa-a4ea-0a15b648b75c --- src/modules/classeditor/ClassEditorWindow.cpp | 42 ++++++++++++++++++++------- 1 file changed, 32 insertions(+), 10 deletions(-) (limited to 'src/modules/classeditor') diff --git a/src/modules/classeditor/ClassEditorWindow.cpp b/src/modules/classeditor/ClassEditorWindow.cpp index 64c4255c3..498f92548 100644 --- a/src/modules/classeditor/ClassEditorWindow.cpp +++ b/src/modules/classeditor/ClassEditorWindow.cpp @@ -1075,10 +1075,12 @@ void ClassEditorWidget::exportClassBuffer(QString & szBuffer, ClassEditorTreeWid szBuffer += "internal "; szBuffer += "function "; szBuffer += pFunction->name(); - szBuffer += "(" + pFunction->reminder() + ")"; - szBuffer += "\n\t{\n"; - szBuffer += pFunction->buffer(); - szBuffer += "\n\t}\n"; + szBuffer += "(" + pFunction->reminder() + ")\n"; + QString szCode=pFunction->buffer(); + KviCommandFormatter::blockFromBuffer(szCode); + KviCommandFormatter::indent(szCode); + + szBuffer += szCode; } } szBuffer += "}\n"; @@ -1169,17 +1171,37 @@ void ClassEditorWidget::exportClasses(bool bSelectedOnly, bool bSingleFiles) { exportSelectionInSinglesFiles(&list); return; - } + } ClassEditorTreeWidgetItem * pTempItem = 0; + KviPointerList skiplist; + skiplist.setAutoDelete(false); for(ClassEditorTreeWidgetItem * pItem = list.first(); pItem; pItem = list.next()) { pTempItem = pItem; - iCount++; - QString szTmp; - exportClassBuffer(szTmp,pItem); - szOut += szTmp; - szOut += "\n"; + ClassEditorTreeWidgetItem *pParentClass = m_pClasses->find(pItem->inheritsClass()); + KviPointerList linkedClasses; + linkedClasses.setAutoDelete(false); + linkedClasses.append(pItem); + while(pParentClass) + { + if(skiplist.findRef(pParentClass)!=-1) + break; + linkedClasses.append(pParentClass); + pParentClass = m_pClasses->find(pParentClass->inheritsClass()); + } + if(linkedClasses.count()) + { + for(int i = linkedClasses.count()-1; i >= 0; i--) + { + iCount++; + QString szTmp; + exportClassBuffer(szTmp,linkedClasses.at(i)); + skiplist.append(linkedClasses.at(i)); + szOut += szTmp; + szOut += "\n"; + } + } } if(szOut.isEmpty()) -- cgit v1.3.1-10-gc9f91