diff options
| author | 2010-06-02 14:25:26 +0000 | |
|---|---|---|
| committer | 2010-06-02 14:25:26 +0000 | |
| commit | c15c0df97de7f4ee678716c1c8fee1abcee4b0df (patch) | |
| tree | c66ba4be5d8f593aae7f13d9a60891b26b006f1b /src | |
| parent | fixed multiline toggle shortcut (diff) | |
| download | KVIrc-c15c0df97de7f4ee678716c1c8fee1abcee4b0df.tar.gz KVIrc-c15c0df97de7f4ee678716c1c8fee1abcee4b0df.tar.bz2 KVIrc-c15c0df97de7f4ee678716c1c8fee1abcee4b0df.zip | |
Some fixes in classeditor + code improvements in tablewidget kvs class
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@4416 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src')
| -rw-r--r-- | src/modules/classeditor/classeditor.cpp | 80 | ||||
| -rw-r--r-- | src/modules/classeditor/classeditor.h | 2 | ||||
| -rw-r--r-- | src/modules/objects/class_tablewidget.cpp | 26 | ||||
| -rw-r--r-- | src/modules/objects/class_tablewidget.h | 1 |
4 files changed, 71 insertions, 38 deletions
diff --git a/src/modules/classeditor/classeditor.cpp b/src/modules/classeditor/classeditor.cpp index 2342784b2..cae703fa8 100644 --- a/src/modules/classeditor/classeditor.cpp +++ b/src/modules/classeditor/classeditor.cpp @@ -69,6 +69,7 @@ KviClassEditorTreeWidgetItem::KviClassEditorTreeWidgetItem(QTreeWidget * pTreeWi : QTreeWidgetItem(pTreeWidget), KviHeapObject(), m_eType(eType) { setName(szName); + m_szInheritsClassName=""; m_cPos=0; m_bInternal=false; if(eType==KviClassEditorTreeWidgetItem::Namespace) setIcon(0,QIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_NAMESPACE)))); @@ -80,6 +81,7 @@ KviClassEditorTreeWidgetItem::KviClassEditorTreeWidgetItem(KviClassEditorTreeWid : QTreeWidgetItem(pParentItem), m_eType(eType) { setName(szName); + m_szInheritsClassName=""; m_bInternal=false; m_cPos=0; setFlags(Qt::ItemIsEditable|Qt::ItemIsEnabled|Qt::ItemIsSelectable); @@ -472,10 +474,11 @@ void KviClassEditor::renameFunction() pFunction->setName(szNewFunctionName); pFunction->setInternalFunction(bInternal); pParentClass->setClassNotBuilt(true); - KviPointerList<KviClassEditorTreeWidgetItem> pInheritedClasses; - searchInheritedClasses(szClassName,pInheritedClasses); - for(unsigned int i=0;i<pInheritedClasses.count();i++) - pInheritedClasses.at(i)->setClassNotBuilt(true); + KviPointerList<KviClassEditorTreeWidgetItem> lInheritedClasses; + lInheritedClasses.setAutoDelete(false); + searchInheritedClasses(szClassName,lInheritedClasses); + for(unsigned int i=0;i<lInheritedClasses.count();i++) + lInheritedClasses.at(i)->setClassNotBuilt(true); activateItem(pFunction); } @@ -547,13 +550,13 @@ void KviClassEditor::renameClass(KviClassEditorTreeWidgetItem *pClassItem) m_pClasses->insert(szNewClassName,pClassItem); pClassItem->setInheritsClass(szNewInheritsClassName); pClassItem->setClassNotBuilt(true); - KviPointerList<KviClassEditorTreeWidgetItem> pInheritedClasses; - searchInheritedClasses(szClassName,pInheritedClasses); - for(unsigned int i=0;i<pInheritedClasses.count();i++) + KviPointerList<KviClassEditorTreeWidgetItem> lInheritedClasses; + searchInheritedClasses(szClassName,lInheritedClasses); + for(unsigned int i=0;i<lInheritedClasses.count();i++) { - pInheritedClasses.at(i)->setClassNotBuilt(true); - pInheritedClasses.at(i)->setExpanded(true); - pInheritedClasses.at(i)->setInheritsClass(szNewClassName); + lInheritedClasses.at(i)->setClassNotBuilt(true); + lInheritedClasses.at(i)->setExpanded(true); + lInheritedClasses.at(i)->setInheritsClass(szNewClassName); } if (pNewItem) { @@ -625,15 +628,15 @@ void KviClassEditor::renameNamespace(KviClassEditorTreeWidgetItem *pOldNamespace KviPointerHashTableEntry<QString,KviClassEditorTreeWidgetItem> *entry=m_pClasses->findRef(pList.at(i)); if (entry) { - KviPointerList<KviClassEditorTreeWidgetItem> pInheritedClasses; + KviPointerList<KviClassEditorTreeWidgetItem> lInheritedClasses; QString szOldName = entry->key(); QString szNewName = buildFullClassName(pList.at(i)); - searchInheritedClasses(szOldName,pInheritedClasses); - for(unsigned int j=0;j<pInheritedClasses.count();j++) + searchInheritedClasses(szOldName,lInheritedClasses); + for(unsigned int j=0;j<lInheritedClasses.count();j++) { - pInheritedClasses.at(j)->setClassNotBuilt(true); - pInheritedClasses.at(j)->setExpanded(true); - pInheritedClasses.at(j)->setInheritsClass(szNewName); + lInheritedClasses.at(j)->setClassNotBuilt(true); + lInheritedClasses.at(j)->setExpanded(true); + lInheritedClasses.at(j)->setInheritsClass(szNewName); } m_pClasses->removeRef(pList.at(i)); m_pClasses->insert(szNewName,pList.at(i)); @@ -1147,13 +1150,13 @@ void KviClassEditor::removeItemChildren(KviClassEditorTreeWidgetItem *it) { if(it->isClass()) { - KviPointerList<KviClassEditorTreeWidgetItem> pInheritedClasses; - searchInheritedClasses(buildFullClassName(it),pInheritedClasses); - for(unsigned int i=0;i<pInheritedClasses.count();i++) + KviPointerList<KviClassEditorTreeWidgetItem> lInheritedClasses; + searchInheritedClasses(buildFullClassName(it),lInheritedClasses); + for(unsigned int i=0;i<lInheritedClasses.count();i++) { - pInheritedClasses.at(i)->setClassNotBuilt(true); - pInheritedClasses.at(i)->setExpanded(true); - pInheritedClasses.at(i)->setInheritsClass("object"); + lInheritedClasses.at(i)->setClassNotBuilt(true); + lInheritedClasses.at(i)->setExpanded(true); + lInheritedClasses.at(i)->setInheritsClass("object"); } } @@ -1180,8 +1183,9 @@ bool KviClassEditor::removeItem(KviClassEditorTreeWidgetItem *it,bool * pbYesToA QString szMsg; QString szName = it->name(); - if(!*pbYesToAll)saveLastEditedItem(); + if(!*pbYesToAll) { + saveLastEditedItem(); if(it->isClass()) { KviQString::sprintf(szMsg,__tr2qs_ctx("Do you really want to remove the class \"%Q\" ?","editor"),&szName); @@ -1241,12 +1245,14 @@ bool KviClassEditor::removeItem(KviClassEditorTreeWidgetItem *it,bool * pbYesToA { KviClassEditorTreeWidgetItem* pClass = (KviClassEditorTreeWidgetItem*)it->parent(); pClass->setClassNotBuilt(true); - KviPointerList<KviClassEditorTreeWidgetItem> pInheritedClasses; - searchInheritedClasses(pClass->name(),pInheritedClasses); - for(unsigned int i=0;i<pInheritedClasses.count();i++) + KviPointerList<KviClassEditorTreeWidgetItem> lInheritedClasses; + debug("class name %s",pClass->name().toUtf8().data()); + searchInheritedClasses(pClass->name(),lInheritedClasses); + for(unsigned int i=0;i<lInheritedClasses.count();i++) { - pInheritedClasses.at(i)->setClassNotBuilt(true); - pInheritedClasses.at(i)->setExpanded(true); + lInheritedClasses.at(i)->setClassNotBuilt(true); + lInheritedClasses.at(i)->setInheritsClass(pClass->name()); + lInheritedClasses.at(i)->setExpanded(true); } } delete it; @@ -1487,17 +1493,17 @@ void KviClassEditor::build() bErrorWhilecompiling=true; QString szError=__tr2qs_ctx("Unable to compile class: ","editor"); szError+=szFullClassName+"\n"; - KviPointerList<KviClassEditorTreeWidgetItem> pInheritedClasses; - searchInheritedClasses(szFullClassName,pInheritedClasses); - if (pInheritedClasses.count()) + KviPointerList<KviClassEditorTreeWidgetItem> lInheritedClasses; + searchInheritedClasses(szFullClassName,lInheritedClasses); + if (lInheritedClasses.count()) { szError+=__tr2qs_ctx("These Inherited classes will be not compiled too:","editor"); szError+="\n"; - for(unsigned int j=0;j<pInheritedClasses.count();j++) + for(unsigned int j=0;j<lInheritedClasses.count();j++) { - szError+=buildFullClassName(pInheritedClasses.at(j))+"\n"; - pInheritedClasses.at(j)->setClassNotBuilt(true); - pSkipClasses.append(pInheritedClasses.at(j)); + szError+=buildFullClassName(lInheritedClasses.at(j))+"\n"; + lInheritedClasses.at(j)->setClassNotBuilt(true); + pSkipClasses.append(lInheritedClasses.at(j)); } } QMessageBox::critical(this,__tr2qs_ctx("Compilation error - KVIrc","editor"),szError, @@ -1600,12 +1606,12 @@ void KviClassEditor::saveNotBuiltClasses() cfg.sync(); } -void KviClassEditor::searchInheritedClasses(const QString szClass,KviPointerList<KviClassEditorTreeWidgetItem> & pInheritedClasses) +void KviClassEditor::searchInheritedClasses(const QString szClass,KviPointerList<KviClassEditorTreeWidgetItem> & lInheritedClasses) { KviPointerHashTableIterator<QString,KviClassEditorTreeWidgetItem> it (*m_pClasses); while(it.current()) { - if (KviQString::equalCI(szClass,it.current()->InheritsClass())) pInheritedClasses.append(it.current()); + if (KviQString::equalCI(szClass,it.current()->InheritsClass())) lInheritedClasses.append(it.current()); ++it; } } diff --git a/src/modules/classeditor/classeditor.h b/src/modules/classeditor/classeditor.h index 59849a0a1..0ddb536d9 100644 --- a/src/modules/classeditor/classeditor.h +++ b/src/modules/classeditor/classeditor.h @@ -187,7 +187,7 @@ protected: bool askForClassName(QString &szClassName,QString &szInheritsClassName,bool bEdit); bool askForNamespaceName(const QString &szAction,const QString &szText,const QString &szInitialText, QString &szNameBuffer); bool askForFunction(QString &szFunctionName,bool * bInternal, const QString &szClassName, bool bRenameMode); - void searchInheritedClasses(const QString szClass,KviPointerList<KviClassEditorTreeWidgetItem> & pInheritsedClasses); + void searchInheritedClasses(const QString szClass,KviPointerList<KviClassEditorTreeWidgetItem> & lInheritsedClasses); bool classExists(QString &szFullItemName); void renameClass(KviClassEditorTreeWidgetItem *pClassItem); void renameNamespace(KviClassEditorTreeWidgetItem *pNamespaceItem); diff --git a/src/modules/objects/class_tablewidget.cpp b/src/modules/objects/class_tablewidget.cpp index 1d4bfa015..48bd9252d 100644 --- a/src/modules/objects/class_tablewidget.cpp +++ b/src/modules/objects/class_tablewidget.cpp @@ -84,7 +84,11 @@ const char * const itemflags_tbl[] = { This widget provides a table. @functions: !fn: $setText(<row:integer>,<col:integer>,[<text:string>]) + Sets the contents of the cell pointeid by row and col to text. + !fn: $setNumber(<row:integer>,<col:integer>,[<number:integer>]). + Sets the contents of the cell pointeid by row and col to number. !fn: <string> $text(<row:integer>,<col:integer>) + Returns the text of the cell pointed by row and col. !fn: $setHorizontalHeaderLabels(<string array>) !fn: $showHorizontalHeader() !fn: $hideHorizontalHeader() @@ -133,6 +137,7 @@ KVSO_BEGIN_REGISTERCLASS(KviKvsObject_tablewidget,"tablewidget","widget") // Item (text. icon, widget) KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,setText) + KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,setNumber) KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,setToolTip) KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,text) KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,setCellWidget) @@ -194,6 +199,27 @@ KVSO_CLASS_FUNCTION(tablewidget,setText) item->setText(szText); return true; } +KVSO_CLASS_FUNCTION(tablewidget,setNumber) +{ + CHECK_INTERNAL_POINTER(widget()) + kvs_int_t iCol,iRow,iNumber; + QString szText; + KVSO_PARAMETERS_BEGIN(c) + KVSO_PARAMETER("row",KVS_PT_UNSIGNEDINTEGER,0,iRow) + KVSO_PARAMETER("col",KVS_PT_UNSIGNEDINTEGER,0,iCol) + KVSO_PARAMETER("number",KVS_PT_INT,0,iNumber) + KVSO_PARAMETERS_END(c) + if(iRow>=((QTableWidget *)widget())->rowCount() || iRow>=((QTableWidget *)widget())->rowCount()) + c->warning(__tr2qs_ctx("Item out of the tablewidget size","objects")); + QTableWidgetItem *item=((QTableWidget *)widget())->item(iRow,iCol); + if(!item) + { + item=new QTableWidgetItem(); + ((QTableWidget *)widget())->setItem(iRow,iCol,item); + } + item->setData(0,(int)iNumber); + return true; +} KVSO_CLASS_FUNCTION(tablewidget,setIcon) { kvs_int_t iCol,iRow; diff --git a/src/modules/objects/class_tablewidget.h b/src/modules/objects/class_tablewidget.h index de81eeffc..2afceb0be 100644 --- a/src/modules/objects/class_tablewidget.h +++ b/src/modules/objects/class_tablewidget.h @@ -67,6 +67,7 @@ public: virtual bool init(KviKvsRunTimeContext * pContext,KviKvsVariantList *pParams); bool setText(KviKvsObjectFunctionCall *c); + bool setNumber(KviKvsObjectFunctionCall *c); bool setToolTip(KviKvsObjectFunctionCall *c); bool text(KviKvsObjectFunctionCall *c); bool setIcon(KviKvsObjectFunctionCall *c); |
