aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules
diff options
context:
space:
mode:
authorGravatar Noldor2010-06-02 14:25:26 +0000
committerGravatar Noldor2010-06-02 14:25:26 +0000
commitc15c0df97de7f4ee678716c1c8fee1abcee4b0df (patch)
treec66ba4be5d8f593aae7f13d9a60891b26b006f1b /src/modules
parentfixed multiline toggle shortcut (diff)
downloadKVIrc-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/modules')
-rw-r--r--src/modules/classeditor/classeditor.cpp80
-rw-r--r--src/modules/classeditor/classeditor.h2
-rw-r--r--src/modules/objects/class_tablewidget.cpp26
-rw-r--r--src/modules/objects/class_tablewidget.h1
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);