diff options
| author | 2010-04-26 09:48:04 +0000 | |
|---|---|---|
| committer | 2010-04-26 09:48:04 +0000 | |
| commit | 89dd27f6b4806b0315867bbb73b307ea8f4df120 (patch) | |
| tree | 1f4d809dc3a186f6c09b3b2748d149a3960235b2 /src/modules/classeditor/classeditor.cpp | |
| parent | More improvements in theme module (diff) | |
| download | KVIrc-89dd27f6b4806b0315867bbb73b307ea8f4df120.tar.gz KVIrc-89dd27f6b4806b0315867bbb73b307ea8f4df120.tar.bz2 KVIrc-89dd27f6b4806b0315867bbb73b307ea8f4df120.zip | |
More work on classeditor
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@4296 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/classeditor/classeditor.cpp')
| -rw-r--r-- | src/modules/classeditor/classeditor.cpp | 79 |
1 files changed, 50 insertions, 29 deletions
diff --git a/src/modules/classeditor/classeditor.cpp b/src/modules/classeditor/classeditor.cpp index bab495a15..8e529359d 100644 --- a/src/modules/classeditor/classeditor.cpp +++ b/src/modules/classeditor/classeditor.cpp @@ -347,49 +347,70 @@ void KviClassEditor::oneTimeSetup() sl = d.entryList(QStringList(extension), QDir::Files | QDir::NoDotAndDotDot); KviKvsObjectClass *pClass; KviClassEditorTreeWidgetItem *pClassItem; - for(int i=0;i<sl.count();i++) + g_pModuleManager->getModule("objects"); + KviPointerHashTableIterator<QString,KviKvsObjectClass> it(*KviKvsKernel::instance()->objectController()->classDict()); + KviPointerList <KviKvsObjectClass> pList; + QString szClassName; + while(KviKvsObjectClass * pClass=it.current()) { - QString szClassName=sl.at(i); - szClassName.replace("--","::"); - szClassName.chop(4); - pClassItem = createFullItem(szClassName); - pClass = KviKvsKernel::instance()->objectController()->lookupClass(szClassName); - KviClassEditorTreeWidgetItem *pFunctionItem; - if (pClass) + if (pClass->isBuiltin())m_pClasses->insert(it.currentKey(),0); + else { - KviPointerHashTableIterator<QString,KviKvsObjectFunctionHandler> it(* pClass->getHandlers()); - m_pClasses->insert(szClassName,pClassItem); - KviKvsObjectClass *pParentClass=pClass->parentClass(); - pClassItem->setInheritsClass(pParentClass->name()); - while(it.current()) + szClassName=it.currentKey(); + if (sl.indexOf(szClassName)==-1) { - QString szCode; - KviKvsObjectFunctionHandler *handler=pClass->lookupFunctionHandler(it.currentKey()); - if (pClass->isScriptHandler(it.currentKey())) - { - pFunctionItem=findFunction(it.currentKey(), pClassItem); - if(!pFunctionItem) pFunctionItem = new KviClassEditorTreeWidgetItem(pClassItem,KviClassEditorTreeWidgetItem::Method,it.currentKey()); - pClass->getFunctionCode(szCode,*handler); - pFunctionItem->setBuffer(szCode); - if(handler->flags() & KviKvsObjectFunctionHandler::Internal) pFunctionItem->setInternalFunction(true); - } - ++it; + pClassItem = createFullItem(szClassName); + createFullClass(it.current(),pClassItem,szClassName); } } + ++it; } - g_pModuleManager->getModule("objects"); - KviPointerHashTableIterator<QString,KviKvsObjectClass> it(*KviKvsKernel::instance()->objectController()->classDict()); - while(KviKvsObjectClass * pClass=it.current()) + for(int i=0;i<sl.count();i++) { - if (pClass->isBuiltin())m_pClasses->insert(it.currentKey(),0); - ++it; + szClassName=sl.at(i); + szClassName.replace("--","::"); + szClassName.chop(4); + pClassItem = createFullItem(szClassName); + pClass = KviKvsKernel::instance()->objectController()->lookupClass(szClassName); + if (pClass) createFullClass(pClass, pClassItem, szClassName); } +/* for(int i=0;i<pList.count();i++) + { + szClassName=pList.at(i)->name(); + pClassItem = createFullItem(szClassName); + createFullClass(pList.at(i),pClassItem,szClassName); + }*/ + loadNotBuiltClasses(); connect(m_pTreeWidget,SIGNAL(currentItemChanged(QTreeWidgetItem *,QTreeWidgetItem *)),this,SLOT(currentItemChanged(QTreeWidgetItem *,QTreeWidgetItem *))); m_pTreeWidget->setContextMenuPolicy(Qt::CustomContextMenu); connect(m_pTreeWidget,SIGNAL(customContextMenuRequested(const QPoint &)),this,SLOT(customContextMenuRequested(const QPoint &))); } +void KviClassEditor::createFullClass(KviKvsObjectClass *pClass, KviClassEditorTreeWidgetItem *pClassItem, const QString &szClassName) +{ + KviPointerHashTableIterator<QString,KviKvsObjectFunctionHandler> it(* pClass->getHandlers()); + KviClassEditorTreeWidgetItem *pFunctionItem; + m_pClasses->insert(szClassName,pClassItem); + KviKvsObjectClass *pParentClass=pClass->parentClass(); + pClassItem->setInheritsClass(pParentClass->name()); + while(it.current()) + { + QString szCode; + KviKvsObjectFunctionHandler *handler=pClass->lookupFunctionHandler(it.currentKey()); + if (pClass->isScriptHandler(it.currentKey())) + { + pFunctionItem=findFunction(it.currentKey(), pClassItem); + if(!pFunctionItem) pFunctionItem = new KviClassEditorTreeWidgetItem(pClassItem,KviClassEditorTreeWidgetItem::Method,it.currentKey()); + pClass->getFunctionCode(szCode,*handler); + pFunctionItem->setBuffer(szCode); + if(handler->flags() & KviKvsObjectFunctionHandler::Internal) pFunctionItem->setInternalFunction(true); + } + ++it; + } + +} + /* void KviClassEditor::classRefresh(const QString & szName) |
