diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/modules/editor/editor_QT4_vc05.vcproj | 2 | ||||
| -rw-r--r-- | src/modules/editor/scripteditor.cpp | 9 | ||||
| -rw-r--r-- | src/modules/objects/class_listview.cpp | 428 | ||||
| -rw-r--r-- | src/modules/objects/class_listview.h | 53 | ||||
| -rw-r--r-- | src/modules/objects/class_listviewitem.cpp | 244 | ||||
| -rw-r--r-- | src/modules/objects/class_listviewitem.h | 36 | ||||
| -rw-r--r-- | src/modules/objects/class_menubar.cpp | 2 | ||||
| -rw-r--r-- | src/modules/objects/class_toolbutton.cpp | 29 | ||||
| -rw-r--r-- | src/modules/objects/class_toolbutton.h | 4 | ||||
| -rw-r--r-- | src/modules/objects/class_urllabel.cpp | 16 | ||||
| -rw-r--r-- | src/modules/objects/class_wrapper.cpp | 11 | ||||
| -rw-r--r-- | src/modules/objects/class_wrapper.h | 2 | ||||
| -rw-r--r-- | src/modules/objects/libkviobjects.cpp | 8 | ||||
| -rw-r--r-- | src/modules/reguser/dialog.cpp | 3 | ||||
| -rw-r--r-- | src/modules/theme/themefunctions.cpp | 2 |
15 files changed, 506 insertions, 343 deletions
diff --git a/src/modules/editor/editor_QT4_vc05.vcproj b/src/modules/editor/editor_QT4_vc05.vcproj index 22b461580..484ac9245 100644 --- a/src/modules/editor/editor_QT4_vc05.vcproj +++ b/src/modules/editor/editor_QT4_vc05.vcproj @@ -135,7 +135,7 @@ EnableFiberSafeOptimizations="true"
WholeProgramOptimization="true"
AdditionalIncludeDirectories=""$(ProjectDir)\..\..\kvilib\tal";"$(ProjectDir)\..\..\kvilib\system";"$(ProjectDir)\..\..\kvilib\irc";"$(ProjectDir)\..\..\kvilib\file";"$(ProjectDir)\..\..\kvilib\ext";"$(ProjectDir)\..\..\kvilib\net";"$(ProjectDir)\..\..\kvilib\core\wstring";"$(ProjectDir)\..\..\kvilib\core";"$(ProjectDir)\..\..\kvilib\config";"$(SSLINCDIR)";"$(QTDIR)\include";"$(ProjectDir)\..\..\kvirc\kvs";"$(ProjectDir)\..\..\kvirc\module";"$(ProjectDir)\..\..\kvirc\uparser\scripttoolbar";"$(ProjectDir)\..\..\kvirc\uparser";"$(ProjectDir)\..\..\kvirc\sparser";"$(ProjectDir)\..\..\kvirc\kernel";"$(ProjectDir)\..\..\kvirc\ui";"$(QTDIR)\include\Qt3Support";"$(QTDIR)\include\QtCore\";"$(QTDIR)\include\QtGui";"$(QTDIR)\include\Qt";"$(QTDIR)\include\QtNetwork";"$(QTDIR)\include\QtXml";"
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;EDITOR_EXPORTS;_CRT_SECURE_NO_DEPRECATE;QT3_SUPPORT;"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;EDITOR_EXPORTS;_CRT_SECURE_NO_DEPRECATE;"
StringPooling="true"
MinimalRebuild="true"
ExceptionHandling="1"
diff --git a/src/modules/editor/scripteditor.cpp b/src/modules/editor/scripteditor.cpp index 6ed605fd5..a055bd733 100644 --- a/src/modules/editor/scripteditor.cpp +++ b/src/modules/editor/scripteditor.cpp @@ -88,6 +88,7 @@ KviCompletionBox::KviCompletionBox(QTextEdit * parent = 0) void KviCompletionBox::updateContents(QString buffer)
{
+ return;
//buffer=buffer.trimmed();
KviPointerList<QString> *list;
clear();
@@ -227,7 +228,7 @@ void KviScriptEditorWidgetColorOptions::okClicked() KviScriptEditorWidget::KviScriptEditorWidget(QWidget * pParent)
: QTextEdit(pParent)
{
-
+ setTabStopWidth(48);
setWordWrapMode(QTextOption::NoWrap);
m_pParent=pParent;
m_szHelp="Nothing";
@@ -539,8 +540,8 @@ void KviScriptEditorWidget::completition(bool bCanComplete) else completelistbox->resize(completelistbox->width(),6*completelistbox->fontMetrics().height()+20);
// int posy=paragraphRect(line).bottom();
// int posx=fontMetrics().width(this->text(line).left(index));
- completelistbox->move(0,0);
- completelistbox->show();
+// completelistbox->move(0,0);
+// completelistbox->show();
}
}
@@ -1081,7 +1082,7 @@ void KviScriptEditorImplementation::setText(const QString &txt) {
m_pEditor->setText(txt);
// m_pEditor->setTextFormat(Qt::PlainText);
- m_pEditor->moveCursor(KviTalTextEdit::MoveEnd,false);
+ m_pEditor->textCursor().movePosition(QTextCursor::End);
m_pEditor->document()->setModified(false);
updateRowColLabel();
}
diff --git a/src/modules/objects/class_listview.cpp b/src/modules/objects/class_listview.cpp index b9f349857..5f006d461 100644 --- a/src/modules/objects/class_listview.cpp +++ b/src/modules/objects/class_listview.cpp @@ -1,6 +1,6 @@ //================================================================================= // -// File : class_listview.cpp +// File : class_treewidget.cpp // Creation date : Fri Jan 28 14:21:48 CEST 2005 // by Tonino Imbesi(Grifisx) and Alessandro Carbone(Noldor) // @@ -30,35 +30,42 @@ #include "kvi_debug.h" #include "kvi_locale.h" #include "kvi_iconmanager.h" -#include "kvi_tal_listview.h" +#include "kvi_tal_treewidget.h" + +// FIXME: fix the doc (function QT4 renamed) +// OLD: +// itemRenamed signal +// itemRenamed event +// NEW: +// itemActivated signal +// itemActavatedEvent + -// FIXME: Qt4 #include <QHeaderView> -#include <q3header.h> #include <QEvent> #include <QDragEnterEvent> #include <QDropEvent> #include <QUrl> /* - @doc: listview + @doc: treewidget @keyterms: - listview widget class + treewidget widget class @title: - listview class + treewidget class @type: class @short: - A listview class + A treewidget class @inherits: [class]widget[/class] @description: It can display and control a hierarchy of multi-column items, and provides the ability to add new items at any time. - The items are added by creating children [class]listviewitem[/class] objects: simply allocating them with $new - will add the items to the listview and simply deleting them will remove them. - Allocating a [class]listviewitem[/class] item2 as a child of item1 will insert it to the same listview creating + The items are added by creating children [class]treewidgetitem[/class] objects: simply allocating them with $new + will add the items to the treewidget and simply deleting them will remove them. + Allocating a [class]treewidgetitem[/class] item2 as a child of item1 will insert it to the same treewidget creating a subtree of items spannig from item1. The subtree can be opened or closed by a simple click either - on the parent item or on the little plus sign on the side of it (when [classfnc:listview]$setRootIsDecorated[/classfnc] - is set to $true. The listview can be in Single, Multi, Extended or NoSelection selection mode. + on the parent item or on the little plus sign on the side of it (when [classfnc:treewidget]$setRootIsDecorated[/classfnc] + is set to $true. The treewidget can be in Single, Multi, Extended or NoSelection selection mode. In single selection mode there can be only one selected item at a time and the selected item is also the current item (this mode is the default). In Multi and Extended selection mode there can be multiple selected items and the current item is one of them. The difference between Multi and Extended is in the way @@ -73,41 +80,41 @@ If column is -1, sorting is disabled and the user cannot sort columns by clicking on the column headers !fn: $hideListViewHeader() - Hide the listview column header. + Hide the treewidget column header. !fn: $showListViewHeader() - Show the listview column header. + Show the treewidget column header. !fn: <boolean> $isListViewHeaderVisible() - Returns '1' if the listview header is currently visible. Otherwise this function returns '0'. + Returns '1' if the treewidget header is currently visible. Otherwise this function returns '0'. !fn: $setAllColumnsShowFocus(<bAllColumnsShowFocus:boolean>) - When the argument is $true, causes the listview to display the focus and selection + When the argument is $true, causes the treewidget to display the focus and selection by highlighting all the columns of the item. When the argument is $false then only the first column is selected/highlighted. !fn: $setSelectionMode(<mode:string>) - Sets the selection mode for this listview. <mode> can be one of "Single","NoSelection","Multi" or "Extended". + Sets the selection mode for this treewidget. <mode> can be one of "Single","NoSelection","Multi" or "Extended". - !fn: <listviewitem> $selectedItem() - Returns the currently selected [class]listviewitem[/class] or $null if no items are selected. + !fn: <treewidgetitem> $selectedItem() + Returns the currently selected [class]treewidgetitem[/class] or $null if no items are selected. This function works only if the list view is in single selection mode. - !fn: <listviewitem> $currentItem() - Returns the current [class]listviewitem[/class] or $null if no item is current at the moment. + !fn: <treewidgetitem> $currentItem() + Returns the current [class]treewidgetitem[/class] or $null if no item is current at the moment. - !fn: <listviewitem> $firstChild() - Returns the first child [class]listviewitem[/class] of this listview or $null if there are no items at all. + !fn: <treewidgetitem> $firstChild() + Returns the first child [class]treewidgetitem[/class] of this treewidget or $null if there are no items at all. !fn: $clickEvent(<item:object>) This function is called when the user clicks in the list view. - In its argument the [class]listviewitem[/class] object clicked or 0 if the user didn't click on an item.[br] + In its argument the [class]treewidgetitem[/class] object clicked or 0 if the user didn't click on an item.[br] The default implementation emits the [classfnc]$clicked[/classfnc]() signal. !fn: $selectionChangedEvent(<item:object>) This event handle whenever the set of selected items has changed. - The argument is the newly selected item if the listview is in single selection mode.[br] - When the listview is in Multi or Extended selection mode then item is always $null.[br] + The argument is the newly selected item if the treewidget is in single selection mode.[br] + When the treewidget is in Multi or Extended selection mode then item is always $null.[br] The default implementation emits the [classfnc]$selectionChanged[/classfnc]() signal. !fn: $currentChangedEvent(<item:object>) @@ -172,123 +179,179 @@ //--------------------------------------------------------------------------------- -KVSO_BEGIN_REGISTERCLASS(KviKvsObject_listview,"listview","widget") +KVSO_BEGIN_REGISTERCLASS(KviKvsObject_treewidget,"listview","widget") + + KVSO_REGISTER_HANDLER(KviKvsObject_treewidget,"setHeaderLabels",function_setHeaderLabels) + KVSO_REGISTER_HANDLER(KviKvsObject_treewidget,"addColumn",function_addColumn) + + KVSO_REGISTER_HANDLER(KviKvsObject_treewidget,"setColumnText",function_setColumnText) + KVSO_REGISTER_HANDLER(KviKvsObject_treewidget,"setColumnCount",function_setColumnCount) - KVSO_REGISTER_HANDLER(KviKvsObject_listview,"addColumn",function_addColumn) - KVSO_REGISTER_HANDLER(KviKvsObject_listview,"setColumnText",function_setColumnText) - KVSO_REGISTER_HANDLER(KviKvsObject_listview,"setSorting",function_setSorting) - KVSO_REGISTER_HANDLER(KviKvsObject_listview,"setRootIsDecorated",function_setRootIsDecorated) - KVSO_REGISTER_HANDLER(KviKvsObject_listview,"setAllColumnsShowFocus",function_setAllColumnsShowFocus) - KVSO_REGISTER_HANDLER(KviKvsObject_listview,"clear",function_clear) - KVSO_REGISTER_HANDLER(KviKvsObject_listview,"selectedItem",function_selectedItem) - KVSO_REGISTER_HANDLER(KviKvsObject_listview,"currentItem",function_currentItem) - KVSO_REGISTER_HANDLER(KviKvsObject_listview,"setSelectionMode",function_setSelectionMode) - KVSO_REGISTER_HANDLER(KviKvsObject_listview,"listViewHeaderIsVisible",function_listViewHeaderIsVisible) + KVSO_REGISTER_HANDLER(KviKvsObject_treewidget,"setSorting",function_setSorting) + KVSO_REGISTER_HANDLER(KviKvsObject_treewidget,"setRootIsDecorated",function_setRootIsDecorated) + KVSO_REGISTER_HANDLER(KviKvsObject_treewidget,"setAllColumnsShowFocus",function_setAllColumnsShowFocus) + KVSO_REGISTER_HANDLER(KviKvsObject_treewidget,"clear",function_clear) + KVSO_REGISTER_HANDLER(KviKvsObject_treewidget,"selectedItem",function_selectedItems) + KVSO_REGISTER_HANDLER(KviKvsObject_treewidget,"currentItem",function_currentItem) + KVSO_REGISTER_HANDLER(KviKvsObject_treewidget,"setSelectionMode",function_setSelectionMode) + KVSO_REGISTER_HANDLER(KviKvsObject_treewidget,"listViewHeaderIsVisible",function_listViewHeaderIsVisible) - KVSO_REGISTER_HANDLER(KviKvsObject_listview,"hideListViewHeader",function_hideListViewHeader) - KVSO_REGISTER_HANDLER(KviKvsObject_listview,"showListViewHeader",function_showListViewHeader) - KVSO_REGISTER_HANDLER(KviKvsObject_listview,"firstChild",function_firstChild) - KVSO_REGISTER_HANDLER(KviKvsObject_listview,"selectionChangedEvent",function_selectionChangedEvent); - KVSO_REGISTER_HANDLER(KviKvsObject_listview,"currentChangedEvent",function_currentChangedEvent); - KVSO_REGISTER_HANDLER(KviKvsObject_listview,"returnPressedEvent",function_returnPressedEvent); - KVSO_REGISTER_HANDLER(KviKvsObject_listview,"spacePressedEvent",function_spacePressedEvent); - KVSO_REGISTER_HANDLER(KviKvsObject_listview,"onItemEvent",function_onItemEvent); - KVSO_REGISTER_HANDLER(KviKvsObject_listview,"itemClickedEvent",function_itemClickedEvent); - KVSO_REGISTER_HANDLER(KviKvsObject_listview,"itemExpandedEvent",function_itemExpandedEvent); - KVSO_REGISTER_HANDLER(KviKvsObject_listview,"itemCollapsedEvent",function_itemCollapsedEvent); - KVSO_REGISTER_HANDLER(KviKvsObject_listview,"itemRenamedEvent",function_itemRenamedEvent); - KVSO_REGISTER_HANDLER(KviKvsObject_listview,"rightButtonClickedEvent",function_rightButtonClickedEvent); + KVSO_REGISTER_HANDLER(KviKvsObject_treewidget,"hideListViewHeader",function_hideListViewHeader) + KVSO_REGISTER_HANDLER(KviKvsObject_treewidget,"showListViewHeader",function_showListViewHeader) + KVSO_REGISTER_HANDLER(KviKvsObject_treewidget,"firstChild",function_firstChild) + KVSO_REGISTER_HANDLER(KviKvsObject_treewidget,"selectionChangedEvent",function_selectionChangedEvent); + KVSO_REGISTER_HANDLER(KviKvsObject_treewidget,"currentChangedEvent",function_currentChangedEvent); + + // FIX-ME + KVSO_REGISTER_HANDLER(KviKvsObject_treewidget,"returnPressedEvent",function_itemActivatedEvent);//<- remove me + KVSO_REGISTER_HANDLER(KviKvsObject_treewidget,"itemActivatedEvent",function_itemActivatedEvent); + // + +// KVSO_REGISTER_HANDLER(KviKvsObject_treewidget,"spacePressedEvent",function_spacePressedEvent); + KVSO_REGISTER_HANDLER(KviKvsObject_treewidget,"onItemEvent",function_onItemEvent); + KVSO_REGISTER_HANDLER(KviKvsObject_treewidget,"itemClickedEvent",function_itemClickedEvent); + KVSO_REGISTER_HANDLER(KviKvsObject_treewidget,"itemExpandedEvent",function_itemExpandedEvent); + KVSO_REGISTER_HANDLER(KviKvsObject_treewidget,"itemCollapsedEvent",function_itemCollapsedEvent); + + //FIXME + KVSO_REGISTER_HANDLER(KviKvsObject_treewidget,"itemRenamedEvent",function_itemChangedEvent);//<- remove me + KVSO_REGISTER_HANDLER(KviKvsObject_treewidget,"itemChangedEvent",function_itemChangedEvent); + // + + KVSO_REGISTER_HANDLER(KviKvsObject_treewidget,"rightButtonClickedEvent",function_rightButtonClickedEvent); - KVSO_REGISTER_STANDARD_NOTHINGRETURN_HANDLER(KviKvsObject_listview,"fileDroppedEvent") + KVSO_REGISTER_STANDARD_NOTHINGRETURN_HANDLER(KviKvsObject_treewidget,"fileDroppedEvent") -KVSO_END_REGISTERCLASS(KviKvsObject_listview) +KVSO_END_REGISTERCLASS(KviKvsObject_treewidget) -KVSO_BEGIN_CONSTRUCTOR(KviKvsObject_listview,KviKvsObject_widget) +KVSO_BEGIN_CONSTRUCTOR(KviKvsObject_treewidget,KviKvsObject_widget) -KVSO_END_CONSTRUCTOR(KviKvsObject_listview) +KVSO_END_CONSTRUCTOR(KviKvsObject_treewidget) -KVSO_BEGIN_DESTRUCTOR(KviKvsObject_listview) +KVSO_BEGIN_DESTRUCTOR(KviKvsObject_treewidget) -KVSO_END_CONSTRUCTOR(KviKvsObject_listview) +KVSO_END_CONSTRUCTOR(KviKvsObject_treewidget) -bool KviKvsObject_listview::init(KviKvsRunTimeContext * pContext,KviKvsVariantList *pParams) +bool KviKvsObject_treewidget::init(KviKvsRunTimeContext * pContext,KviKvsVariantList *pParams) { setObject(new KviKvsMdmListView(parentScriptWidget(),getName().toUtf8().data(),this),true); - connect(widget(),SIGNAL(clicked(KviTalListViewItem *)),this,SLOT(slotClicked(KviTalListViewItem *))); - connect(widget(),SIGNAL(selectionChanged(KviTalListViewItem *)),this,SLOT(slotSelectionChanged(KviTalListViewItem *))); - connect(widget(),SIGNAL(selectionChanged()),this,SLOT(slotMultipleSelectionChanged())); - connect(widget(),SIGNAL(currentChanged(KviTalListViewItem *)),this,SLOT(slotCurrentChanged(KviTalListViewItem *))); - connect(widget(),SIGNAL(returnPressed(KviTalListViewItem *)),this,SLOT(slotReturnPressed(KviTalListViewItem *))); - connect(widget(),SIGNAL(spacePressed(KviTalListViewItem *)),this,SLOT(slotSpacePressed(KviTalListViewItem *))); - connect(widget(),SIGNAL(onItem(KviTalListViewItem *)),this,SLOT(slotOnItem(KviTalListViewItem *))); - connect(widget(),SIGNAL(expanded(KviTalListViewItem *)),this,SLOT(slotItemExpanded(KviTalListViewItem *))); - connect(widget(),SIGNAL(collapsed(KviTalListViewItem *)),this,SLOT(slotItemCollapsed(KviTalListViewItem *))); - connect(widget(),SIGNAL(rightButtonClicked(KviTalListViewItem *,const QPoint &,int)),this,SLOT(slotRightButtonClicked(KviTalListViewItem *,const QPoint &,int))); - connect(widget(),SIGNAL(itemRenamed(KviTalListViewItem *,int,const QString &)),this,SLOT(slotItemRenamed(KviTalListViewItem *,int,const QString &))); + + // hack for compatibility with "old" addColumn method; + ((KviTalTreeWidget*) widget())->setColumnCount(0); + + connect(widget(),SIGNAL(itemClicked(KviTalTreeWidgetItem *,int)),this,SLOT(slotClicked(KviTalTreeWidgetItem *,int))); + connect(widget(),SIGNAL(itemSelectionChanged()),this,SLOT(slotSelectionChanged())); + connect(widget(),SIGNAL(currentItemChanged(KviTalTreeWidgetItem *,KviTalTreeWidgetItem *)),this,SLOT(slotCurrentChanged(KviTalTreeWidgetItem *,KviTalTreeWidgetItem *))); + connect(widget(),SIGNAL(itemActivated(KviTalTreeWidgetItem *,int)),this,SLOT(slotItemActivated(KviTalTreeWidgetItem *,int))); + connect(widget(),SIGNAL(itemEntered(KviTalTreeWidgetItem *,int)),this,SLOT(slotOnItemEntered(KviTalTreeWidgetItem *,int))); + connect(widget(),SIGNAL(itemExpanded(KviTalTreeWidgetItem *)),this,SLOT(slotItemExpanded(KviTalTreeWidgetItem *))); + connect(widget(),SIGNAL(itemCollapsed(KviTalTreeWidgetItem *)),this,SLOT(slotItemCollapsed(KviTalTreeWidgetItem *))); + //connect(widget(),SIGNAL(rightButtonClicked(KviTalTreeWidgetItem *,const QPoint &,int)),this,SLOT(slotRightButtonClicked(KviTalTreeWidgetItem *,const QPoint &,int))); + connect(widget(),SIGNAL(itemChanged(KviTalTreeWidgetItem *,int)),this,SLOT(slotItemChanged(KviTalTreeWidgetItem *,int))); + + widget()->setContextMenuPolicy(Qt::CustomContextMenu); + connect(widget(),SIGNAL(customContextMenuRequested(const QPoint &)),this,SLOT(customContextMenuRequested(const QPoint &))); + return true; } -bool KviKvsObject_listview::function_addColumn(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidget::function_setHeaderLabels(KviKvsObjectFunctionCall *c) +{ + QStringList columns; + KVSO_PARAMETERS_BEGIN(c) + KVSO_PARAMETER("labels",KVS_PT_STRINGLIST,KVS_PF_OPTIONAL,columns) + KVSO_PARAMETERS_END(c) + if (widget()){ + ((KviTalTreeWidget *)object())->setHeaderLabels(columns); + } + return true; +} +bool KviKvsObject_treewidget::function_setColumnText(KviKvsObjectFunctionCall *c) +{ + if (!widget()) return true; + QString szLabel; + kvs_int_t iCol; + KVSO_PARAMETERS_BEGIN(c) + 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(); + header->setText(iCol,szLabel); + return true; +} +bool KviKvsObject_treewidget::function_addColumn(KviKvsObjectFunctionCall *c) { + if (!widget()) return true; QString szLabel; kvs_int_t iW; KVSO_PARAMETERS_BEGIN(c) KVSO_PARAMETER("label",KVS_PT_STRING,0,szLabel) KVSO_PARAMETER("width",KVS_PT_INT,0,iW) KVSO_PARAMETERS_END(c) - if (widget()) - ((KviTalListView *)object())->addColumn(szLabel,iW); - return true; + int col=((KviTalTreeWidget *)widget())->columnCount(); + QTreeWidgetItem *header=((KviTalTreeWidget *)widget())->headerItem(); + header->setText(col,szLabel); + ((KviTalTreeWidget *)widget())->setColumnWidth(col,iW); + col++; + ((KviTalTreeWidget *)widget())->setColumnCount(col); + //col++; + return true; } /* -bool KviKvsObject_listview::function_setAcceptDrops(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidget::function_setAcceptDrops(KviKvsObjectFunctionCall *c) { bool bEnable; KVSO_PARAMETERS_BEGIN(c) KVSO_PARAMETER("bEnable",KVS_PT_BOOLEAN,0,bEnable) KVSO_PARAMETERS_END(c) if (widget()) - ((KviTalListView *)object())->setAcceptDrops(bEnable); + ((KviTalTreeWidget *)object())->setAcceptDrops(bEnable); return true; } */ -bool KviKvsObject_listview::function_clear(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidget::function_clear(KviKvsObjectFunctionCall *c) { if (widget()) - ((KviTalListView *)object())->clear(); + ((KviTalTreeWidget *)object())->clear(); return true; } -bool KviKvsObject_listview::function_selectedItem(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidget::function_selectedItems(KviKvsObjectFunctionCall *c) { if(widget()) - c->returnValue()->setHObject(KviKvsObject_listviewitem::itemToHandle(((KviTalListView *)widget())->selectedItem())); + { + QList<QTreeWidgetItem *> list=((KviTalTreeWidget *)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)))); + } else c->returnValue()->setHObject((kvs_hobject_t)0); return true; } -bool KviKvsObject_listview::function_firstChild(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidget::function_firstChild(KviKvsObjectFunctionCall *c) { if(widget()) - c->returnValue()->setHObject(KviKvsObject_listviewitem::itemToHandle(((KviTalListView *)widget())->firstChild())); + c->returnValue()->setHObject(KviKvsObject_treewidgetitem::itemToHandle((KviTalTreeWidgetItem*)((KviTalTreeWidget *)widget())->topLevelItem(0))); else c->returnValue()->setHObject((kvs_hobject_t)0); return true; } -bool KviKvsObject_listview::function_currentItem(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidget::function_currentItem(KviKvsObjectFunctionCall *c) { if(widget()) - c->returnValue()->setHObject(KviKvsObject_listviewitem::itemToHandle(((KviTalListView *)widget())->currentItem())); + c->returnValue()->setHObject(KviKvsObject_treewidgetitem::itemToHandle((KviTalTreeWidgetItem*)((KviTalTreeWidget *)widget())->currentItem())); else c->returnValue()->setHObject((kvs_hobject_t)0); return true; } - -bool KviKvsObject_listview::function_setColumnText(KviKvsObjectFunctionCall *c) +/* +bool KviKvsObject_treewidget::function_setColumnText(KviKvsObjectFunctionCall *c) { kvs_int_t uCol; QString szText; @@ -296,11 +359,20 @@ bool KviKvsObject_listview::function_setColumnText(KviKvsObjectFunctionCall *c) KVSO_PARAMETER("column",KVS_PT_UNSIGNEDINTEGER,0,uCol) KVSO_PARAMETER("text",KVS_PT_STRING,0,szText) KVSO_PARAMETERS_END(c) - if (widget())((KviTalListView *)widget())->setColumnText(uCol,szText); + if (widget())((KviTalTreeWidget *)widget())->setColumnText(uCol,szText); return true; } - -bool KviKvsObject_listview::function_setSelectionMode(KviKvsObjectFunctionCall *c) +*/ +bool KviKvsObject_treewidget::function_setColumnCount(KviKvsObjectFunctionCall *c) +{ + kvs_int_t uCol; + KVSO_PARAMETERS_BEGIN(c) + KVSO_PARAMETER("column",KVS_PT_UNSIGNEDINTEGER,0,uCol) + KVSO_PARAMETERS_END(c) + if (widget())((KviTalTreeWidget *)widget())->setColumnCount(uCol); + return true; +} +bool KviKvsObject_treewidget::function_setSelectionMode(KviKvsObjectFunctionCall *c) { QString szMode; KVSO_PARAMETERS_BEGIN(c) @@ -308,230 +380,245 @@ bool KviKvsObject_listview::function_setSelectionMode(KviKvsObjectFunctionCall * KVSO_PARAMETERS_END(c) if(!widget())return true; if(KviQString::equalCI(szMode,"NoSelection")) - ((KviTalListView *)widget())->setSelectionMode(KviTalListView::NoSelection); + ((KviTalTreeWidget *)widget())->setSelectionMode(QAbstractItemView::NoSelection); else if(KviQString::equalCI(szMode,"Multi")) - ((KviTalListView *)widget())->setSelectionMode(KviTalListView::Multi); + ((KviTalTreeWidget *)widget())->setSelectionMode(KviTalTreeWidget::MultiSelection); else if(KviQString::equalCI(szMode,"Extended")) - ((KviTalListView *)widget())->setSelectionMode(KviTalListView::Extended); + ((KviTalTreeWidget *)widget())->setSelectionMode(KviTalTreeWidget::ExtendedSelection); else if(KviQString::equalCI(szMode,"Single")) - ((KviTalListView *)widget())->setSelectionMode(KviTalListView::Single); + ((KviTalTreeWidget *)widget())->setSelectionMode(KviTalTreeWidget::SingleSelection); else c->warning(__tr2qs("Invalid selection mode '%Q'"),&szMode); return true; } -bool KviKvsObject_listview::function_setSorting(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidget::function_setSorting(KviKvsObjectFunctionCall *c) { kvs_int_t iCol; - bool bEnabled; + bool bEnables; KVSO_PARAMETERS_BEGIN(c) KVSO_PARAMETER("column",KVS_PT_INT,0,iCol) - KVSO_PARAMETER("benabled",KVS_PT_BOOL,0,bEnabled) - KVSO_PARAMETERS_END(c) - if (widget()) ((KviTalListView *)widget())->setSorting(iCol,bEnabled); + KVSO_PARAMETER("sorting",KVS_PT_BOOLEAN,0,bEnables) + 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); return true; } -bool KviKvsObject_listview::function_setRootIsDecorated(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidget::function_setRootIsDecorated(KviKvsObjectFunctionCall *c) { bool bEnabled; KVSO_PARAMETERS_BEGIN(c) KVSO_PARAMETER("bEnabled",KVS_PT_BOOL,0,bEnabled) KVSO_PARAMETERS_END(c) - if (widget()) ((KviTalListView *)widget())->setRootIsDecorated(bEnabled); + if (widget()) ((KviTalTreeWidget *)widget())->setRootIsDecorated(bEnabled); return true; } -bool KviKvsObject_listview::function_setAllColumnsShowFocus(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidget::function_setAllColumnsShowFocus(KviKvsObjectFunctionCall *c) { bool bEnabled; KVSO_PARAMETERS_BEGIN(c) KVSO_PARAMETER("bAllColumnsShowFocus",KVS_PT_BOOL,0,bEnabled) KVSO_PARAMETERS_END(c) - if (widget())((KviTalListView *)widget())->setAllColumnsShowFocus(bEnabled); + if (widget())((KviTalTreeWidget *)widget())->setAllColumnsShowFocus(bEnabled); return true; } -bool KviKvsObject_listview::function_hideListViewHeader(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidget::function_hideListViewHeader(KviKvsObjectFunctionCall *c) { -// ((KviTalListView *)widget())->header()->hide(); + ((KviTalTreeWidget *)widget())->header()->hide(); return true; } -bool KviKvsObject_listview::function_showListViewHeader(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidget::function_showListViewHeader(KviKvsObjectFunctionCall *c) { -// ((KviTalListView *)widget())->header()->show(); + ((KviTalTreeWidget *)widget())->header()->show(); return true; } -bool KviKvsObject_listview::function_listViewHeaderIsVisible(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidget::function_listViewHeaderIsVisible(KviKvsObjectFunctionCall *c) { - c->returnValue()->setBoolean(((KviTalListView *)widget())->header()->isVisible()); + c->returnValue()->setBoolean(((KviTalTreeWidget *)widget())->header()->isVisible()); return true; } -bool KviKvsObject_listview::function_itemClickedEvent(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidget::function_itemClickedEvent(KviKvsObjectFunctionCall *c) { emitSignal("itemClicked",c,c->params()); return true; } -void KviKvsObject_listview::slotClicked(KviTalListViewItem * i) +void KviKvsObject_treewidget::slotClicked(KviTalTreeWidgetItem * i,int col) { - KviKvsVariantList params(new KviKvsVariant(KviKvsObject_listviewitem::itemToHandle(i))); + KviKvsVariant *column=new KviKvsVariant((kvs_int_t)col); + + KviKvsVariantList params(new KviKvsVariant(KviKvsObject_treewidgetitem::itemToHandle(i)),column); callFunction(this,"itemClickedEvent",0,¶ms); } -bool KviKvsObject_listview::function_selectionChangedEvent(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidget::function_selectionChangedEvent(KviKvsObjectFunctionCall *c) { emitSignal("selectionChanged",c,c->params()); return true; } -void KviKvsObject_listview::slotSelectionChanged(KviTalListViewItem * i) +void KviKvsObject_treewidget::slotSelectionChanged() { - KviKvsVariantList params(new KviKvsVariant(KviKvsObject_listviewitem::itemToHandle(i))); - callFunction(this,"selectionChangedEvent",0,¶ms); -} -void KviKvsObject_listview::slotMultipleSelectionChanged() -{ - KviKvsVariantList params(new KviKvsVariant((kvs_hobject_t)0)); - callFunction(this,"selectionChangedEvent",0,¶ms); + if (((KviTalTreeWidget *)widget())->selectionMode()==KviTalTreeWidget::SingleSelection) + { + KviTalTreeWidgetItem *it=(KviTalTreeWidgetItem *) ((KviTalTreeWidget *)widget())->currentItem(); + KviKvsVariantList params(new KviKvsVariant(KviKvsObject_treewidgetitem::itemToHandle(it))); + callFunction(this,"selectionChangedEvent",0,¶ms); + } + else{ + KviKvsVariantList params(new KviKvsVariant((kvs_hobject_t)0)); + callFunction(this,"selectionChangedEvent",0,¶ms); + } + } - - -bool KviKvsObject_listview::function_currentChangedEvent(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidget::function_currentChangedEvent(KviKvsObjectFunctionCall *c) { emitSignal("currentChanged",c,c->params()); return true; } -void KviKvsObject_listview::slotCurrentChanged(KviTalListViewItem * i) +void KviKvsObject_treewidget::slotCurrentChanged(KviTalTreeWidgetItem * i,KviTalTreeWidgetItem *prev) { - KviKvsVariantList params(new KviKvsVariant(KviKvsObject_listviewitem::itemToHandle(i))); + KviKvsVariantList params(new KviKvsVariant(KviKvsObject_treewidgetitem::itemToHandle(i)),new KviKvsVariant(KviKvsObject_treewidgetitem::itemToHandle(prev))); callFunction(this,"currentChangedEvent",0,¶ms); } -bool KviKvsObject_listview::function_returnPressedEvent(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidget::function_itemActivatedEvent(KviKvsObjectFunctionCall *c) { - emitSignal("returnPressed",c,c->params()); - return true; -} + //FIXME: compatibility + emitSignal("returnPressed",c,c->params());//<----remove me + // -void KviKvsObject_listview::slotReturnPressed(KviTalListViewItem * i) -{ - KviKvsVariantList params(new KviKvsVariant(KviKvsObject_listviewitem::itemToHandle(i))); - callFunction(this,"returnPressedEvent",0,¶ms); -} - -bool KviKvsObject_listview::function_spacePressedEvent(KviKvsObjectFunctionCall *c) -{ - emitSignal("spacePressed",c,c->params()); + emitSignal("itemActivated",c,c->params()); return true; } -void KviKvsObject_listview::slotSpacePressed(KviTalListViewItem * i) +void KviKvsObject_treewidget::slotItemActivated(KviTalTreeWidgetItem * i,int col) { - KviKvsVariantList params(new KviKvsVariant(KviKvsObject_listviewitem::itemToHandle(i))); - callFunction(this,"spacePressedEvent",0,¶ms); + KviKvsVariant *column=new KviKvsVariant((kvs_int_t)col); + KviKvsVariantList params(new KviKvsVariant(KviKvsObject_treewidgetitem::itemToHandle(i)),column); + callFunction(this,"itemActivatedEvent",0,¶ms); } -bool KviKvsObject_listview::function_onItemEvent(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidget::function_onItemEvent(KviKvsObjectFunctionCall *c) { + emitSignal("onItem",c,c->params()); return true; } -void KviKvsObject_listview::slotOnItem(KviTalListViewItem * i) +void KviKvsObject_treewidget::slotOnItemEntered(KviTalTreeWidgetItem * i,int col) { - KviKvsVariantList params(new KviKvsVariant(KviKvsObject_listviewitem::itemToHandle(i))); + KviKvsVariant *column=new KviKvsVariant((kvs_int_t)col); + + KviKvsVariantList params(new KviKvsVariant(KviKvsObject_treewidgetitem::itemToHandle(i)),column); callFunction(this,"onItemEvent",0,¶ms); } -bool KviKvsObject_listview::function_itemExpandedEvent(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidget::function_itemExpandedEvent(KviKvsObjectFunctionCall *c) { emitSignal("itemExpanded",c,c->params()); return true; } -void KviKvsObject_listview::slotItemExpanded(KviTalListViewItem * i) +void KviKvsObject_treewidget::slotItemExpanded(KviTalTreeWidgetItem * i) { - KviKvsVariantList params(new KviKvsVariant(KviKvsObject_listviewitem::itemToHandle(i))); + KviKvsVariantList params(new KviKvsVariant(KviKvsObject_treewidgetitem::itemToHandle(i))); callFunction(this,"itemExpandedEvent",0,¶ms); } -bool KviKvsObject_listview::function_itemCollapsedEvent(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidget::function_itemCollapsedEvent(KviKvsObjectFunctionCall *c) { emitSignal("itemCollapsed",c,c->params()); return true; } -void KviKvsObject_listview::slotItemCollapsed(KviTalListViewItem * i) +void KviKvsObject_treewidget::slotItemCollapsed(KviTalTreeWidgetItem * i) { - KviKvsVariantList params(new KviKvsVariant(KviKvsObject_listviewitem::itemToHandle(i))); + KviKvsVariantList params(new KviKvsVariant(KviKvsObject_treewidgetitem::itemToHandle(i))); callFunction(this,"itemCollapsedEvent",0,¶ms); } -bool KviKvsObject_listview::function_rightButtonClickedEvent(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidget::function_rightButtonClickedEvent(KviKvsObjectFunctionCall *c) { emitSignal("rightButtonClicked",c,c->params()); return true; } -void KviKvsObject_listview::slotRightButtonClicked(KviTalListViewItem * i,const QPoint &coor, int col) +void KviKvsObject_treewidget::customContextMenuRequested(const QPoint &pnt) { - KviKvsVariant *xpos=new KviKvsVariant((kvs_int_t)coor.x()); - KviKvsVariant *ypos=new KviKvsVariant((kvs_int_t)coor.y()); - KviKvsVariant *column=new KviKvsVariant((kvs_int_t)col); - KviKvsVariantList params(new KviKvsVariant(KviKvsObject_listviewitem::itemToHandle(i)),xpos,ypos,column); + 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); + KviKvsVariantList params(new KviKvsVariant(KviKvsObject_treewidgetitem::itemToHandle(it)),xpos,ypos); callFunction(this,"rightButtonClickedEvent",0,¶ms); } -bool KviKvsObject_listview::function_itemRenamedEvent(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidget::function_itemChangedEvent(KviKvsObjectFunctionCall *c) { - emitSignal("itemRenamed",c,c->params()); + //FIXME + emitSignal("itemRenamed",c,c->params());//<--remove me + + emitSignal("itemChanged",c,c->params()); return true; } -void KviKvsObject_listview::slotItemRenamed(KviTalListViewItem *item,int col,const QString & szText) +void KviKvsObject_treewidget::slotItemChanged(KviTalTreeWidgetItem *item,int col) { KviKvsVariant *column=new KviKvsVariant((kvs_int_t)col); - KviKvsVariant *txt=new KviKvsVariant(szText); - KviKvsVariantList params(new KviKvsVariant(KviKvsObject_listviewitem::itemToHandle(item)),column,txt); - callFunction(this,"itemRenamedEvent",0,¶ms); + KviKvsVariantList params(new KviKvsVariant(KviKvsObject_treewidgetitem::itemToHandle(item)),column); + callFunction(this,"itemChangedEvent",0,¶ms); } -void KviKvsObject_listview::fileDropped(QString &szFile,KviTalListViewItem *item) + +void KviKvsObject_treewidget::fileDropped(QString &szFile,KviTalTreeWidgetItem *item) { KviKvsVariant *file=new KviKvsVariant(szFile); - KviKvsVariantList params(new KviKvsVariant(KviKvsObject_listviewitem::itemToHandle(item)),file); + KviKvsVariantList params(new KviKvsVariant(KviKvsObject_treewidgetitem::itemToHandle(item)),file); callFunction(this,"fileDroppedEvent",0,¶ms); } -KviKvsMdmListView::KviKvsMdmListView(QWidget * par,const char * name,KviKvsObject_listview *parent) -:KviTalListView(par) +KviKvsMdmListView::KviKvsMdmListView(QWidget * par,const char * name,KviKvsObject_treewidget *parent) +:KviTalTreeWidget(par) { m_pParentScript=parent; setAcceptDrops(true); - viewport()->setAcceptDrops( TRUE ); + setDragEnabled(true); + setDropIndicatorShown(true); + setDragDropMode(QAbstractItemView::DragDrop); + viewport()->setAcceptDrops(true); } KviKvsMdmListView::~KviKvsMdmListView() { } -void KviKvsMdmListView::contentsDragEnterEvent( QDragEnterEvent *e ) + +void KviKvsMdmListView::dragEnterEvent( QDragEnterEvent *e ) { + debug("Drag enter event"); if(!e->mimeData()->hasUrls()) { + debug("Ignore drag"); e->ignore(); return; } } -void KviKvsMdmListView::contentsDropEvent(QDropEvent *e) +void KviKvsMdmListView::dropEvent(QDropEvent *e) { + debug("Drop event"); QList<QUrl> list; if(e->mimeData()->hasUrls()) { @@ -544,11 +631,12 @@ void KviKvsMdmListView::contentsDropEvent(QDropEvent *e) { QUrl url = *it; QString path = url.path(); + debug("path %s",path.toUtf8().data()); #if !defined(COMPILE_ON_WINDOWS) && !defined(COMPILE_ON_MINGW) if(path[0] != '/')path.prepend("/"); //HACK HACK HACK for Qt bug (?!?) #endif - KviTalListViewItem *i = itemAt( contentsToViewport(e->pos()) ); - m_pParentScript->fileDropped(path,i); + // KviTalTreeWidgetItem *i = itemAt( contentsToViewport(e->pos()) ); + // m_pParentScript->fileDropped(path,i); } } } diff --git a/src/modules/objects/class_listview.h b/src/modules/objects/class_listview.h index 21c693d84..4c8773b93 100644 --- a/src/modules/objects/class_listview.h +++ b/src/modules/objects/class_listview.h @@ -2,7 +2,7 @@ #define _CLASS_LISTVIEW_H_ //================================================================================= // -// File : class_listview.h +// File : class_treewidget.h // Creation date : Fri Jan 28 14:21:48 CEST 2005 // by Tonino Imbesi(Grifisx) and Alessandro Carbone(Noldor) // @@ -26,21 +26,21 @@ // //================================================================================= -#include "kvi_tal_listview.h" +#include "kvi_tal_treewidget.h" #include "class_widget.h" #include "class_listviewitem.h" #include "object_macros.h" -class KviKvsObject_listview : public KviKvsObject_widget +class KviKvsObject_treewidget : public KviKvsObject_widget { Q_OBJECT public: - KVSO_DECLARE_OBJECT(KviKvsObject_listview) + KVSO_DECLARE_OBJECT(KviKvsObject_treewidget) public: QWidget * widget() { return (QWidget *)object(); }; - void fileDropped(QString &,KviTalListViewItem *); + void fileDropped(QString &,KviTalTreeWidgetItem *); protected: virtual bool init(KviKvsRunTimeContext * pContext,KviKvsVariantList *pParams); @@ -54,48 +54,49 @@ protected: bool function_itemClickedEvent(KviKvsObjectFunctionCall *c); bool function_selectionChangedEvent(KviKvsObjectFunctionCall *c); bool function_currentChangedEvent(KviKvsObjectFunctionCall *c); - bool function_returnPressedEvent(KviKvsObjectFunctionCall *c); - bool function_spacePressedEvent(KviKvsObjectFunctionCall *c); + bool function_itemActivatedEvent(KviKvsObjectFunctionCall *c); bool function_onItemEvent(KviKvsObjectFunctionCall *c); bool function_itemExpandedEvent(KviKvsObjectFunctionCall *c); bool function_itemCollapsedEvent(KviKvsObjectFunctionCall *c); - bool function_itemRenamedEvent(KviKvsObjectFunctionCall *c); + bool function_itemChangedEvent(KviKvsObjectFunctionCall *c); bool function_rightButtonClickedEvent(KviKvsObjectFunctionCall *c); - bool function_selectedItem(KviKvsObjectFunctionCall *c); + bool function_selectedItems(KviKvsObjectFunctionCall *c); bool function_currentItem(KviKvsObjectFunctionCall *c); bool function_setSelectionMode(KviKvsObjectFunctionCall *c); bool function_firstChild(KviKvsObjectFunctionCall *c); bool function_listViewHeaderIsVisible(KviKvsObjectFunctionCall *c); bool function_showListViewHeader(KviKvsObjectFunctionCall *c); bool function_hideListViewHeader(KviKvsObjectFunctionCall *c); - bool function_setAcceptDrops(KviKvsObjectFunctionCall *c); + bool function_setHeaderLabels(KviKvsObjectFunctionCall *c); + bool function_setColumnCount(KviKvsObjectFunctionCall *c); + protected slots: - void slotClicked(KviTalListViewItem *); - void slotSelectionChanged(KviTalListViewItem *); - void slotMultipleSelectionChanged(); - void slotCurrentChanged(KviTalListViewItem *); - void slotReturnPressed(KviTalListViewItem *); - void slotSpacePressed(KviTalListViewItem *); - void slotOnItem(KviTalListViewItem *); - void slotItemExpanded(KviTalListViewItem *); - void slotItemCollapsed(KviTalListViewItem *); - void slotItemRenamed(KviTalListViewItem *,int,const QString &); - void slotRightButtonClicked(KviTalListViewItem * i,const QPoint &coor, int col); + void slotClicked(KviTalTreeWidgetItem *,int); + void customContextMenuRequested(const QPoint &pnt); + void slotSelectionChanged(); + void slotCurrentChanged(KviTalTreeWidgetItem *,KviTalTreeWidgetItem *); + void slotItemActivated(KviTalTreeWidgetItem *,int col); + void slotOnItemEntered(KviTalTreeWidgetItem *,int col); + void slotItemExpanded(KviTalTreeWidgetItem *); + void slotItemCollapsed(KviTalTreeWidgetItem *); + void slotItemChanged(KviTalTreeWidgetItem *,int); }; -class KviKvsMdmListView : public KviTalListView +class KviKvsMdmListView : public KviTalTreeWidget { Q_OBJECT public: - KviKvsMdmListView(QWidget * par,const char * name,KviKvsObject_listview *); + KviKvsMdmListView(QWidget * par,const char * name,KviKvsObject_treewidget *); virtual ~KviKvsMdmListView(); protected: - KviKvsObject_listview *m_pParentScript; - void contentsDropEvent(QDropEvent *e); - void contentsDragEnterEvent( QDragEnterEvent *e ); + KviKvsObject_treewidget *m_pParentScript; + void dropEvent(QDropEvent *e); + void dragEnterEvent( QDragEnterEvent *e ); + + }; #endif //!_CLASS_LISTVIEW_H_ diff --git a/src/modules/objects/class_listviewitem.cpp b/src/modules/objects/class_listviewitem.cpp index 3dc5af9a8..286ae8f59 100644 --- a/src/modules/objects/class_listviewitem.cpp +++ b/src/modules/objects/class_listviewitem.cpp @@ -27,28 +27,50 @@ #include "kvi_locale.h" #include "kvi_iconmanager.h" +const int item_flags[] = {
+ Qt::ItemIsSelectable,
+ Qt::ItemIsEditable,
+ Qt::ItemIsDragEnabled,
+ Qt::ItemIsDropEnabled,
+ Qt::ItemIsUserCheckable,
+ Qt::ItemIsEnabled,
+ Qt::ItemIsTristate
+};
+
+const char * const itemflags_tbl[] = {
+ "selectable",
+ "editable",
+ "dragEnabled",
+ "dropEnabled",
+ "userCheckable",
+ "enabled",
+ "tristate"
+};
+
+#define itemflags_num (sizeof(itemflags_tbl) / sizeof(itemflags_tbl[0]))
+
/* - @doc: listviewitem + @doc: treewidgetitem @keyterms: - listview listviewitem class + treewidget treewidgetitem class @title: - listviewitem class + treewidgetitem class @type: class @short: - A listviewitem class + A treewidgetitem class @inherits: - [class]listviewitem[/class] + [class]treewidgetitem[/class] @description: - The listviewitem class implements a list view item. - A list view item is a multi-column object capable of displaying itself in a [class]listview[/class]. - To use this class you must instantiate it with another listviewitem or a [class]listview[/class] + The treewidgetitem class implements a list view item. + A list view item is a multi-column object capable of displaying itself in a [class]treewidget[/class]. + To use this class you must instantiate it with another treewidgetitem or a [class]treewidget[/class] as parent. The item will be automatically displayed. You can set the text and a pixmap in each column and you can make it checkable - with [classfnc:listviewitem]$setCheckable[/classfnc](). - A checkable listviewitem will display a small check mark in the first column. + with [classfnc:treewidgetitem]$setCheckable[/classfnc](). + A checkable treewidgetitem will display a small check mark in the first column. @functions: !fn: $setText(<column:integer>,<text:string>) Sets the text in column column to text, if column is a valid column number and text is different from the existing text. @@ -85,90 +107,92 @@ Returns $true if this item is checkable and $false otherwise !fn: $setChecked(<bChecked:boolean>) - Sets this item to be checked or not. [classfnc:listviewitem]$setCheckable[/classfnc]() must + Sets this item to be checked or not. [classfnc:treewidgetitem]$setCheckable[/classfnc]() must have been previously called. !fn: $isChecked() - Returns the check status of this item. [classfnc:listviewitem]$setCheckable[/classfnc]() must + Returns the check status of this item. [classfnc:treewidgetitem]$setCheckable[/classfnc]() must have been previously called. - !fn: <listviewitem> $firstChild() - Returns the first child item of this listviewitem or $null if this item has no children. + !fn: <treewidgetitem> $firstChild() + Returns the first child item of this treewidgetitem or $null if this item has no children. - !fn: <listviewitem> $nextSibling() - Returns the next sibling item of this listviewitem or $null if there are no sibling items. + !fn: <treewidgetitem> $nextSibling() + Returns the next sibling item of this treewidgetitem or $null if there are no sibling items. Next sibling stands for the item at the same tree level coming just after :) */ //=========================================================================================== -KVSO_BEGIN_REGISTERCLASS(KviKvsObject_listviewitem,"listviewitem","object") - KVSO_REGISTER_HANDLER(KviKvsObject_listviewitem,"setText",function_setText) - KVSO_REGISTER_HANDLER(KviKvsObject_listviewitem,"text",function_text) - KVSO_REGISTER_HANDLER(KviKvsObject_listviewitem,"setPixmap",function_setPixmap); - KVSO_REGISTER_HANDLER(KviKvsObject_listviewitem,"setRenameEnabled",function_setRenameEnabled); - KVSO_REGISTER_HANDLER(KviKvsObject_listviewitem,"setEnabled",function_setEnabled); - KVSO_REGISTER_HANDLER(KviKvsObject_listviewitem,"isEnabled",function_isEnabled); - KVSO_REGISTER_HANDLER(KviKvsObject_listviewitem,"setOpen",function_setOpen); - KVSO_REGISTER_HANDLER(KviKvsObject_listviewitem,"isOpen",function_isOpen); - KVSO_REGISTER_HANDLER(KviKvsObject_listviewitem,"setCheckable",function_setCheckable); - KVSO_REGISTER_HANDLER(KviKvsObject_listviewitem,"isCheckable",function_isCheckable); - KVSO_REGISTER_HANDLER(KviKvsObject_listviewitem,"setChecked",function_setChecked); - KVSO_REGISTER_HANDLER(KviKvsObject_listviewitem,"isChecked",function_isChecked); - KVSO_REGISTER_HANDLER(KviKvsObject_listviewitem,"firstChild",function_firstChild); - KVSO_REGISTER_HANDLER(KviKvsObject_listviewitem,"nextSibling",function_nextSibling); -KVSO_END_REGISTERCLASS(KviKvsObject_listviewitem) +KVSO_BEGIN_REGISTERCLASS(KviKvsObject_treewidgetitem,"listviewitem","object") + KVSO_REGISTER_HANDLER(KviKvsObject_treewidgetitem,"setText",function_setText) + KVSO_REGISTER_HANDLER(KviKvsObject_treewidgetitem,"text",function_text) + KVSO_REGISTER_HANDLER(KviKvsObject_treewidgetitem,"setPixmap",function_setPixmap); + KVSO_REGISTER_HANDLER(KviKvsObject_treewidgetitem,"setRenameEnabled",function_setRenameEnabled); + //KVSO_REGISTER_HANDLER(KviKvsObject_treewidgetitem,"setEnabled",function_setEnabled); + //KVSO_REGISTER_HANDLER(KviKvsObject_treewidgetitem,"isEnabled",function_isEnabled); + KVSO_REGISTER_HANDLER(KviKvsObject_treewidgetitem,"setOpen",function_setOpen); + KVSO_REGISTER_HANDLER(KviKvsObject_treewidgetitem,"isOpen",function_isOpen); + //KVSO_REGISTER_HANDLER(KviKvsObject_treewidgetitem,"setCheckable",function_setCheckable); + //KVSO_REGISTER_HANDLER(KviKvsObject_treewidgetitem,"isCheckable",function_isCheckable); + KVSO_REGISTER_HANDLER(KviKvsObject_treewidgetitem,"setChecked",function_setChecked); + KVSO_REGISTER_HANDLER(KviKvsObject_treewidgetitem,"isChecked",function_isChecked); + KVSO_REGISTER_HANDLER(KviKvsObject_treewidgetitem,"firstChild",function_firstChild); + KVSO_REGISTER_HANDLER(KviKvsObject_treewidgetitem,"setFlags",function_setFlags); + // KVSO_REGISTER_HANDLER(KviKvsObject_treewidgetitem,"nextSibling",function_nextSibling); +KVSO_END_REGISTERCLASS(KviKvsObject_treewidgetitem) -KVSO_BEGIN_CONSTRUCTOR(KviKvsObject_listviewitem,KviKvsObject) + +KVSO_BEGIN_CONSTRUCTOR(KviKvsObject_treewidgetitem,KviKvsObject) m_pListViewItem = 0; -KVSO_END_CONSTRUCTOR(KviKvsObject_listviewitem) +KVSO_END_CONSTRUCTOR(KviKvsObject_treewidgetitem) -KVSO_BEGIN_DESTRUCTOR(KviKvsObject_listviewitem) +KVSO_BEGIN_DESTRUCTOR(KviKvsObject_treewidgetitem) if(m_pListViewItem)delete m_pListViewItem; -KVSO_END_CONSTRUCTOR(KviKvsObject_listviewitem) +KVSO_END_CONSTRUCTOR(KviKvsObject_treewidgetitem) -bool KviKvsObject_listviewitem::init(KviKvsRunTimeContext * pContext,KviKvsVariantList *pParams) +bool KviKvsObject_treewidgetitem::init(KviKvsRunTimeContext * pContext,KviKvsVariantList *pParams) { if (!parentObject()) { - pContext->error(__tr2qs("The listviewitem cannot be parentless")); + pContext->error(__tr2qs("The treewidgetitem cannot be parentless")); return false; } - if(parentObject()->inherits("KviKvsObject_listviewitem")) + if(parentObject()->inherits("KviKvsObject_treewidgetitem")) { - m_pListViewItem = new KviKvsMdmStandardListViewItem(this,((KviKvsObject_listviewitem *)parentObject())->m_pListViewItem); + m_pListViewItem = new KviKvsMdmStandardListViewItem(this,((KviKvsObject_treewidgetitem *)parentObject())->m_pListViewItem); } else { - if(parentObject()->inherits("KviKvsObject_listview")) - m_pListViewItem = new KviKvsMdmStandardListViewItem(this,((KviTalListView *)parentScriptWidget())); + if(parentObject()->inherits("KviKvsObject_treewidget")) + m_pListViewItem = new KviKvsMdmStandardListViewItem(this,((KviTalTreeWidget *)parentScriptWidget())); else { - pContext->error(__tr2qs("The parent of the listviewitem must be either another listviewitem or a listview")); + pContext->error(__tr2qs("The parent of the treewidgetitem must be either another treewidgetitem or a treewidget")); return false; } } return true; } -void KviKvsObject_listviewitem::childDestroyed() +void KviKvsObject_treewidgetitem::childDestroyed() { if(m_pListViewItem == 0)return; m_pListViewItem = 0; die(); } -KviKvsMdmStandardListViewItem::KviKvsMdmStandardListViewItem(KviKvsObject_listviewitem * ob,KviTalListView * par) -:KviTalListViewItem(par), m_pMasterObject(ob) +KviKvsMdmStandardListViewItem::KviKvsMdmStandardListViewItem(KviKvsObject_treewidgetitem * ob,KviTalTreeWidget * par) +:KviTalTreeWidgetItem(par), m_pMasterObject(ob) { } -KviKvsMdmStandardListViewItem::KviKvsMdmStandardListViewItem(KviKvsObject_listviewitem * ob,KviTalListViewItem * par) -:KviTalListViewItem(par), m_pMasterObject(ob) +KviKvsMdmStandardListViewItem::KviKvsMdmStandardListViewItem(KviKvsObject_treewidgetitem * ob,KviTalTreeWidgetItem * par) +:KviTalTreeWidgetItem(par), m_pMasterObject(ob) { } @@ -176,15 +200,15 @@ KviKvsMdmStandardListViewItem::~KviKvsMdmStandardListViewItem() { if(m_pMasterObject)m_pMasterObject->childDestroyed(); } +/* - -KviKvsMdmCheckListViewItem::KviKvsMdmCheckListViewItem(KviKvsObject_listviewitem * ob,KviTalListView * par) +KviKvsMdmCheckListViewItem::KviKvsMdmCheckListViewItem(KviKvsObject_treewidgetitem * ob,KviTalTreeWidget * par) :KviTalCheckListItem(par,QString::null,KviTalCheckListItem::CheckBox), m_pMasterObject(ob) { } -KviKvsMdmCheckListViewItem::KviKvsMdmCheckListViewItem(KviKvsObject_listviewitem * ob,KviTalListViewItem * par) +KviKvsMdmCheckListViewItem::KviKvsMdmCheckListViewItem(KviKvsObject_treewidgetitem * ob,KviTalTreeWidgetItem * par) :KviTalCheckListItem(par,QString::null,KviTalCheckListItem::CheckBox), m_pMasterObject(ob) { } @@ -193,20 +217,21 @@ KviKvsMdmCheckListViewItem::~KviKvsMdmCheckListViewItem() { if(m_pMasterObject)m_pMasterObject->childDestroyed(); } +*/ - -kvs_hobject_t KviKvsObject_listviewitem::itemToHandle(KviTalListViewItem * it) +kvs_hobject_t KviKvsObject_treewidgetitem::itemToHandle(KviTalTreeWidgetItem * it) { if(!it)return (kvs_hobject_t)0; - KviKvsObject_listviewitem * pObject; - if(it->rtti() == 1)pObject = ((KviKvsMdmCheckListViewItem *)it)->masterObject(); - else pObject = ((KviKvsMdmStandardListViewItem *)it)->masterObject(); + KviKvsObject_treewidgetitem * pObject; +// if(it->rtti() == 1)pObject = ((KviKvsMdmCheckListViewItem *)it)->masterObject(); +// else + pObject = ((KviKvsMdmStandardListViewItem *)it)->masterObject(); if(!pObject)return (kvs_hobject_t)0; return pObject->handle(); } -bool KviKvsObject_listviewitem::function_setText(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidgetitem::function_setText(KviKvsObjectFunctionCall *c) { kvs_uint_t uCol; QString szText; @@ -219,16 +244,16 @@ bool KviKvsObject_listviewitem::function_setText(KviKvsObjectFunctionCall *c) return true; } -bool KviKvsObject_listviewitem::function_firstChild(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidgetitem::function_firstChild(KviKvsObjectFunctionCall *c) { if(m_pListViewItem) - c->returnValue()->setHObject(itemToHandle(m_pListViewItem->firstChild())); + c->returnValue()->setHObject(itemToHandle((KviTalTreeWidgetItem*)m_pListViewItem->child(0))); else c->returnValue()->setHObject((kvs_hobject_t)0); return true; } - -bool KviKvsObject_listviewitem::function_nextSibling(KviKvsObjectFunctionCall *c) +/* +bool KviKvsObject_treewidgetitem::function_nextSibling(KviKvsObjectFunctionCall *c) { if(m_pListViewItem) c->returnValue()->setHObject(itemToHandle(m_pListViewItem->nextSibling())); @@ -236,9 +261,9 @@ bool KviKvsObject_listviewitem::function_nextSibling(KviKvsObjectFunctionCall *c c->returnValue()->setHObject((kvs_hobject_t)0); return true; } +*/ - -bool KviKvsObject_listviewitem::function_setRenameEnabled(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidgetitem::function_setRenameEnabled(KviKvsObjectFunctionCall *c) { kvs_uint_t uCol; bool bEnabled; @@ -247,11 +272,49 @@ bool KviKvsObject_listviewitem::function_setRenameEnabled(KviKvsObjectFunctionCa KVSO_PARAMETER("bEnabled",KVS_PT_BOOL,0,bEnabled) KVSO_PARAMETERS_END(c) if(m_pListViewItem) - m_pListViewItem->setRenameEnabled(uCol,bEnabled); + m_pListViewItem->setFlags(m_pListViewItem->flags()|Qt::ItemIsEditable); return true; + } -bool KviKvsObject_listviewitem::function_setEnabled(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidgetitem::function_setFlags(KviKvsObjectFunctionCall *c) +{ + QStringList itemflags; + KVSO_PARAMETERS_BEGIN(c) + 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)
+ m_pListViewItem->setCheckState(0,Qt::Unchecked); + sum = sum | flag; + } + else + c->warning(__tr2qs("Unknown item flag: %s"),&itemflags.at(i)); + + } + if(m_pListViewItem) + m_pListViewItem->setFlags((Qt::ItemFlags)sum); + + return true; + + + +} +/* +bool KviKvsObject_treewidgetitem::function_setEnabled(KviKvsObjectFunctionCall *c) { bool bEnabled; KVSO_PARAMETERS_BEGIN(c) @@ -262,7 +325,7 @@ bool KviKvsObject_listviewitem::function_setEnabled(KviKvsObjectFunctionCall *c) return true; } -bool KviKvsObject_listviewitem::function_isEnabled(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidgetitem::function_isEnabled(KviKvsObjectFunctionCall *c) { if(!m_pListViewItem) { @@ -272,59 +335,60 @@ bool KviKvsObject_listviewitem::function_isEnabled(KviKvsObjectFunctionCall *c) c->returnValue()->setBoolean(m_pListViewItem->isEnabled()); return true; } - -bool KviKvsObject_listviewitem::function_setOpen(KviKvsObjectFunctionCall *c) +*/ +bool KviKvsObject_treewidgetitem::function_setOpen(KviKvsObjectFunctionCall *c) { bool bEnabled; KVSO_PARAMETERS_BEGIN(c) KVSO_PARAMETER("bEnabled",KVS_PT_BOOL,0,bEnabled) KVSO_PARAMETERS_END(c) if(m_pListViewItem) - m_pListViewItem->setOpen(bEnabled); + m_pListViewItem->setExpanded(bEnabled); return true; } -bool KviKvsObject_listviewitem::function_isOpen(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidgetitem::function_isOpen(KviKvsObjectFunctionCall *c) { if(!m_pListViewItem) { c->returnValue()->setBoolean(false); return true; } - c->returnValue()->setBoolean(m_pListViewItem->isOpen()); + c->returnValue()->setBoolean(m_pListViewItem->isExpanded()); return true; } -bool KviKvsObject_listviewitem::function_setChecked(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidgetitem::function_setChecked(KviKvsObjectFunctionCall *c) { bool bChecked; KVSO_PARAMETERS_BEGIN(c) KVSO_PARAMETER("bChecked",KVS_PT_BOOL,0,bChecked) KVSO_PARAMETERS_END(c) if(!m_pListViewItem)return true; - if(m_pListViewItem->rtti() != 1)return true; // not a QCheckListItem - ((KviKvsMdmCheckListViewItem *)m_pListViewItem)->setOn(bChecked); +// if(m_pListViewItem->rtti() != 1)return true; // not a QCheckListItem + ((KviTalTreeWidgetItem *)m_pListViewItem)->setCheckState(0,bChecked?Qt::Checked:Qt::Unchecked); return true; } -bool KviKvsObject_listviewitem::function_isChecked(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidgetitem::function_isChecked(KviKvsObjectFunctionCall *c) { if(!m_pListViewItem) { c->returnValue()->setBoolean(false); return true; } - if(m_pListViewItem->rtti() != 1) + /*if(m_pListViewItem->rtti() != 1) { c->returnValue()->setBoolean(false); return true; } - c->returnValue()->setBoolean(((KviKvsMdmCheckListViewItem *)m_pListViewItem)->isOn()); + */ + c->returnValue()->setBoolean(((KviTalTreeWidgetItem *)m_pListViewItem)->checkState(0)==Qt::Checked?1:0); return true; } - -bool KviKvsObject_listviewitem::function_setCheckable(KviKvsObjectFunctionCall *c) +/* +bool KviKvsObject_treewidgetitem::function_setCheckable(KviKvsObjectFunctionCall *c) { bool bCheckable; KVSO_PARAMETERS_BEGIN(c) @@ -334,10 +398,10 @@ bool KviKvsObject_listviewitem::function_setCheckable(KviKvsObjectFunctionCall * if(bCheckable) { if(m_pListViewItem->rtti() == 1)return true; // a QCheckListItem already - KviTalListViewItem * pParent = m_pListViewItem->parent(); - KviTalListView * pLV = (KviTalListView *)m_pListViewItem->listView(); + KviTalTreeWidgetItem * pParent = m_pListViewItem->parent(); + KviTalTreeWidget * pLV = (KviTalTreeWidget *)m_pListViewItem->listView(); // swap the items, so we don't die now - KviTalListViewItem * pThis = m_pListViewItem; + KviTalTreeWidgetItem * pThis = m_pListViewItem; m_pListViewItem = 0; delete pThis; if(pParent) @@ -346,10 +410,10 @@ bool KviKvsObject_listviewitem::function_setCheckable(KviKvsObjectFunctionCall * m_pListViewItem = new KviKvsMdmCheckListViewItem(this,pLV); } else { if(m_pListViewItem->rtti() != 1)return true; // not a QCheckListItem yet - KviTalListViewItem * pParent = m_pListViewItem->parent(); - KviTalListView * pLV = (KviTalListView *)m_pListViewItem->listView(); + KviTalTreeWidgetItem * pParent = m_pListViewItem->parent(); + KviTalTreeWidget * pLV = (KviTalTreeWidget *)m_pListViewItem->listView(); // swap the items, so we don't die now - KviTalListViewItem * pThis = m_pListViewItem; + KviTalTreeWidgetItem * pThis = m_pListViewItem; m_pListViewItem = 0; delete pThis; if(pParent) @@ -360,7 +424,7 @@ bool KviKvsObject_listviewitem::function_setCheckable(KviKvsObjectFunctionCall * return true; } -bool KviKvsObject_listviewitem::function_isCheckable(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidgetitem::function_isCheckable(KviKvsObjectFunctionCall *c) { if(!m_pListViewItem) { @@ -370,8 +434,8 @@ bool KviKvsObject_listviewitem::function_isCheckable(KviKvsObjectFunctionCall *c c->returnValue()->setBoolean(m_pListViewItem->rtti() == 1); return true; } - -bool KviKvsObject_listviewitem::function_text(KviKvsObjectFunctionCall *c) +*/ +bool KviKvsObject_treewidgetitem::function_text(KviKvsObjectFunctionCall *c) { kvs_uint_t uCol; KVSO_PARAMETERS_BEGIN(c) @@ -382,7 +446,7 @@ bool KviKvsObject_listviewitem::function_text(KviKvsObjectFunctionCall *c) return true; } -bool KviKvsObject_listviewitem::function_setPixmap(KviKvsObjectFunctionCall *c) +bool KviKvsObject_treewidgetitem::function_setPixmap(KviKvsObjectFunctionCall *c) { kvs_uint_t uCol; KviKvsObject *obPixmap; @@ -413,7 +477,7 @@ bool KviKvsObject_listviewitem::function_setPixmap(KviKvsObjectFunctionCall *c) return true; } } - m_pListViewItem->setPixmap(uCol,*pix); + m_pListViewItem->setIcon(uCol,QIcon(*pix)); return true; } diff --git a/src/modules/objects/class_listviewitem.h b/src/modules/objects/class_listviewitem.h index b7f0db217..f2c6b299a 100644 --- a/src/modules/objects/class_listviewitem.h +++ b/src/modules/objects/class_listviewitem.h @@ -22,21 +22,21 @@ // along with this program. If not, write to the Free Software Foundation, // Inc. ,59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -#include "kvi_tal_listview.h" +#include "kvi_tal_treewidget.h" #include "class_widget.h" #include "object_macros.h" -class KviKvsObject_listviewitem : public KviKvsObject +class KviKvsObject_treewidgetitem : public KviKvsObject { Q_OBJECT public: - KVSO_DECLARE_OBJECT(KviKvsObject_listviewitem) + KVSO_DECLARE_OBJECT(KviKvsObject_treewidgetitem) void childDestroyed(); protected: - KviTalListViewItem * m_pListViewItem; + KviTalTreeWidgetItem * m_pListViewItem; protected: virtual bool init(KviKvsRunTimeContext * pContext,KviKvsVariantList *pParams); protected: @@ -54,35 +54,37 @@ protected: bool function_setChecked(KviKvsObjectFunctionCall *c); bool function_isChecked(KviKvsObjectFunctionCall *c); bool function_firstChild(KviKvsObjectFunctionCall *c); - bool function_nextSibling(KviKvsObjectFunctionCall *c); + //bool function_nextSibling(KviKvsObjectFunctionCall *c); + bool function_setFlags(KviKvsObjectFunctionCall *c); + public: - static kvs_hobject_t itemToHandle(KviTalListViewItem * it); + static kvs_hobject_t itemToHandle(KviTalTreeWidgetItem * it); }; -class KviKvsMdmStandardListViewItem : public KviTalListViewItem +class KviKvsMdmStandardListViewItem : public KviTalTreeWidgetItem { public: - KviKvsMdmStandardListViewItem(KviKvsObject_listviewitem * ob,KviTalListView * par); - KviKvsMdmStandardListViewItem(KviKvsObject_listviewitem * ob,KviTalListViewItem * par); + KviKvsMdmStandardListViewItem(KviKvsObject_treewidgetitem * ob,KviTalTreeWidget * par); + KviKvsMdmStandardListViewItem(KviKvsObject_treewidgetitem * ob,KviTalTreeWidgetItem * par); virtual ~KviKvsMdmStandardListViewItem(); protected: - KviKvsObject_listviewitem * m_pMasterObject; + KviKvsObject_treewidgetitem * m_pMasterObject; public: - KviKvsObject_listviewitem * masterObject(){ return m_pMasterObject; } + KviKvsObject_treewidgetitem * masterObject(){ return m_pMasterObject; } }; - +/* class KviKvsMdmCheckListViewItem : public KviTalCheckListItem { public: - KviKvsMdmCheckListViewItem(KviKvsObject_listviewitem * ob,KviTalListView * par); - KviKvsMdmCheckListViewItem(KviKvsObject_listviewitem * ob,KviTalListViewItem * par); + KviKvsMdmCheckListViewItem(KviKvsObject_treewidgetitem * ob,KviTalTreeWidget * par); + KviKvsMdmCheckListViewItem(KviKvsObject_treewidgetitem * ob,KviTalTreeWidgetItem * par); virtual ~KviKvsMdmCheckListViewItem(); protected: - KviKvsObject_listviewitem * m_pMasterObject; + KviKvsObject_treewidgetitem * m_pMasterObject; public: - KviKvsObject_listviewitem * masterObject(){ return m_pMasterObject; } + KviKvsObject_treewidgetitem * masterObject(){ return m_pMasterObject; } }; - +*/ #endif // !_CLASS_LISTVIEWITEM_H_ diff --git a/src/modules/objects/class_menubar.cpp b/src/modules/objects/class_menubar.cpp index b90a215d3..21b9602bf 100644 --- a/src/modules/objects/class_menubar.cpp +++ b/src/modules/objects/class_menubar.cpp @@ -70,6 +70,6 @@ bool KviKvsObject_menubar::functionInsertItem(KviKvsObjectFunctionCall *c) KVSO_PARAMETERS_BEGIN(c) KVSO_PARAMETER("item",KVS_PT_STRING,0,szItem) KVSO_PARAMETERS_END(c) - if (widget()) ((QMenuBar *)widget())->insertItem(szItem); + if (widget()) ((QMenuBar *)widget())->addAction(szItem); return true; } diff --git a/src/modules/objects/class_toolbutton.cpp b/src/modules/objects/class_toolbutton.cpp index 3d03acefa..36548cb99 100644 --- a/src/modules/objects/class_toolbutton.cpp +++ b/src/modules/objects/class_toolbutton.cpp @@ -70,11 +70,6 @@ Sets whether the tool button is on to the bool value: 1 enable, 0 disable. // findme !fn:$setPopup (<toolbutton:object>) - !fn:$setPopupDelay (<int delay>) - Sets the time delay between pressing the button and the appearance of the associated popup menu in milliseconds to delay.[br] - A good value is 100. - !fn:<integer> $pupupDelay() - Returns the time delay between pressing the button and the appearance of the associated popup menu in milliseconds. !fn:$openPopup() Opens the associated popup menu. If there is no such menu, this function does nothing. !fn:setTextPosition(<text_position:string>) @@ -93,6 +88,14 @@ This signal is emitted by the default implementation of [classfnc]$clickEvent[/classfnc]().[br] */ +// we should remove these functions? +/* + !fn:$setPopupDelay (<int delay>) + Sets the time delay between pressing the button and the appearance of the associated popup menu in milliseconds to delay.[br] + A good value is 100. + !fn:<integer> $pupupDelay() + Returns the time delay between pressing the button and the appearance of the associated popup menu in milliseconds. +*/ KVSO_BEGIN_REGISTERCLASS(KviKvsObject_toolbutton,"toolbutton","widget") KVSO_REGISTER_HANDLER(KviKvsObject_toolbutton,"setImage", functionsetImage) KVSO_REGISTER_HANDLER(KviKvsObject_toolbutton,"setUsesBigPixmap", functionsetUsesBigPixmap) @@ -109,9 +112,11 @@ KVSO_BEGIN_REGISTERCLASS(KviKvsObject_toolbutton,"toolbutton","widget") KVSO_REGISTER_HANDLER(KviKvsObject_toolbutton,"setToggleButton", functionsetToggleButton) KVSO_REGISTER_HANDLER(KviKvsObject_toolbutton,"toggle", functiontoggle) KVSO_REGISTER_HANDLER(KviKvsObject_toolbutton,"setOn", functionsetOn) - +/* KVSO_REGISTER_HANDLER(KviKvsObject_toolbutton,"setPopupDelay", functionsetPopupDelay) KVSO_REGISTER_HANDLER(KviKvsObject_toolbutton,"popupDelay", functionpopupDelay) + */ + KVSO_REGISTER_HANDLER(KviKvsObject_toolbutton,"setTextPosition", functionsetTextPosition) KVSO_REGISTER_HANDLER(KviKvsObject_toolbutton,"textPosition", functiontextPosition) @@ -156,13 +161,13 @@ bool KviKvsObject_toolbutton::functionsetUsesBigPixmap(KviKvsObjectFunctionCall KVSO_PARAMETER("bEnabled",KVS_PT_BOOL,0,bEnabled) KVSO_PARAMETERS_END(c) if(widget()) - ((QToolButton *)widget())->setUsesBigPixmap(bEnabled); + ((QToolButton *)widget())->setIconSize(bEnabled?QSize(32,32):QSize(22,22)); return true; } bool KviKvsObject_toolbutton::functionusesBigPixmap(KviKvsObjectFunctionCall *c) { if (widget()) - c->returnValue()->setBoolean(((QToolButton *)widget())->usesBigPixmap()); + c->returnValue()->setBoolean(((QToolButton *)widget())->iconSize().height() > 22); return true; } bool KviKvsObject_toolbutton::functionsetUsesTextLabel(KviKvsObjectFunctionCall *c) @@ -172,13 +177,13 @@ bool KviKvsObject_toolbutton::functionsetUsesTextLabel(KviKvsObjectFunctionCall KVSO_PARAMETER("bEnabled",KVS_PT_BOOL,0,bEnabled) KVSO_PARAMETERS_END(c) if(widget()) - ((QToolButton *)widget())->setUsesTextLabel(bEnabled); + ((QToolButton *)widget())->setToolButtonStyle(bEnabled?Qt::ToolButtonTextUnderIcon : Qt::ToolButtonIconOnly); return true; } bool KviKvsObject_toolbutton::functionusesTextLabel(KviKvsObjectFunctionCall *c) { if (widget()) - c->returnValue()->setBoolean(((QToolButton *)widget())->usesTextLabel()); + c->returnValue()->setBoolean(((QToolButton *)widget())->toolButtonStyle() != Qt::ToolButtonIconOnly); return true; } bool KviKvsObject_toolbutton::function_setAutoRaise(KviKvsObjectFunctionCall *c) @@ -204,7 +209,7 @@ bool KviKvsObject_toolbutton::functionsetOn(KviKvsObjectFunctionCall *c) KVSO_PARAMETER("bEnabled",KVS_PT_BOOL,0,bEnabled) KVSO_PARAMETERS_END(c) if(widget()) - ((QToolButton *)widget())->setOn(bEnabled); + ((QToolButton *)widget())->setChecked(bEnabled); return true; } @@ -276,6 +281,7 @@ bool KviKvsObject_toolbutton::functionopenPopup(KviKvsObjectFunctionCall *c) ((QToolButton *)widget())->showMenu(); return true; } +/* bool KviKvsObject_toolbutton::functionsetPopupDelay(KviKvsObjectFunctionCall *c) { kvs_int_t uDelay; @@ -292,6 +298,7 @@ bool KviKvsObject_toolbutton::functionpopupDelay(KviKvsObjectFunctionCall *c) c->returnValue()->setInteger(((QToolButton *)widget())->popupDelay()); return true; } +*/ bool KviKvsObject_toolbutton::functionsetTextPosition(KviKvsObjectFunctionCall *c) { QString szPos; diff --git a/src/modules/objects/class_toolbutton.h b/src/modules/objects/class_toolbutton.h index 8c3ab3b0f..a257c32e5 100644 --- a/src/modules/objects/class_toolbutton.h +++ b/src/modules/objects/class_toolbutton.h @@ -51,8 +51,8 @@ protected: bool functionsetOn(KviKvsObjectFunctionCall *c); bool functionsetToggleButton(KviKvsObjectFunctionCall *c); bool functiontoggle(KviKvsObjectFunctionCall *c); - bool functionsetPopupDelay(KviKvsObjectFunctionCall *c); - bool functionpopupDelay(KviKvsObjectFunctionCall *c); +// bool functionsetPopupDelay(KviKvsObjectFunctionCall *c); +// bool functionpopupDelay(KviKvsObjectFunctionCall *c); bool functionsetTextPosition(KviKvsObjectFunctionCall *c); bool functiontextPosition(KviKvsObjectFunctionCall *c); diff --git a/src/modules/objects/class_urllabel.cpp b/src/modules/objects/class_urllabel.cpp index 173ad9561..ed80b99a3 100644 --- a/src/modules/objects/class_urllabel.cpp +++ b/src/modules/objects/class_urllabel.cpp @@ -200,15 +200,15 @@ bool KviKvsObject_urlabel::eventFilter(QObject * o, QEvent * e) break; case QEvent::Leave: // this doesn't work... - if(((QMouseEvent *)e)->state() & QT_LEFT_BUTTON) - pal.setColor(QColorGroup::Foreground, \ + if(((QMouseEvent *)e)->button() & QT_LEFT_BUTTON) + pal.setColor(QPalette::Foreground, \ m_activeClr); else - pal.setColor(QColorGroup::Foreground, \ + pal.setColor(QPalette::Foreground, \ m_normalClr); break; case QEvent::MouseButtonRelease: - pal.setColor(QColorGroup::Foreground, m_enterClr); + pal.setColor(QPalette::Foreground, m_enterClr); // perform actions here if(!m_lastClickWasDbl && !m_useSingleClick) break; @@ -227,13 +227,13 @@ bool KviKvsObject_urlabel::eventFilter(QObject * o, QEvent * e) if(!((QMouseEvent * )e)->button() & \ QT_LEFT_BUTTON || !m_useSingleClick) break; - pal.setColor(QColorGroup::Foreground, m_activeClr); + pal.setColor(QPalette::Foreground, m_activeClr); break; case QEvent::MouseButtonDblClick: m_lastClickWasDbl = true; if(m_useSingleClick) break; - pal.setColor(QColorGroup::Foreground, m_activeClr); + pal.setColor(QPalette::Foreground, m_activeClr); break; default: // make gcc happy break; @@ -301,9 +301,9 @@ bool KviKvsObject_urlabel::functionsetCursorChange(KviKvsObjectFunctionCall *c) if(!widget()) return true; if(m_changeCursor = bFlag) - widget()->setCursor(Qt::pointingHandCursor); + widget()->setCursor(Qt::PointingHandCursor); else - widget()->setCursor(Qt::arrowCursor); + widget()->setCursor(Qt::ArrowCursor); return true; } bool KviKvsObject_urlabel::functionsetUseSingleClick(KviKvsObjectFunctionCall *c) diff --git a/src/modules/objects/class_wrapper.cpp b/src/modules/objects/class_wrapper.cpp index c27b0b53d..6306b6f7c 100644 --- a/src/modules/objects/class_wrapper.cpp +++ b/src/modules/objects/class_wrapper.cpp @@ -199,18 +199,17 @@ QWidget *KviKvsObject_wrapper::findTopLevelWidgetToWrap(const QString szClass, c return 0; } -QWidget *KviKvsObject_wrapper::findWidgetToWrap(const char *szClass, const char *szName, QWidget *childOf) +QWidget *KviKvsObject_wrapper::findWidgetToWrap(const QString szClass, const QString szName, QWidget *childOf) { - - QObjectList list = childOf->queryList(szClass ? szClass : 0, szName ? szName : 0, false, true); + QList<QObject *> list=childOf->children(); if( !list.count() ) return 0; for(int idx=0;idx<list.count();idx++) { - if( list.at(idx)->isWidgetType() ) { + if( list.at(idx)->isWidgetType() ) + { QWidget *w = (QWidget *)list.at(idx); - return w; + if (KviQString::equalCI(w->metaObject()->className(),szClass) &&KviQString::equalCI(w->objectName(),szName))return w; } - } return 0; } diff --git a/src/modules/objects/class_wrapper.h b/src/modules/objects/class_wrapper.h index 572451af5..b5b38eb41 100644 --- a/src/modules/objects/class_wrapper.h +++ b/src/modules/objects/class_wrapper.h @@ -44,7 +44,7 @@ public: protected: virtual bool init(KviKvsRunTimeContext * pContext,KviKvsVariantList *pParams); QWidget * findTopLevelWidgetToWrap(const QString szClass, const QString szName); - QWidget * findWidgetToWrap(const char *szClass, const char *szName, QWidget *childOf); + QWidget * findWidgetToWrap(const QString szClass, const QString szName, QWidget *childOf); }; diff --git a/src/modules/objects/libkviobjects.cpp b/src/modules/objects/libkviobjects.cpp index b6e0018f9..9eaa8f8f9 100644 --- a/src/modules/objects/libkviobjects.cpp +++ b/src/modules/objects/libkviobjects.cpp @@ -107,8 +107,8 @@ static bool objects_module_cleanup(KviModule *m) KviKvsObject_pixmap::unregisterSelf(); KviKvsObject_painter::unregisterSelf(); KviKvsObject_mainwindow::unregisterSelf(); - KviKvsObject_listviewitem::unregisterSelf(); - KviKvsObject_listview::unregisterSelf(); + KviKvsObject_treewidgetitem::unregisterSelf(); + KviKvsObject_treewidget::unregisterSelf(); KviKvsObject_listbox::unregisterSelf(); KviKvsObject_combobox::unregisterSelf(); KviKvsObject_workspace::unregisterSelf(); @@ -968,8 +968,8 @@ static bool objects_module_init(KviModule * m) KviKvsObject_workspace::registerSelf(); KviKvsObject_combobox::registerSelf(); KviKvsObject_listbox::registerSelf(); - KviKvsObject_listview::registerSelf(); - KviKvsObject_listviewitem::registerSelf(); + KviKvsObject_treewidget::registerSelf(); + KviKvsObject_treewidgetitem::registerSelf(); KviKvsObject_mainwindow::registerSelf(); KviKvsObject_painter::registerSelf(); KviKvsObject_pixmap::registerSelf(); diff --git a/src/modules/reguser/dialog.cpp b/src/modules/reguser/dialog.cpp index b52774518..fa1c6019f 100644 --- a/src/modules/reguser/dialog.cpp +++ b/src/modules/reguser/dialog.cpp @@ -850,3 +850,6 @@ succesfull_import: }
+#ifndef COMPILE_USE_STANDALONE_MOC_SOURCES
+#include "dialog.moc"
+#endif //!COMPILE_USE_STANDALONE_MOC_SOURCES
diff --git a/src/modules/theme/themefunctions.cpp b/src/modules/theme/themefunctions.cpp index fdbe0a5f4..a82985f62 100644 --- a/src/modules/theme/themefunctions.cpp +++ b/src/modules/theme/themefunctions.cpp @@ -37,9 +37,7 @@ //#include <qmime.h> -//#include <q3mimefactory.h> -//#define KviTalMimeSourceFactory Q3MimeSourceFactory namespace KviThemeFunctions { |
