diff options
| author | 2008-04-15 20:33:46 +0000 | |
|---|---|---|
| committer | 2008-04-15 20:33:46 +0000 | |
| commit | 2659342f5853915692b47745ef4365c339255c02 (patch) | |
| tree | 536bdf2c01ffd19f07884443fec35b5a925af4b4 /src/modules/objects | |
| parent | probably fix for cmake bug reported by |Fiona| (diff) | |
| download | KVIrc-2659342f5853915692b47745ef4365c339255c02.tar.gz KVIrc-2659342f5853915692b47745ef4365c339255c02.tar.bz2 KVIrc-2659342f5853915692b47745ef4365c339255c02.zip | |
fix in class listbox (now based on QListWidget)
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@1487 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/objects')
| -rw-r--r-- | src/modules/objects/class_listbox.cpp | 38 | ||||
| -rw-r--r-- | src/modules/objects/class_listbox.h | 4 |
2 files changed, 33 insertions, 9 deletions
diff --git a/src/modules/objects/class_listbox.cpp b/src/modules/objects/class_listbox.cpp index 5f56dd4e9..ccdb3b6d8 100644 --- a/src/modules/objects/class_listbox.cpp +++ b/src/modules/objects/class_listbox.cpp @@ -106,6 +106,7 @@ KVSO_BEGIN_REGISTERCLASS(KviKvsObject_listbox,"listbox","widget") KVSO_REGISTER_HANDLER(KviKvsObject_listbox,"insertItem", functioninsertItem) + KVSO_REGISTER_HANDLER(KviKvsObject_listbox,"insertWidgetItem", functioninsertWidgetItem) KVSO_REGISTER_HANDLER(KviKvsObject_listbox,"changeItem", functionchangeItem) KVSO_REGISTER_HANDLER(KviKvsObject_listbox,"removeItem", functionremoveItem) KVSO_REGISTER_HANDLER(KviKvsObject_listbox,"clear", functionclear) @@ -223,7 +224,11 @@ bool KviKvsObject_listbox::functioncount(KviKvsObjectFunctionCall *c) } bool KviKvsObject_listbox::functioncurrentText(KviKvsObjectFunctionCall *c) { - if (widget()) c->returnValue()->setString(((QListWidget *)widget())->currentItem()->text().toLocal8Bit().data()); + QString text; + QListWidgetItem *item=((QListWidget *)widget())->currentItem(); + if (item) text=item->text(); + else text=""; + if (widget()) c->returnValue()->setString(text); return true; } bool KviKvsObject_listbox::functioncurrentItem(KviKvsObjectFunctionCall *c) @@ -289,18 +294,37 @@ bool KviKvsObject_listbox::functionselectionMode(KviKvsObjectFunctionCall *c) } return true; } -/* -bool KviKvsObject_listbox::functionisSelected(KviKvsObjectFunctionCall *c) + +bool KviKvsObject_listbox::functioninsertWidgetItem(KviKvsObjectFunctionCall *c) { + KviKvsObject *pObject; + kvs_int_t iIndex; + kvs_hobject_t hWid; - kvs_uint_t iIndex; KVSO_PARAMETERS_BEGIN(c) - KVSO_PARAMETER("index",KVS_PT_UNSIGNEDINTEGER,0,iIndex) + KVSO_PARAMETER("widget",KVS_PT_HOBJECT,0,hWid) + KVSO_PARAMETER("index",KVS_PT_INT,0,iIndex) KVSO_PARAMETERS_END(c) - if(widget())c->returnValue()->setBoolean(((QListWidget *)widget())->isSelected(iIndex)); + + pObject=KviKvsKernel::instance()->objectController()->lookupObject(hWid); + if(pObject==this) + { + c->warning(__tr2qs("Can't insert the listbox itelf!")); + return true; + } + + if(!pObject->object()->isWidgetType()) + { + c->warning(__tr2qs("Can't insert a non-widget object")); + return true; + } + + QWidget *wi=((QWidget *)(pObject->object())); + QListWidgetItem *item=((QListWidget *)widget())->item(iIndex); + ((QListWidget *)widget())->setItemWidget(item,wi); return true; } - +/* bool KviKvsObject_listbox::functionsetSelected(KviKvsObjectFunctionCall *c) { bool bSel; diff --git a/src/modules/objects/class_listbox.h b/src/modules/objects/class_listbox.h index 13c432cfb..59a1081dc 100644 --- a/src/modules/objects/class_listbox.h +++ b/src/modules/objects/class_listbox.h @@ -54,8 +54,8 @@ protected: bool functionclear(KviKvsObjectFunctionCall *c); bool functionsetSelectionMode(KviKvsObjectFunctionCall *c); bool functionselectionMode(KviKvsObjectFunctionCall *c); - /*bool functionsetSelected(KviKvsObjectFunctionCall *c); - bool functionisSelected(KviKvsObjectFunctionCall *c); + bool functioninsertWidgetItem(KviKvsObjectFunctionCall *c); + /*bool functionisSelected(KviKvsObjectFunctionCall *c); */ bool functioncurrentItemChangeEvent(KviKvsObjectFunctionCall *c); bool functiononItemEvent(KviKvsObjectFunctionCall *c); |
