From 5cc6199846f7e797df52a9dad916f27bf3d6265d Mon Sep 17 00:00:00 2001 From: Noldor Date: Wed, 26 Aug 2009 15:32:22 +0000 Subject: Fixed kvs widgets on statusbar and some doc fixes git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@3428 17fca916-40b9-46aa-a4ea-0a15b648b75c --- src/modules/objects/class_tablewidget.cpp | 135 +++++++++++++++++++++++++++--- 1 file changed, 124 insertions(+), 11 deletions(-) (limited to 'src/modules/objects/class_tablewidget.cpp') diff --git a/src/modules/objects/class_tablewidget.cpp b/src/modules/objects/class_tablewidget.cpp index 19b8ca40f..f8c5d1852 100644 --- a/src/modules/objects/class_tablewidget.cpp +++ b/src/modules/objects/class_tablewidget.cpp @@ -40,26 +40,35 @@ #include #include #include +#include /* @doc:tablewidget @title: - tablewidget class + tablewidget class @type: class @short: - Tablewidget widget. + Tablewidget widget. @inherits: [class]object[/class] - [class]widget[/class] + [class]widget[/class] @description: - This widget provides a table widget. + This widget provides a table. @functions: - !fn: $setText([]) - !fn: $text() - !fn: $setHorizontalHeaderLabels() - !fn: $hideHorizontalHeaderLabels() - !fn: $setVerticalHeaderLabels() - !fn: $hideVerticalHeaderLabels() + !fn: $setText(,,[]) + !fn: $text(,) + !fn: $setHorizontalHeaderLabels() + !fn: $showHorizontalHeader() + !fn: $hideHorizontalHeader() + !fn: $setVerticalHeaderLabels() + !fn: $showVerticalHeader() + !fn: $hideVerticalHeader() + !fn: $setRowCount() + !fn: $rowCount() + !fn: $setColumnCount() + !fn: $columnCount() + !fn: $setCellWidget() + !fn: $setIcon() !fn: $clear() @signals: !sg: $clicked() @@ -83,16 +92,28 @@ KVSO_BEGIN_REGISTERCLASS(KviKvsObject_tablewidget,"tablewidget","widget") // Rows-Columns KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,setRowCount) KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,rowCount) + KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,currentRow) KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,setColumnCount) KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,columnCount) + KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,currentColumn) + KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,itemRowColAt) + + KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,hideRow) + KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,showRow) + KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,hideColumn) + KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,showColumn) // Item (text. icon, widget) KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,setText) + KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,setToolTip) KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,text) KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,setCellWidget) KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,setIcon) KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,clear) + KVSO_REGISTER_HANDLER(KviKvsObject_tablewidget,"itemEnteredEvent",itemEnteredEvent); + + KVSO_END_REGISTERCLASS(KviKvsObject_tablewidget) KVSO_BEGIN_CONSTRUCTOR(KviKvsObject_tablewidget,KviKvsObject_widget) @@ -106,7 +127,9 @@ KVSO_END_DESTRUCTOR(KviKvsObject_tablewidget) bool KviKvsObject_tablewidget::init(KviKvsRunTimeContext *,KviKvsVariantList *) { + SET_OBJECT(QTableWidget) + connect(widget(),SIGNAL(itemEntered(QTableWidgetItem *)),this,SLOT(slotItemEntered(QTableWidgetItem *))); return true; } KVSO_CLASS_FUNCTION(tablewidget,clear) @@ -206,13 +229,53 @@ KVSO_CLASS_FUNCTION(tablewidget,rowCount) c->returnValue()->setInteger(((QTableWidget *)widget())->rowCount()); return true; } +KVSO_CLASS_FUNCTION(tablewidget,currentRow) +{ + CHECK_INTERNAL_POINTER(widget()) + c->returnValue()->setInteger(((QTableWidget *)widget())->currentRow()); + return true; +} +KVSO_CLASS_FUNCTION(tablewidget,currentColumn) +{ + CHECK_INTERNAL_POINTER(widget()) + c->returnValue()->setInteger(((QTableWidget *)widget())->currentColumn()); + return true; +} KVSO_CLASS_FUNCTION(tablewidget,columnCount) { CHECK_INTERNAL_POINTER(widget()) c->returnValue()->setInteger(((QTableWidget *)widget())->columnCount()); return true; } - +KVSO_CLASS_FUNCTION(tablewidget,itemRowColAt) +{ + CHECK_INTERNAL_POINTER(widget()) + kvs_uint_t uX,uY; + KVSO_PARAMETERS_BEGIN(c) + KVSO_PARAMETER("uX",KVS_PT_UNSIGNEDINTEGER,0,uX) + KVSO_PARAMETER("uY",KVS_PT_UNSIGNEDINTEGER,0,uY) + KVSO_PARAMETERS_END(c) + KviKvsArray *pArray; + QTableWidgetItem *pItem=((QTableWidget *)widget())->itemAt(QPoint(uX,uY)); + pArray=new KviKvsArray; + pArray->set(0,new KviKvsVariant((kvs_int_t)pItem->row())); + pArray->set(1,new KviKvsVariant((kvs_int_t)pItem->column())); + c->returnValue()->setArray(pArray); + return true; +} +KVSO_CLASS_FUNCTION(tablewidget,setToolTip) +{ + CHECK_INTERNAL_POINTER(widget()) + QString szTooltip; + kvs_uint_t uX,uY; + KVSO_PARAMETERS_BEGIN(c) + KVSO_PARAMETER("uX",KVS_PT_UNSIGNEDINTEGER,0,uX) + KVSO_PARAMETER("uY",KVS_PT_UNSIGNEDINTEGER,0,uY) + KVSO_PARAMETER("tooltip",KVS_PT_STRING,0,szTooltip) + KVSO_PARAMETERS_END(c) + ((QTableWidget *)widget())->itemAt(uX,uY)->setToolTip(szTooltip); + return true; +} KVSO_CLASS_FUNCTION(tablewidget,setColumnCount) { CHECK_INTERNAL_POINTER(widget()) @@ -224,6 +287,44 @@ KVSO_CLASS_FUNCTION(tablewidget,setColumnCount) return true; } +KVSO_CLASS_FUNCTION(tablewidget,hideColumn) +{ + CHECK_INTERNAL_POINTER(widget()) + kvs_int_t iCol; + KVSO_PARAMETERS_BEGIN(c) + KVSO_PARAMETER("col",KVS_PT_UNSIGNEDINTEGER,0,iCol) + KVSO_PARAMETERS_END(c) + ((QTableWidget *)widget())->hideColumn(iCol); + return true; +} +KVSO_CLASS_FUNCTION(tablewidget,showColumn) +{ + CHECK_INTERNAL_POINTER(widget()) + kvs_int_t iCol; + KVSO_PARAMETERS_BEGIN(c) + KVSO_PARAMETER("col",KVS_PT_UNSIGNEDINTEGER,0,iCol) + KVSO_PARAMETERS_END(c) + ((QTableWidget *)widget())->showColumn(iCol); + return true; +}KVSO_CLASS_FUNCTION(tablewidget,hideRow) +{ + CHECK_INTERNAL_POINTER(widget()) + kvs_int_t iRow; + KVSO_PARAMETERS_BEGIN(c) + KVSO_PARAMETER("col",KVS_PT_UNSIGNEDINTEGER,0,iRow) + KVSO_PARAMETERS_END(c) + ((QTableWidget *)widget())->hideRow(iRow); + return true; +}KVSO_CLASS_FUNCTION(tablewidget,showRow) +{ + CHECK_INTERNAL_POINTER(widget()) + kvs_int_t iRow; + KVSO_PARAMETERS_BEGIN(c) + KVSO_PARAMETER("col",KVS_PT_UNSIGNEDINTEGER,0,iRow) + KVSO_PARAMETERS_END(c) + ((QTableWidget *)widget())->showRow(iRow); + return true; +} KVSO_CLASS_FUNCTION(tablewidget,setHorizontalHeaderLabels) { CHECK_INTERNAL_POINTER(widget()) @@ -320,8 +421,20 @@ KVSO_CLASS_FUNCTION(tablewidget,showVerticalHeader) ((QTableWidget *)widget())->verticalHeader()->show(); return true; } +void KviKvsObject_tablewidget::slotItemEntered(QTableWidgetItem * i) +{ + // if (!i) callFunction(this,"itecurrentItemChangeEvent",0,0); + debug("entered"); + KviKvsVariantList params(new KviKvsVariant((kvs_int_t)i->row()),new KviKvsVariant((kvs_int_t)i->column())); + callFunction(this,"itemEnteredEvent",0,¶ms); +} +KVSO_CLASS_FUNCTION(tablewidget,itemEnteredEvent) +{ + emitSignal("itemEntered",c,c->params()); + return true; +} #ifndef COMPILE_USE_STANDALONE_MOC_SOURCES #include "m_class_tablewidget.moc" #endif //COMPILE_USE_STANDALONE_MOC_SOURCES -- cgit v1.3.1-10-gc9f91