diff options
Diffstat (limited to 'src/modules/classeditor/classeditor.cpp')
| -rw-r--r-- | src/modules/classeditor/classeditor.cpp | 47 |
1 files changed, 34 insertions, 13 deletions
diff --git a/src/modules/classeditor/classeditor.cpp b/src/modules/classeditor/classeditor.cpp index 0c4820f36..933b5eab5 100644 --- a/src/modules/classeditor/classeditor.cpp +++ b/src/modules/classeditor/classeditor.cpp @@ -355,7 +355,7 @@ void KviClassEditor::oneTimeSetup() } } - KviModule * pModule = g_pModuleManager->getModule("objects"); + g_pModuleManager->getModule("objects"); KviPointerHashTableIterator<QString,KviKvsObjectClass> it(*KviKvsKernel::instance()->objectController()->classDict()); while(KviKvsObjectClass * pClass=it.current()) { @@ -502,9 +502,11 @@ void KviClassEditor::renameClass(KviClassEditorTreeWidgetItem *pClassItem) QString szInheritsClassName = pClassItem->InheritsClass(); QString szNewInheritsClassName = szInheritsClassName; - askForClassName(szNewClassName,szNewInheritsClassName,true); + bool bOk=askForClassName(szNewClassName,szNewInheritsClassName,true); + if (!bOk) return; + debug("szClassName %s,szNewClassName %s,szInheritsClassName %s,szNewInheritsClassName %s",szClassName.toUtf8().data(),szNewClassName.toUtf8().data(),szInheritsClassName.toUtf8().data(),szNewInheritsClassName.toUtf8().data()); if (KviQString::equalCI(szClassName,szNewClassName) && KviQString::equalCI(szInheritsClassName,szNewInheritsClassName)) return; - if (classExists(szNewClassName)) + if (classExists(szNewClassName) && KviQString::equalCI(szInheritsClassName,szNewInheritsClassName)) { g_pClassEditorModule->lock(); QMessageBox::information(this, @@ -525,7 +527,7 @@ void KviClassEditor::renameClass(KviClassEditorTreeWidgetItem *pClassItem) szNewName = ""; continue; }*/ - KviClassEditorTreeWidgetItem *pNewItem; + KviClassEditorTreeWidgetItem *pNewItem=0; m_pClasses->remove(szClassName); if(szNewClassName.contains("::")) { @@ -549,12 +551,20 @@ void KviClassEditor::renameClass(KviClassEditorTreeWidgetItem *pClassItem) pClassItem->setName(szNewClassName); 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> pInheritsedClasses; searchInheritsedClasses(szClassName,pInheritsedClasses); for(unsigned int i=0;i<pInheritsedClasses.count();i++) + { + pInheritsedClasses.at(i)->setClassNotBuilt(true); pInheritsedClasses.at(i)->setInheritsClass(szNewClassName); + } + if (pNewItem) activateItem(pNewItem); + else activateItem(pClassItem); } void KviClassEditor::renameNamespace(KviClassEditorTreeWidgetItem *pNamespaceItem) { @@ -1218,7 +1228,7 @@ void KviClassEditor::removeSelectedItems() } */ -void KviClassEditor::askForClassName(QString &szClassName,QString &szInheritsClassName, bool bEdit) +bool KviClassEditor::askForClassName(QString &szClassName,QString &szInheritsClassName, bool bEdit) { KviClassEditorDialog *pDialog=new KviClassEditorDialog(this,"classdialog",m_pClasses,szClassName,szInheritsClassName,bEdit); szClassName=""; @@ -1229,8 +1239,10 @@ void KviClassEditor::askForClassName(QString &szClassName,QString &szInheritsCla { szClassName=pDialog->getClassName(); szInheritsClassName=pDialog->getInheritsClassName(); + return true; } delete pDialog; + return false; } void KviClassEditor::askForFunction(QString &szFunctionName,bool * bInternal,const QString &szClassName) @@ -1337,9 +1349,7 @@ void KviClassEditor::newClass() QString szClassName,szInheritsClassName; askForClassName(szClassName,szInheritsClassName,false); if(szClassName.isEmpty())return; - debug("creating item class"); KviClassEditorTreeWidgetItem *it=newItem(szClassName,KviClassEditorTreeWidgetItem::Class); - debug("item class created"); QString szClass="class\("; szClass+=szClassName+","+szInheritsClassName; szClass+="){}\n"; @@ -1548,8 +1558,12 @@ void KviClassEditor::saveNotBuiltClasses() void KviClassEditor::searchInheritsedClasses(const QString szClass,KviPointerList<KviClassEditorTreeWidgetItem> & pInheritsedClasses) { KviPointerHashTableIterator<QString,KviClassEditorTreeWidgetItem> it (*m_pClasses); + debug("into searchInherits"); while(it.current()) { + //debug("class %s",it.current()->name().toUtf8().data()); + //debug("inerits class %s",it.current()->InheritsClass().toUtf8().data()); + if (KviQString::equalCI(szClass,it.current()->InheritsClass())) pInheritsedClasses.append(it.current()); ++it; } @@ -1704,9 +1718,12 @@ KviClassEditorDialog::KviClassEditorDialog(QWidget * pParent, const QString & sz szClasses.sort(); for(int i=0;i<szClasses.count();i++) m_pInheritsClassComboBox->addItem(szClasses.at(i)); - - - m_pClassNameLineEdit->setFocus(); + if (!szInheritsClassName.isEmpty()) + { + int iCurrentIdx=m_pInheritsClassComboBox->findText(szInheritsClassName); + m_pInheritsClassComboBox->setCurrentIndex(iCurrentIdx); + } + m_pClassNameLineEdit->setFocus(); hbox = new KviTalHBox(this); hbox->setSpacing(0); @@ -1715,8 +1732,12 @@ KviClassEditorDialog::KviClassEditorDialog(QWidget * pParent, const QString & sz m_pNewClassButton = new QPushButton(hbox); m_pNewClassButton->setObjectName("newclassbutton"); - m_pNewClassButton->setText(__tr2qs_ctx("&Create Class","editor")); - m_pNewClassButton->setEnabled(false); + if (!bRenameMode) + { + m_pNewClassButton->setText(__tr2qs_ctx("&Create Class","editor")); + m_pNewClassButton->setEnabled(false); + } + else m_pNewClassButton->setText(__tr2qs_ctx("&Rename Class","editor")); QPushButton * pCancelButton = new QPushButton(hbox); pCancelButton->setObjectName("cancelButton"); |
