diff options
| author | 2011-01-01 20:19:56 +0000 | |
|---|---|---|
| committer | 2011-01-01 20:19:56 +0000 | |
| commit | c601b5a27f74b16158adafe429faefbe573e64a2 (patch) | |
| tree | a3cde3206a45628f8ac86e8dfbdab70b20c3a831 /src/modules/objects/class_tablewidget.cpp | |
| parent | probable compilation fix for rijndaled/crypto++ (diff) | |
| download | KVIrc-c601b5a27f74b16158adafe429faefbe573e64a2.tar.gz KVIrc-c601b5a27f74b16158adafe429faefbe573e64a2.tar.bz2 KVIrc-c601b5a27f74b16158adafe429faefbe573e64a2.zip | |
The big rename for modules. Still some details remaining.
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@5284 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/objects/class_tablewidget.cpp')
| -rw-r--r-- | src/modules/objects/class_tablewidget.cpp | 796 |
1 files changed, 0 insertions, 796 deletions
diff --git a/src/modules/objects/class_tablewidget.cpp b/src/modules/objects/class_tablewidget.cpp deleted file mode 100644 index df2428ede..000000000 --- a/src/modules/objects/class_tablewidget.cpp +++ /dev/null @@ -1,796 +0,0 @@ -//============================================================================= -// -// File : class_tablewidget.cpp -// Creation date : Wed 04 Feb 2009 09:30:05 CEST by Carbone Alessandro -// -// This file is part of the KVIrc irc client distribution -// Copyright (C) 2000-2010 Szymon Stefanek (pragma at kvirc dot net) -// -// This program is FREE software. You can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your opinion) any later version. -// -// This program is distributed in the HOPE that it will be USEFUL, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, write to the Free Software Foundation, -// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -// -//============================================================================= - -#include "class_tablewidget.h" -#include "class_painter.h" -#include "class_pixmap.h" - -#include "kvi_debug.h" -#include "KviApplication.h" -#include "KviLocale.h" -#include "KviError.h" -#include "KviIconManager.h" -#include "KviFile.h" -#include "KviKvsArrayCast.h" - -#include <QTableWidget> -#include <QHeaderView> -#include <QPainter> -#include <QPrinter> -#include <QApplication> -#include <QPoint> -#include <QPaintEvent> -#include <QTableWidgetItem> -#include <QRect> - -const int item_flags[] = { - Qt::NoItemFlags, - Qt::ItemIsSelectable, - Qt::ItemIsEditable, - Qt::ItemIsDragEnabled, - Qt::ItemIsDropEnabled, - Qt::ItemIsUserCheckable, - Qt::ItemIsEnabled, - Qt::ItemIsTristate -}; - -const char * const itemflags_tbl[] = { - "noitemflag", - "selectable", - "editable", - "dragEnabled", - "dropEnabled", - "userCheckable", - "enabled", - "tristate" -}; - -#define itemflags_num (sizeof(itemflags_tbl) / sizeof(itemflags_tbl[0])) - -/* - @doc:tablewidget - @title: - tablewidget class - @type: - class - @short: - Tablewidget widget. - @inherits: - [class]object[/class] - [class]widget[/class] - @description: - This widget provides a table. - @functions: - !fn: $setText(<row:uint>,<col:uint>,[<text:string>]) - Sets the contents of the cell pointeid by row and col to text. - !fn: $setTooltip(<row:uint>,<col:uint>,[<text:string>]) - Sets the tooltip of the cell pointeid by row and col to text. - !fn: $setNumber(<row:uint>,<col:uint>,[<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>) - Sets the horizontal header labels using labels. - !fn: $showHorizontalHeader() - Shows the horizontal header. - !fn: $hideHorizontalHeader() - Hides the horizontal header. - !fn: $setVerticalHeaderLabels(<string array>) - Sets the vertical header labels using labels. - !fn: $showVerticalHeader() - Shows the vertical header. - !fn: $hideVerticalHeader() - Hides the vertical header. - !fn: $setRowCount(<integer>) - Sets the number of rows in the table. - !fn: <integer> $rowCount() - Returns the number of rows in the table. - !fn: <integer> $currentRow() - Returns the current row. - Useful in the [classfnc]customContextMenuRequestedEvent[/classfnc]. - !fn: $insertRow(<row:uinteger>) - Insert an empty row at <row>. - !fn: $removeRow(<row:uinteger>) - Remove the row at <row> and all its items from the table. - !fn: $insertColumn(<column:uinteger>) - Insert an empty column at <column>. - !fn: $removeColumn(<column:uinteger>) - Remove the column at <column> and all its items from the table. - !fn: $setColumnCount(<uinteger>) - Sets the number of columns in the table. - !fn: <integer> $columnCount() - Returns the number of columns in the table. - !fn: <integer> $currentRow() - Returns the current column. - Useful in the [classfnc]customContextMenuRequestedEvent[/classfnc] - !fn: $setFlag(<row:uint>,<col:uint>,<flag1:string>, <flag2:string>, ...) - Sets the flags for the cell pointed by row and col to the given flags. - These determine whether the cell can be selected or modified. - Supported flags are: - - noitemflag : no flag sets; - - selectable : cell is selecatble; - - editable : cell is editable; - - dragEnabled : cell can dragged; - - dropEnabled : cell can used as drop target; - - userCheckable : cell is checkable; - - enabled :cell is enabled; - - tristate : cell is checkable with three separate states. - !fn: $setCellWidget(<row:uint>,<column:uint>,<widget:hobject>) - Sets the given widget to be displayed in the cell in the given row and column, passing the ownership of the widget to the table. - !fn: $setIcon(<row:uint>,<column:uint>,<icon:imageid or hobject>) - Sets the cell icon pointed by <row>,<column>. - Icon parameter can be a standard KVIrc [doc:image_id]image identifier[/doc] icon or a KVS pixmap's object. - !fn: $hideRow(<row:uint>) - Hides the row <row>. - !fn: $showRow(<row:uint>) - Shows the row <row>. - !fn: $hideColumn(<col:uint>) - Hides the column <col>. - !fn: $showColumn(<col:uint>) - Shows the column <col>. - !fn: $clear() - Clears the table. - !fn: <row,col> $itemEnteredEvent() - This event is triggered when the mouse cursor enters an cell. - !fn: <row,col> $cellActivatedEvent() - This event is triggered when the cell specified by row and column has been activated - !fn: <row,col> $cellDoubleClickedEvent() - This event is triggered whenever a cell in the table is double clicked. - !fn: $paintCellEvent(<painter:hobject>,<row,uint>,<col:uint>,<cell_width:uint>,<cell_height:uint>) - This event handler can be reimplemented to repaint cells. - The framework will pass the row/col coordinates, cell's width and height, and, as parameter, a [class]painter[/class]object. - You don't need to begin/end/delete the painter. - !fn: $sizeHintCellRequestEvent() - This event handler can be reimplemented to pass a custom size hint for this cell to the table layout - !fn; $resizeRowsToContents() - This function will try to redistribute the available space according to the space requirement of each row - !fn; $resizeColumnsToContents() - This function will try to redistribute the available space according to the space requirement of each column - @signals: - !sg: $clicked() - This signal is emitted by the default implementation of [classfnc]$clickEvent[/classfnc](). - -*/ - - -KVSO_BEGIN_REGISTERCLASS(KviKvsObject_tablewidget,"tablewidget","widget") - - // Horizontal Header - KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,setHorizontalHeaderLabels) - KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,hideHorizontalHeader) - KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,hideVerticalHeader) - - // Vertical Header - KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,setVerticalHeaderLabels) - KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,showHorizontalHeader) - KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,showVerticalHeader) - - // Rows-Columns - KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,setRowCount) - KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,insertRow) - KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,insertColumn) - KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,removeRow) - KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,removeColumn) - - 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) - - KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,resizeRowsToContents) - KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,resizeColumnsToContents) - - // 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) - KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,setIcon) - KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,clear) - KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_tablewidget,setItemFlags); - - KVSO_REGISTER_HANDLER(KviKvsObject_tablewidget,"itemEnteredEvent",itemEnteredEvent); - KVSO_REGISTER_HANDLER(KviKvsObject_tablewidget,"cellActivatedEvent",cellActivatedEvent); - KVSO_REGISTER_HANDLER(KviKvsObject_tablewidget,"cellDoubleClickedEvent",cellDoubleClickedEvent); - KVSO_REGISTER_STANDARD_TRUERETURN_HANDLER(KviKvsObject_tablewidget,"paintCellEvent") - KVSO_REGISTER_STANDARD_NOTHINGRETURN_HANDLER(KviKvsObject_tablewidget,"sizeHintCellRequestEvent") - - - -KVSO_END_REGISTERCLASS(KviKvsObject_tablewidget) - -KVSO_BEGIN_CONSTRUCTOR(KviKvsObject_tablewidget,KviKvsObject_widget) - -KVSO_END_CONSTRUCTOR(KviKvsObject_tablewidget) - - -KVSO_BEGIN_DESTRUCTOR(KviKvsObject_tablewidget) -/*if (m_pCellItemDelegate) -{ - delete m_pCellItemDelegate; - m_pCellItemDelegate=0; -}*/ -KVSO_END_DESTRUCTOR(KviKvsObject_tablewidget) - -bool KviKvsObject_tablewidget::init(KviKvsRunTimeContext *c,KviKvsVariantList *) -{ - - SET_OBJECT(QTableWidget) - m_pCellItemDelegate=new KviCellItemDelegate(((QTableWidget *)widget()),this); - - m_pContext=c; - ((QTableWidget *)widget())->setItemDelegate(m_pCellItemDelegate); - ((QTableWidget *)widget())->verticalHeader()->resizeSections(QHeaderView::Custom ); - ((QTableWidget *)widget())->horizontalHeader()->resizeSections(QHeaderView::Custom ); - - connect(widget(),SIGNAL(itemEntered(QTableWidgetItem *)),this,SLOT(slotItemEntered(QTableWidgetItem *))); - connect(widget(),SIGNAL(cellActivated(int,int)),this,SLOT(cellActivated(int,int))); - connect(widget(),SIGNAL(cellDoubleClicked(int,int)),this,SLOT(cellDoubleClicked(int,int))); - return true; -} - -KVSO_CLASS_FUNCTION(tablewidget,clear) -{ - CHECK_INTERNAL_POINTER(widget()) - ((QTableWidget *)widget())->clear(); - return true; -} - -KVSO_CLASS_FUNCTION(tablewidget,resizeRowsToContents) -{ - CHECK_INTERNAL_POINTER(widget()) - //qDebug("resize row to contents"); - - ((QTableWidget *)widget())->resizeRowsToContents(); - return true; -} - -KVSO_CLASS_FUNCTION(tablewidget,resizeColumnsToContents) -{ - CHECK_INTERNAL_POINTER(widget()) - //qDebug("resize coluns to contents"); - ((QTableWidget *)widget())->resizeColumnsToContents(); - return true; -} - -KVSO_CLASS_FUNCTION(tablewidget,setText) -{ - CHECK_INTERNAL_POINTER(widget()) - kvs_uint_t uCol,uRow; - QString szText; - KVSO_PARAMETERS_BEGIN(c) - KVSO_PARAMETER("row",KVS_PT_UNSIGNEDINTEGER,0,uRow) - KVSO_PARAMETER("col",KVS_PT_UNSIGNEDINTEGER,0,uCol) - KVSO_PARAMETER("text",KVS_PT_STRING,0,szText) - KVSO_PARAMETERS_END(c) - if(uRow >= (uint)((QTableWidget *)widget())->rowCount() || uRow >= (uint)((QTableWidget *)widget())->rowCount()) - c->warning(__tr2qs_ctx("Item out of the tablewidget size","objects")); - QTableWidgetItem * pItem = ((QTableWidget *)widget())->item(uRow,uCol); - if(!pItem) - { - pItem = new QTableWidgetItem(); - ((QTableWidget *)widget())->setItem(uRow,uCol,pItem); - } - pItem->setText(szText); - return true; -} - -KVSO_CLASS_FUNCTION(tablewidget,setNumber) -{ - CHECK_INTERNAL_POINTER(widget()) - kvs_uint_t uCol,uRow; - kvs_int_t iNumber; - QString szText; - KVSO_PARAMETERS_BEGIN(c) - KVSO_PARAMETER("row",KVS_PT_UNSIGNEDINTEGER,0,uRow) - KVSO_PARAMETER("col",KVS_PT_UNSIGNEDINTEGER,0,uCol) - KVSO_PARAMETER("number",KVS_PT_INT,0,iNumber) - KVSO_PARAMETERS_END(c) - if(uRow >= (uint)((QTableWidget *)widget())->rowCount() || uRow >= (uint)((QTableWidget *)widget())->rowCount()) - c->warning(__tr2qs_ctx("Item out of the tablewidget size","objects")); - QTableWidgetItem * pItem = ((QTableWidget *)widget())->item(uRow,uCol); - if(!pItem) - { - pItem = new QTableWidgetItem(); - ((QTableWidget *)widget())->setItem(uRow,uCol,pItem); - } - pItem->setData(0,(int)iNumber); - return true; -} - -KVSO_CLASS_FUNCTION(tablewidget,insertRow) -{ - CHECK_INTERNAL_POINTER(widget()) - kvs_uint_t uRow; - KVSO_PARAMETERS_BEGIN(c) - KVSO_PARAMETER("row",KVS_PT_UNSIGNEDINTEGER,0,uRow) - KVSO_PARAMETERS_END(c) - ((QTableWidget *)widget())->insertRow(uRow); - return true; -} - -KVSO_CLASS_FUNCTION(tablewidget,insertColumn) -{ - CHECK_INTERNAL_POINTER(widget()) - kvs_uint_t uCol; - KVSO_PARAMETERS_BEGIN(c) - KVSO_PARAMETER("row",KVS_PT_UNSIGNEDINTEGER,0,uCol) - KVSO_PARAMETERS_END(c) - ((QTableWidget *)widget())->insertColumn(uCol); - return true; -} -KVSO_CLASS_FUNCTION(tablewidget,removeRow) -{ - CHECK_INTERNAL_POINTER(widget()) - kvs_uint_t uRow; - KVSO_PARAMETERS_BEGIN(c) - KVSO_PARAMETER("row",KVS_PT_UNSIGNEDINTEGER,0,uRow) - KVSO_PARAMETERS_END(c) - ((QTableWidget *)widget())->removeRow(uRow); - return true; -} - -KVSO_CLASS_FUNCTION(tablewidget,removeColumn) -{ - CHECK_INTERNAL_POINTER(widget()) - kvs_uint_t uCol; - KVSO_PARAMETERS_BEGIN(c) - KVSO_PARAMETER("row",KVS_PT_UNSIGNEDINTEGER,0,uCol) - KVSO_PARAMETERS_END(c) - ((QTableWidget *)widget())->removeColumn(uCol); - return true; -} - - -KVSO_CLASS_FUNCTION(tablewidget,setIcon) -{ - kvs_uint_t uCol,uRow; - KviKvsObject *obPixmap; - kvs_hobject_t obHpixmap; - KviKvsVariant * vPixmap; - KVSO_PARAMETERS_BEGIN(c) - KVSO_PARAMETER("row",KVS_PT_UNSIGNEDINTEGER,0,uRow) - KVSO_PARAMETER("col",KVS_PT_UNSIGNEDINTEGER,0,uCol) - KVSO_PARAMETER("icon",KVS_PT_VARIANT,0,vPixmap) - KVSO_PARAMETERS_END(c) - QPixmap * pix = 0; - if(vPixmap->isHObject()) - { - vPixmap->asHObject(obHpixmap); - obPixmap=KviKvsKernel::instance()->objectController()->lookupObject(obHpixmap); - if(!obPixmap->inheritsClass("pixmap")) - { - c->warning(__tr2qs_ctx("Pixmap object or image Id required","objects")); - return true; - } - pix=((KviKvsObject_pixmap *)obPixmap)->getPixmap(); - } else { - QString szPix; - vPixmap->asString(szPix); - pix=g_pIconManager->getImage(szPix); - if(!pix) - { - c->warning(__tr2qs_ctx("Error occured: the suitable file '%Q' is not of the correct format or it is not a valid icon number.","objects"),&szPix); - return true; - } - } - QTableWidgetItem * pItem = ((QTableWidget *)widget())->item(uRow,uCol); - if(!pItem) - { - pItem = new QTableWidgetItem(); - ((QTableWidget *)widget())->setItem(uRow,uCol,pItem); - } - pItem->setIcon(QIcon(*pix)); - return true; -} - -KVSO_CLASS_FUNCTION(tablewidget,text) -{ - CHECK_INTERNAL_POINTER(widget()) - kvs_uint_t uCol,uRow; - KVSO_PARAMETERS_BEGIN(c) - KVSO_PARAMETER("row",KVS_PT_UNSIGNEDINTEGER,0,uRow) - KVSO_PARAMETER("col",KVS_PT_UNSIGNEDINTEGER,0,uCol) - KVSO_PARAMETERS_END(c) - QTableWidgetItem * pItem = ((QTableWidget *)widget())->item(uRow,uCol); - if(!pItem) c->returnValue()->setNothing(); - else c->returnValue()->setString(((QTableWidget *)widget())->item(uRow,uCol)->text()); - return true; -} - -KVSO_CLASS_FUNCTION(tablewidget,setRowCount) -{ - CHECK_INTERNAL_POINTER(widget()) - kvs_uint_t uRow; - KVSO_PARAMETERS_BEGIN(c) - KVSO_PARAMETER("row",KVS_PT_UNSIGNEDINTEGER,0,uRow) - KVSO_PARAMETERS_END(c) - ((QTableWidget *)widget())->setRowCount(uRow); - return true; -} - -KVSO_CLASS_FUNCTION(tablewidget,rowCount) -{ - CHECK_INTERNAL_POINTER(widget()) - 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_int_t iXpos,iYpos; - KVSO_PARAMETERS_BEGIN(c) - KVSO_PARAMETER("x_pos",KVS_PT_INT,0,iXpos) - KVSO_PARAMETER("y_pos",KVS_PT_INT,0,iYpos) - KVSO_PARAMETERS_END(c) - KviKvsArray *pArray; - QPoint pPoint=((QTableWidget *)widget())->viewport()->mapFromGlobal(QPoint(iXpos,iYpos)); - QTableWidgetItem *pItem=((QTableWidget *)widget())->itemAt(pPoint.x(),pPoint.y()); - pArray=new KviKvsArray; - if (!pItem) { - pArray->set(0,new KviKvsVariant((kvs_int_t)-1)); - pArray->set(1,new KviKvsVariant((kvs_int_t)-1)); - } - else { - 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 uRow,uCol; - KVSO_PARAMETERS_BEGIN(c) - KVSO_PARAMETER("row",KVS_PT_UNSIGNEDINTEGER,0,uRow) - KVSO_PARAMETER("col",KVS_PT_UNSIGNEDINTEGER,0,uCol) - KVSO_PARAMETER("tooltip",KVS_PT_STRING,0,szTooltip) - KVSO_PARAMETERS_END(c) - QTableWidgetItem *pItem=((QTableWidget *)widget())->item(uRow,uCol); - if (pItem) pItem->setToolTip(szTooltip); - return true; -} - -KVSO_CLASS_FUNCTION(tablewidget,setColumnCount) -{ - CHECK_INTERNAL_POINTER(widget()) - kvs_uint_t uCol; - KVSO_PARAMETERS_BEGIN(c) - KVSO_PARAMETER("col",KVS_PT_UNSIGNEDINTEGER,0,uCol) - KVSO_PARAMETERS_END(c) - ((QTableWidget *)widget())->setColumnCount(uCol); - return true; -} - -KVSO_CLASS_FUNCTION(tablewidget,hideColumn) -{ - CHECK_INTERNAL_POINTER(widget()) - kvs_uint_t uCol; - KVSO_PARAMETERS_BEGIN(c) - KVSO_PARAMETER("col",KVS_PT_UNSIGNEDINTEGER,0,uCol) - KVSO_PARAMETERS_END(c) - ((QTableWidget *)widget())->hideColumn(uCol); - return true; -} - -KVSO_CLASS_FUNCTION(tablewidget,showColumn) -{ - CHECK_INTERNAL_POINTER(widget()) - kvs_uint_t uCol; - KVSO_PARAMETERS_BEGIN(c) - KVSO_PARAMETER("col",KVS_PT_UNSIGNEDINTEGER,0,uCol) - KVSO_PARAMETERS_END(c) - ((QTableWidget *)widget())->showColumn(uCol); - return true; -} - -KVSO_CLASS_FUNCTION(tablewidget,hideRow) -{ - CHECK_INTERNAL_POINTER(widget()) - kvs_uint_t uRow; - KVSO_PARAMETERS_BEGIN(c) - KVSO_PARAMETER("col",KVS_PT_UNSIGNEDINTEGER,0,uRow) - KVSO_PARAMETERS_END(c) - ((QTableWidget *)widget())->hideRow(uRow); - return true; -} - -KVSO_CLASS_FUNCTION(tablewidget,showRow) -{ - CHECK_INTERNAL_POINTER(widget()) - kvs_uint_t uRow; - KVSO_PARAMETERS_BEGIN(c) - KVSO_PARAMETER("col",KVS_PT_UNSIGNEDINTEGER,0,uRow) - KVSO_PARAMETERS_END(c) - ((QTableWidget *)widget())->showRow(uRow); - return true; -} - -KVSO_CLASS_FUNCTION(tablewidget,setHorizontalHeaderLabels) -{ - CHECK_INTERNAL_POINTER(widget()) - KviKvsArrayCast ac; - KVSO_PARAMETERS_BEGIN(c) - KVSO_PARAMETER("labels",KVS_PT_ARRAYCAST,0,ac) - KVSO_PARAMETERS_END(c) - QStringList szColumns; - if(KviKvsArray * a = ac.array()) - { - kvs_int_t uIdx = 0; - kvs_int_t uSize = a->size(); - while(uIdx < uSize) - { - KviKvsVariant * v = a->at(uIdx); - if(v) - { - QString tmp; - v->asString(tmp); - szColumns.append(tmp); - } - else szColumns.append(""); - uIdx++; - } - } - ((QTableWidget *)object())->setHorizontalHeaderLabels(szColumns); - return true; -} - -KVSO_CLASS_FUNCTION(tablewidget,setVerticalHeaderLabels) -{ - CHECK_INTERNAL_POINTER(widget()) - KviKvsArrayCast ac; - KVSO_PARAMETERS_BEGIN(c) - KVSO_PARAMETER("labels",KVS_PT_ARRAYCAST,0,ac) - KVSO_PARAMETERS_END(c) - QStringList szColumns; - if(KviKvsArray * a = ac.array()) - { - kvs_int_t uIdx = 0; - kvs_int_t uSize = a->size(); - while(uIdx < uSize) - { - KviKvsVariant * v = a->at(uIdx); - if(v) - { - QString tmp; - v->asString(tmp); - szColumns.append(tmp); - } - else szColumns.append(""); - uIdx++; - } - } - ((QTableWidget *)object())->setVerticalHeaderLabels(szColumns); - return true; -} - -KVSO_CLASS_FUNCTION(tablewidget,setCellWidget) -{ - CHECK_INTERNAL_POINTER(widget()) - KviKvsObject * pObject; - kvs_hobject_t hObject; - kvs_uint_t uRow,uCol; - KVSO_PARAMETERS_BEGIN(c) - KVSO_PARAMETER("row",KVS_PT_UNSIGNEDINTEGER,0,uRow) - KVSO_PARAMETER("column",KVS_PT_UNSIGNEDINTEGER,0,uCol) - KVSO_PARAMETER("widget",KVS_PT_HOBJECT,0,hObject) - KVSO_PARAMETERS_END(c) - pObject=KviKvsKernel::instance()->objectController()->lookupObject(hObject); - CHECK_HOBJECT_IS_WIDGET(pObject) - ((QTableWidget *)object())->setCellWidget(uRow,uCol,((QWidget *)(pObject->object()))); - return true; -} - -KVSO_CLASS_FUNCTION(tablewidget,hideHorizontalHeader) -{ - Q_UNUSED(c); - ((QTableWidget *)widget())->horizontalHeader()->hide(); - return true; -} - -KVSO_CLASS_FUNCTION(tablewidget,hideVerticalHeader) -{ - Q_UNUSED(c); - ((QTableWidget *)widget())->verticalHeader()->hide(); - return true; -} - -KVSO_CLASS_FUNCTION(tablewidget,showHorizontalHeader) -{ - Q_UNUSED(c); - ((QTableWidget *)widget())->horizontalHeader()->show(); - return true; -} - -KVSO_CLASS_FUNCTION(tablewidget,showVerticalHeader) -{ - Q_UNUSED(c); - ((QTableWidget *)widget())->verticalHeader()->show(); - return true; -} -KVSO_CLASS_FUNCTION(tablewidget,setItemFlags) -{ - CHECK_INTERNAL_POINTER(widget()) - - QStringList itemflags; - kvs_uint_t iRow,iCol; - KVSO_PARAMETERS_BEGIN(c) - KVSO_PARAMETER("row",KVS_PT_UNSIGNEDINTEGER,0,iRow) - KVSO_PARAMETER("column",KVS_PT_UNSIGNEDINTEGER,0,iCol) - KVSO_PARAMETER("flags",KVS_PT_STRINGLIST,KVS_PF_OPTIONAL,itemflags) - KVSO_PARAMETERS_END(c) - int flag,sum=0; - for ( int i=0;i<itemflags.count();i++) - { - flag = 0; - for(unsigned int j = 0; j < itemflags_num; j++) - { - if(KviQString::equalCI(itemflags.at(i), itemflags_tbl[j])) - { - flag=item_flags[j]; - break; - } - } - if(flag) - { - // if (flag==Qt::ItemIsUserCheckable) - // pItem->setCheckState(0,Qt::Unchecked); - sum = sum | flag; - } else { - c->warning(__tr2qs_ctx("Unknown item flag '%Q'","objects"),&itemflags.at(i)); - } - } - QTableWidgetItem *pItem=((QTableWidget *)widget())->item(iRow,iCol); - if(pItem) pItem->setFlags((Qt::ItemFlags)sum); - return true; -} - -void KviKvsObject_tablewidget::slotItemEntered(QTableWidgetItem * i) -{ - 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; -} - -void KviKvsObject_tablewidget::cellActivated(int iRow,int iCol) -{ - KviKvsVariantList params(new KviKvsVariant((kvs_int_t)iRow),new KviKvsVariant((kvs_int_t)iCol)); - callFunction(this,"cellActivatedEvent",0,¶ms); -} - -KVSO_CLASS_FUNCTION(tablewidget,cellActivatedEvent) -{ - emitSignal("cellActivated",c,c->params()); - return true; -} - -void KviKvsObject_tablewidget::cellDoubleClicked(int iRow,int iCol) -{ - KviKvsVariantList params(new KviKvsVariant((kvs_int_t)iRow),new KviKvsVariant((kvs_int_t)iCol)); - callFunction(this,"cellDoubleClickedEvent",0,¶ms); -} - -KVSO_CLASS_FUNCTION(tablewidget,cellDoubleClickedEvent) -{ - emitSignal("cellDoubleClicked",c,c->params()); - return true; -} -bool KviKvsObject_tablewidget::paint(QPainter * p, const QStyleOptionViewItem & option, const QModelIndex & index) -{ - p->save(); - KviKvsObjectClass * pClass = KviKvsKernel::instance()->objectController()->lookupClass("painter"); - KviKvsVariantList params; - KviKvsObject * pObject = pClass->allocateInstance(0,"internalpainter",m_pContext,¶ms); - ((KviKvsObject_painter *)pObject)->setInternalPainter(p); - p->setClipRect(option.rect); - p->translate(option.rect.x(),option.rect.y()); - int col=index.column(); - int row=index.row(); - kvs_hobject_t handle=pObject->handle(); - kvs_int_t cell_height=(kvs_int_t)option.rect.height(); - kvs_int_t cell_width=(kvs_int_t)option.rect.width(); - KviKvsVariantList parameters(new KviKvsVariant(handle),new KviKvsVariant((kvs_int_t) row),new KviKvsVariant((kvs_int_t) col),new KviKvsVariant(cell_width),new KviKvsVariant(cell_height)); - bool ret=false; - KviKvsVariant *retv=new KviKvsVariant(ret); - callFunction(this,"paintCellEvent",retv,¶meters); - pObject=KviKvsKernel::instance()->objectController()->lookupObject(handle); - if (pObject) pObject->dieNow(); - p->restore(); - return retv->asBoolean(); -} - -KviCellItemDelegate::KviCellItemDelegate(QAbstractItemView * pWidget,KviKvsObject_tablewidget * parent) -: QItemDelegate(pWidget), m_pParentScript(parent) -{ -} - -KviCellItemDelegate::~KviCellItemDelegate() -{ -} - -void KviCellItemDelegate::paint(QPainter * pPainter, const QStyleOptionViewItem & option, const QModelIndex & index) const -{ - if (m_pParentScript->paint(pPainter,option,index)) - QItemDelegate::paint(pPainter,option,index); -} - -QSize KviCellItemDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex & index) const -{ - KviKvsVariant *sizeret=new KviKvsVariant(); - //qDebug("sizehint cell"); - KviKvsVariantList parameters(new KviKvsVariant((kvs_int_t) index.row()),new KviKvsVariant((kvs_int_t) index.column())); - m_pParentScript->callFunction(m_pParentScript,"sizeHintCellRequestEvent",sizeret,¶meters); - if (sizeret->isArray()) - { - if (sizeret->array()->size()==2) - { - kvs_int_t w,h; - if (sizeret->array()->at(0)->asInteger(w) && sizeret->array()->at(1)->asInteger(h))return QSize(w,h); - } - } - return QItemDelegate::sizeHint(option,index); -} - - -#ifndef COMPILE_USE_STANDALONE_MOC_SOURCES -#include "m_class_tablewidget.moc" -#endif //COMPILE_USE_STANDALONE_MOC_SOURCES |
