diff options
| author | 2008-11-12 17:11:05 +0000 | |
|---|---|---|
| committer | 2008-11-12 17:11:05 +0000 | |
| commit | e9bdaa29e39de374d65bfb6555f191050fb6463d (patch) | |
| tree | 1bd885aa0b71927bbf515b9cc1fc21f76f583e2d /src/modules/objects/class_treewidget.cpp | |
| parent | fixed a typo in kvs documentation (diff) | |
| download | KVIrc-e9bdaa29e39de374d65bfb6555f191050fb6463d.tar.gz KVIrc-e9bdaa29e39de374d65bfb6555f191050fb6463d.tar.bz2 KVIrc-e9bdaa29e39de374d65bfb6555f191050fb6463d.zip | |
some fixes around.
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@2849 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/objects/class_treewidget.cpp')
| -rw-r--r-- | src/modules/objects/class_treewidget.cpp | 109 |
1 files changed, 60 insertions, 49 deletions
diff --git a/src/modules/objects/class_treewidget.cpp b/src/modules/objects/class_treewidget.cpp index 5935e7709..a741052ea 100644 --- a/src/modules/objects/class_treewidget.cpp +++ b/src/modules/objects/class_treewidget.cpp @@ -29,7 +29,8 @@ #include "kvi_debug.h" #include "kvi_locale.h" #include "kvi_iconmanager.h" -#include "kvi_tal_treewidget.h" +#include <QTreeWidget> + // FIXME: fix the doc (function QT4 renamed) // OLD: @@ -75,10 +76,11 @@ !fn: $addColumn(<text_label:string> <width:unsigned integer>) Adds a width pixels wide column with the column header label to the list view. - !fn: $setSorting(<column:integer>,<bAscending:boolean>) - Sets the list view to be sorted by column column in ascending order if ascending is 1 or descending order if it is FALSE. - If column is -1, sorting is disabled and the user cannot sort columns by clicking on the column headers - + !fn: $setSorting(<column:integer>,<sort_order:string>) + Sets the list view to be sorted by column in ascending order if sort_order is "ascending" or descending order if it is "descending". + !fn: $setSortingEnabled(<bEnabled:boolean>) + If <bEnabled> is true, user sorting is enabled for the tree. The default value is false. + In order to avoid performance issues, it is recommended that sorting is enabled after inserting the items into the tree. !fn: $hideListViewHeader() Hide the treewidget column header. @@ -188,6 +190,7 @@ KVSO_BEGIN_REGISTERCLASS(KviKvsObject_treewidget,"listview","widget") KVSO_REGISTER_HANDLER_NEW(KviKvsObject_treewidget,setColumnCount) KVSO_REGISTER_HANDLER_NEW(KviKvsObject_treewidget,setSorting) + KVSO_REGISTER_HANDLER_NEW(KviKvsObject_treewidget,setSortingEnabled) KVSO_REGISTER_HANDLER_NEW(KviKvsObject_treewidget,setRootIsDecorated) KVSO_REGISTER_HANDLER_NEW(KviKvsObject_treewidget,setAllColumnsShowFocus) KVSO_REGISTER_HANDLER_NEW(KviKvsObject_treewidget,clear) @@ -243,7 +246,7 @@ bool KviKvsObject_treewidget::init(KviKvsRunTimeContext *,KviKvsVariantList *) setObject(new KviKvsTreeWidget(parentScriptWidget(),getName().toUtf8().data(),this),true); // hack for compatibility with "old" addColumn method; - ((KviTalTreeWidget*) widget())->setColumnCount(0); + ((QTreeWidget*) widget())->setColumnCount(0); connect(widget(),SIGNAL(itemClicked(QTreeWidgetItem *,int)),this,SLOT(slotClicked(QTreeWidgetItem *,int))); connect(widget(),SIGNAL(itemSelectionChanged()),this,SLOT(slotSelectionChanged())); @@ -268,7 +271,7 @@ KVSO_CLASS_FUNCTION(treewidget,setHeaderLabels) KVSO_PARAMETER("labels",KVS_PT_STRINGLIST,KVS_PF_OPTIONAL,columns) KVSO_PARAMETERS_END(c) if (widget()){ - ((KviTalTreeWidget *)object())->setHeaderLabels(columns); + ((QTreeWidget *)object())->setHeaderLabels(columns); } return true; } @@ -282,7 +285,7 @@ KVSO_CLASS_FUNCTION(treewidget,setColumnText) KVSO_PARAMETER("column",KVS_PT_INT,0,iCol) KVSO_PARAMETER("label",KVS_PT_STRING,0,szLabel) KVSO_PARAMETERS_END(c) - QTreeWidgetItem *header=((KviTalTreeWidget *)widget())->headerItem(); + QTreeWidgetItem *header=((QTreeWidget *)widget())->headerItem(); header->setText(iCol,szLabel); return true; } @@ -296,12 +299,12 @@ KVSO_CLASS_FUNCTION(treewidget,addColumn) KVSO_PARAMETER("label",KVS_PT_STRING,0,szLabel) KVSO_PARAMETER("width",KVS_PT_INT,0,iW) KVSO_PARAMETERS_END(c) - int col=((KviTalTreeWidget *)widget())->columnCount(); - QTreeWidgetItem *header=((KviTalTreeWidget *)widget())->headerItem(); + int col=((QTreeWidget *)widget())->columnCount(); + QTreeWidgetItem *header=((QTreeWidget *)widget())->headerItem(); header->setText(col,szLabel); - ((KviTalTreeWidget *)widget())->setColumnWidth(col,iW); + ((QTreeWidget *)widget())->setColumnWidth(col,iW); col++; - ((KviTalTreeWidget *)widget())->setColumnCount(col); + ((QTreeWidget *)widget())->setColumnCount(col); //col++; return true; } @@ -313,14 +316,14 @@ KVSO_CLASS_FUNCTION(treewidget,setAcceptDrops) KVSO_PARAMETER("bEnable",KVS_PT_BOOLEAN,0,bEnable) KVSO_PARAMETERS_END(c) if (widget()) - ((KviTalTreeWidget *)object())->setAcceptDrops(bEnable); + ((QTreeWidget *)object())->setAcceptDrops(bEnable); return true; } */ KVSO_CLASS_FUNCTION(treewidget,clear) { if (widget()) - ((KviTalTreeWidget *)object())->clear(); + ((QTreeWidget *)object())->clear(); return true; } @@ -328,11 +331,11 @@ KVSO_CLASS_FUNCTION(treewidget,selectedItems) { if(widget()) { - QList<QTreeWidgetItem *> list=((KviTalTreeWidget *)widget())->selectedItems(); + QList<QTreeWidgetItem *> list=((QTreeWidget *)widget())->selectedItems(); KviKvsArray * pArray = new KviKvsArray(); c->returnValue()->setArray(pArray); for (int i=0;i<list.count();i++) - pArray->set(i,new KviKvsVariant(KviKvsObject_treewidgetitem::itemToHandle((KviTalTreeWidgetItem*)list.at(i)))); + pArray->set(i,new KviKvsVariant(KviKvsObject_treewidgetitem::itemToHandle((QTreeWidgetItem*)list.at(i)))); } else c->returnValue()->setHObject((kvs_hobject_t)0); @@ -342,7 +345,7 @@ KVSO_CLASS_FUNCTION(treewidget,selectedItems) KVSO_CLASS_FUNCTION(treewidget,firstChild) { if(widget()) - c->returnValue()->setHObject(KviKvsObject_treewidgetitem::itemToHandle((KviTalTreeWidgetItem*)((KviTalTreeWidget *)widget())->topLevelItem(0))); + c->returnValue()->setHObject(KviKvsObject_treewidgetitem::itemToHandle((QTreeWidgetItem*)((QTreeWidget *)widget())->topLevelItem(0))); else c->returnValue()->setHObject((kvs_hobject_t)0); return true; @@ -351,7 +354,7 @@ KVSO_CLASS_FUNCTION(treewidget,firstChild) KVSO_CLASS_FUNCTION(treewidget,currentItem) { if(widget()) - c->returnValue()->setHObject(KviKvsObject_treewidgetitem::itemToHandle((KviTalTreeWidgetItem*)((KviTalTreeWidget *)widget())->currentItem())); + c->returnValue()->setHObject(KviKvsObject_treewidgetitem::itemToHandle((QTreeWidgetItem*)((QTreeWidget *)widget())->currentItem())); else c->returnValue()->setHObject((kvs_hobject_t)0); return true; @@ -365,7 +368,7 @@ KVSO_CLASS_FUNCTION(treewidget,setColumnText) KVSO_PARAMETER("column",KVS_PT_UNSIGNEDINTEGER,0,uCol) KVSO_PARAMETER("text",KVS_PT_STRING,0,szText) KVSO_PARAMETERS_END(c) - if (widget())((KviTalTreeWidget *)widget())->setColumnText(uCol,szText); + if (widget())((QTreeWidget *)widget())->setColumnText(uCol,szText); return true; } */ @@ -375,7 +378,7 @@ KVSO_CLASS_FUNCTION(treewidget,setColumnCount) KVSO_PARAMETERS_BEGIN(c) KVSO_PARAMETER("column",KVS_PT_UNSIGNEDINTEGER,0,uCol) KVSO_PARAMETERS_END(c) - if (widget())((KviTalTreeWidget *)widget())->setColumnCount(uCol); + if (widget())((QTreeWidget *)widget())->setColumnCount(uCol); return true; } @@ -387,13 +390,13 @@ KVSO_CLASS_FUNCTION(treewidget,setSelectionMode) KVSO_PARAMETERS_END(c) if(!widget())return true; if(KviQString::equalCI(szMode,"NoSelection")) - ((KviTalTreeWidget *)widget())->setSelectionMode(QAbstractItemView::NoSelection); + ((QTreeWidget *)widget())->setSelectionMode(QAbstractItemView::NoSelection); else if(KviQString::equalCI(szMode,"Multi")) - ((KviTalTreeWidget *)widget())->setSelectionMode(KviTalTreeWidget::MultiSelection); + ((QTreeWidget *)widget())->setSelectionMode(QTreeWidget::MultiSelection); else if(KviQString::equalCI(szMode,"Extended")) - ((KviTalTreeWidget *)widget())->setSelectionMode(KviTalTreeWidget::ExtendedSelection); + ((QTreeWidget *)widget())->setSelectionMode(QTreeWidget::ExtendedSelection); else if(KviQString::equalCI(szMode,"Single")) - ((KviTalTreeWidget *)widget())->setSelectionMode(KviTalTreeWidget::SingleSelection); + ((QTreeWidget *)widget())->setSelectionMode(QTreeWidget::SingleSelection); else c->warning(__tr2qs("Invalid selection mode '%Q'"),&szMode); return true; } @@ -401,17 +404,25 @@ KVSO_CLASS_FUNCTION(treewidget,setSelectionMode) KVSO_CLASS_FUNCTION(treewidget,setSorting) { kvs_int_t iCol; - bool bEnables; + QString szOrder; KVSO_PARAMETERS_BEGIN(c) KVSO_PARAMETER("column",KVS_PT_INT,0,iCol) - KVSO_PARAMETER("sorting",KVS_PT_BOOLEAN,0,bEnables) + KVSO_PARAMETER("sort_order",KVS_PT_STRING,0,szOrder) KVSO_PARAMETERS_END(c) if (!widget())return true; - if (iCol<0) - ((KviTalTreeWidget *)widget())->setSortingEnabled(false); - else - if(!bEnables) ((KviTalTreeWidget *)widget())->sortItems(iCol,Qt::DescendingOrder); - else ((KviTalTreeWidget *)widget())->sortItems(iCol,Qt::AscendingOrder); + if (KviQString::equalCI(szOrder,"ascending")) ((QTreeWidget *)widget())->sortItems(iCol,Qt::AscendingOrder); + else if (KviQString::equalCI(szOrder,"descending")) ((QTreeWidget *)widget())->sortItems(iCol,Qt::DescendingOrder); + else c->warning(__tr2qs_ctx("Unknown 'Q' sort order: switching to ascending order","objects"),&szOrder); + return true; +} +KVSO_CLASS_FUNCTION(treewidget,setSortingEnabled) +{ + bool bEnables; + KVSO_PARAMETERS_BEGIN(c) + KVSO_PARAMETER("bEnables",KVS_PT_BOOLEAN,0,bEnables) + KVSO_PARAMETERS_END(c) + if (!widget())return true; + ((QTreeWidget *)widget())->setSortingEnabled(bEnables); return true; } @@ -421,7 +432,7 @@ KVSO_CLASS_FUNCTION(treewidget,setRootIsDecorated) KVSO_PARAMETERS_BEGIN(c) KVSO_PARAMETER("bEnabled",KVS_PT_BOOL,0,bEnabled) KVSO_PARAMETERS_END(c) - if (widget()) ((KviTalTreeWidget *)widget())->setRootIsDecorated(bEnabled); + if (widget()) ((QTreeWidget *)widget())->setRootIsDecorated(bEnabled); return true; } @@ -431,25 +442,25 @@ KVSO_CLASS_FUNCTION(treewidget,setAllColumnsShowFocus) KVSO_PARAMETERS_BEGIN(c) KVSO_PARAMETER("bAllColumnsShowFocus",KVS_PT_BOOL,0,bEnabled) KVSO_PARAMETERS_END(c) - if (widget())((KviTalTreeWidget *)widget())->setAllColumnsShowFocus(bEnabled); + if (widget())((QTreeWidget *)widget())->setAllColumnsShowFocus(bEnabled); return true; } KVSO_CLASS_FUNCTION(treewidget,hideListViewHeader) { - ((KviTalTreeWidget *)widget())->header()->hide(); + ((QTreeWidget *)widget())->header()->hide(); return true; } KVSO_CLASS_FUNCTION(treewidget,showListViewHeader) { - ((KviTalTreeWidget *)widget())->header()->show(); + ((QTreeWidget *)widget())->header()->show(); return true; } KVSO_CLASS_FUNCTION(treewidget,listViewHeaderIsVisible) { - c->returnValue()->setBoolean(((KviTalTreeWidget *)widget())->header()->isVisible()); + c->returnValue()->setBoolean(((QTreeWidget *)widget())->header()->isVisible()); return true; } @@ -459,7 +470,7 @@ KVSO_CLASS_FUNCTION(treewidget,itemClickedEvent) return true; } -void KviKvsObject_treewidget::slotClicked(KviTalTreeWidgetItem * i,int col) +void KviKvsObject_treewidget::slotClicked(QTreeWidgetItem * i,int col) { KviKvsVariant *column=new KviKvsVariant((kvs_int_t)col); @@ -475,9 +486,9 @@ KVSO_CLASS_FUNCTION(treewidget,selectionChangedEvent) void KviKvsObject_treewidget::slotSelectionChanged() { - if (((KviTalTreeWidget *)widget())->selectionMode()==KviTalTreeWidget::SingleSelection) + if (((QTreeWidget *)widget())->selectionMode()==QTreeWidget::SingleSelection) { - KviTalTreeWidgetItem *it=(KviTalTreeWidgetItem *) ((KviTalTreeWidget *)widget())->currentItem(); + QTreeWidgetItem *it=(QTreeWidgetItem *) ((QTreeWidget *)widget())->currentItem(); KviKvsVariantList params(new KviKvsVariant(KviKvsObject_treewidgetitem::itemToHandle(it))); callFunction(this,"selectionChangedEvent",0,¶ms); } @@ -493,7 +504,7 @@ KVSO_CLASS_FUNCTION(treewidget,currentChangedEvent) return true; } -void KviKvsObject_treewidget::slotCurrentChanged(KviTalTreeWidgetItem * i,KviTalTreeWidgetItem *prev) +void KviKvsObject_treewidget::slotCurrentChanged(QTreeWidgetItem * i,QTreeWidgetItem *prev) { KviKvsVariantList params(new KviKvsVariant(KviKvsObject_treewidgetitem::itemToHandle(i)),new KviKvsVariant(KviKvsObject_treewidgetitem::itemToHandle(prev))); callFunction(this,"currentChangedEvent",0,¶ms); @@ -509,7 +520,7 @@ KVSO_CLASS_FUNCTION(treewidget,itemActivatedEvent) return true; } -void KviKvsObject_treewidget::slotItemActivated(KviTalTreeWidgetItem * i,int col) +void KviKvsObject_treewidget::slotItemActivated(QTreeWidgetItem * i,int col) { KviKvsVariant *column=new KviKvsVariant((kvs_int_t)col); KviKvsVariantList params(new KviKvsVariant(KviKvsObject_treewidgetitem::itemToHandle(i)),column); @@ -523,7 +534,7 @@ KVSO_CLASS_FUNCTION(treewidget,onItemEvent) return true; } -void KviKvsObject_treewidget::slotOnItemEntered(KviTalTreeWidgetItem * i,int col) +void KviKvsObject_treewidget::slotOnItemEntered(QTreeWidgetItem * i,int col) { KviKvsVariant *column=new KviKvsVariant((kvs_int_t)col); @@ -537,7 +548,7 @@ KVSO_CLASS_FUNCTION(treewidget,itemExpandedEvent) return true; } -void KviKvsObject_treewidget::slotItemExpanded(KviTalTreeWidgetItem * i) +void KviKvsObject_treewidget::slotItemExpanded(QTreeWidgetItem * i) { KviKvsVariantList params(new KviKvsVariant(KviKvsObject_treewidgetitem::itemToHandle(i))); callFunction(this,"itemExpandedEvent",0,¶ms); @@ -549,7 +560,7 @@ KVSO_CLASS_FUNCTION(treewidget,itemCollapsedEvent) return true; } -void KviKvsObject_treewidget::slotItemCollapsed(KviTalTreeWidgetItem * i) +void KviKvsObject_treewidget::slotItemCollapsed(QTreeWidgetItem * i) { KviKvsVariantList params(new KviKvsVariant(KviKvsObject_treewidgetitem::itemToHandle(i))); callFunction(this,"itemCollapsedEvent",0,¶ms); @@ -566,7 +577,7 @@ void KviKvsObject_treewidget::slotCustomContextMenuRequested(const QPoint &pnt) { KviKvsVariant *xpos=new KviKvsVariant((kvs_int_t)pnt.x()); KviKvsVariant *ypos=new KviKvsVariant((kvs_int_t)pnt.y()); - KviTalTreeWidgetItem *it=(KviTalTreeWidgetItem *) ((KviTalTreeWidget *)widget())->itemAt(pnt); + QTreeWidgetItem *it=(QTreeWidgetItem *) ((QTreeWidget *)widget())->itemAt(pnt); KviKvsVariantList params(new KviKvsVariant(KviKvsObject_treewidgetitem::itemToHandle(it)),xpos,ypos); callFunction(this,"customContextMenuRequestedEvent",0,¶ms); } @@ -580,14 +591,14 @@ KVSO_CLASS_FUNCTION(treewidget,itemChangedEvent) return true; } -void KviKvsObject_treewidget::slotItemChanged(KviTalTreeWidgetItem *item,int col) +void KviKvsObject_treewidget::slotItemChanged(QTreeWidgetItem *item,int col) { KviKvsVariant *column=new KviKvsVariant((kvs_int_t)col); KviKvsVariantList params(new KviKvsVariant(KviKvsObject_treewidgetitem::itemToHandle(item)),column); callFunction(this,"itemChangedEvent",0,¶ms); } -void KviKvsObject_treewidget::fileDropped(QString &szFile,KviTalTreeWidgetItem *item) +void KviKvsObject_treewidget::fileDropped(QString &szFile,QTreeWidgetItem *item) { KviKvsVariant *file=new KviKvsVariant(szFile); KviKvsVariantList params(new KviKvsVariant(KviKvsObject_treewidgetitem::itemToHandle(item)),file); @@ -595,7 +606,7 @@ void KviKvsObject_treewidget::fileDropped(QString &szFile,KviTalTreeWidgetItem * } KviKvsTreeWidget::KviKvsTreeWidget(QWidget * par,const char *,KviKvsObject_treewidget *parent) -:KviTalTreeWidget(par) +:QTreeWidget(par) { m_pParentScript=parent; setAcceptDrops(true); @@ -639,7 +650,7 @@ void KviKvsTreeWidget::dropEvent(QDropEvent * e) #if !defined(COMPILE_ON_WINDOWS) && !defined(COMPILE_ON_MINGW) if(path[0] != '/')path.prepend("/"); //HACK HACK HACK for Qt bug (?!?) #endif - // KviTalTreeWidgetItem *i = itemAt( contentsToViewport(e->pos()) ); + // QTreeWidgetItem *i = itemAt( contentsToViewport(e->pos()) ); // m_pParentScript->fileDropped(path,i); } } |
