[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: koffice/kexi
From: Jarosław Staniek <staniek () kde ! org>
Date: 2010-09-02 21:15:21
Message-ID: 20100902211521.6E8BEAC883 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1171139 by staniek:
Forms
*Widgets Tree tab ported
Note: not finalized yet, items still invisible
M +0 -1 CMakeLists.txt
M +10 -0 doc/dev/CHANGELOG-Kexi-js
M +2 -2 formeditor/CMakeLists.txt
A formeditor/WidgetTreeWidget.cpp \
formeditor/objecttreeview.cpp#1170621 [License: LGPL (v2+)] A \
formeditor/WidgetTreeWidget.h formeditor/objecttreeview.h#1170621 [License: LGPL \
(v2+)] D formeditor/objecttreeview.cpp
D formeditor/objecttreeview.h
M +62 -47 formeditor/tabstopdialog.cpp
M +10 -6 formeditor/tabstopdialog.h
M +6 -6 plugins/forms/kexiformmanager.cpp
M +2 -2 plugins/forms/kexiformmanager.h
M +8 -18 plugins/forms/kexiformpart.cpp
--- trunk/koffice/kexi/CMakeLists.txt #1171138:1171139
@@ -18,7 +18,6 @@
-DKEXI_NO_AUTOFIELD_WIDGET
-DKEXI_NO_FORM_LAYOUTS
-DKEXI_NO_FORM_SPRING_ELEMENT
- -DKEXI_NO_OBJECTTREEVIEW
)
#no default: add_definitions(-DKDE_DEFAULT_DEBUG_AREA=44010)
--- trunk/koffice/kexi/doc/dev/CHANGELOG-Kexi-js #1171138:1171139
@@ -41,6 +41,7 @@
- fix syncing form geometry with properties in the propeditor
- show Spring element and autofield widget for 2.3
- disable 'assign action' when no button is selected
+ - port 'assign action' dialog to QColumnView
- disable mouse-over highlighting effect for buttons and check boxes
TODO: (Windows-only?) when right-clicking again after context menu has been \
displayed, update selection, otherwise the context menu items won't be adequate to \
the selection @@ -109,6 +110,15 @@
, fieldsExpandedWithInternal(0)
+ //, orderByColumnList(copy->orderByColumnList)
+2010-09-02
+Forms
+*Widgets Tree tab ported
+TODO: finalize this, still invisible
+
+2010-09-01
+Forms
+*ObjectTreeView/ObjectTreeViewItem renamed to WidgetTreeWidget/WidgetTreeWidgetItem \
and ported to QTreeWidget/QTreeWidgetItem +
2010-08-30
Core
*Clarify error message: when non-kexi SQLite file is opened, display "Database \
project '...' does not appear to have been created using Kexi and cannot be opened. \
It is an SQLite file created using other tools."
--- trunk/koffice/kexi/formeditor/CMakeLists.txt #1171138:1171139
@@ -23,7 +23,7 @@
formIO.cpp
FormWidget.cpp
FormWidgetInterface.cpp
- objecttreeview.cpp
+ WidgetTreeWidget.cpp
#todo spring.cpp
commands.cpp
events.cpp
@@ -71,7 +71,7 @@
FormWidget.h
FormWidgetInterface.h
objecttree.h
- objecttreeview.h
+ WidgetTreeWidget.h
widgetfactory.h
WidgetInfo.h
widgetlibrary.h
--- trunk/koffice/kexi/formeditor/tabstopdialog.cpp #1171138:1171139
@@ -1,6 +1,6 @@
/* This file is part of the KDE project
Copyright (C) 2004 Cedric Pasteur <cedric.pasteur@free.fr>
- Copyright (C) 2005 Jarosław Staniek <staniek@kde.org>
+ Copyright (C) 2005,2010 Jarosław Staniek <staniek@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
@@ -30,7 +30,7 @@
#include <kpushbutton.h>
#include "form.h"
-#include "objecttreeview.h"
+#include "WidgetTreeWidget.h"
#include "tabstopdialog.h"
@@ -52,19 +52,21 @@
QFrame *frame = new QFrame(this);
setMainWidget(frame);
QGridLayout *l = new QGridLayout(frame);
- m_treeview = new ObjectTreeView(frame,
- ObjectTreeView::DisableSelection | ObjectTreeView::DisableContextMenu);
- m_treeview->setObjectName("tabstops_treeview");
- m_treeview->setItemsMovable(true);
- m_treeview->setDragEnabled(true);
- m_treeview->setDropVisualizer(true);
- m_treeview->setAcceptDrops(true);
- m_treeview->setFocus();
- l->addWidget(m_treeview, 0, 0);
+ m_widgetTree = new WidgetTreeWidget(frame,
+ WidgetTreeWidget::DisableSelection | WidgetTreeWidget::DisableContextMenu);
+ m_widgetTree->setObjectName("tabstops:widgetTree");
+ m_widgetTree->setDragEnabled(true);
+ m_widgetTree->setDropIndicatorShown(true);
+ //2.0 m_widgetTree->setItemsMovable(true);
+ //2.0 m_widgetTree->setDropVisualizer(true);
+ m_widgetTree->setDragDropMode(QAbstractItemView::InternalMove);
+ m_widgetTree->setAcceptDrops(true);
+ //m_widgetTree->setFocus();
+ l->addWidget(m_widgetTree, 0, 0);
- m_treeview->m_form = 0;
- connect(m_treeview, SIGNAL(currentChanged(Q3ListViewItem*)), this, \
SLOT(updateButtons(Q3ListViewItem*)));
- connect(m_treeview, SIGNAL(moved(Q3ListViewItem*, Q3ListViewItem*, \
Q3ListViewItem*)), this, SLOT(updateButtons(Q3ListViewItem*))); + \
m_widgetTree->m_form = 0; + connect(m_widgetTree, SIGNAL(itemSelectionChanged()), \
this, SLOT(slotSelectionChanged())); +#warning TODO connect(m_widgetTree, \
SIGNAL(moved(Q3ListViewItem*, Q3ListViewItem*, Q3ListViewItem*)), this, \
SLOT(updateButtons(Q3ListViewItem*)));
QVBoxLayout *vbox = new QVBoxLayout();
l->addLayout(vbox, 0, 1);
@@ -85,7 +87,7 @@
l->addWidget(m_check, 1, 0, 1, 2);
updateGeometry();
- setInitialSize(QSize(500 + m_btnUp->width(), qMax(400, m_treeview->height())));
+ setInitialSize(QSize(500 + m_btnUp->width(), qMax(400, \
m_widgetTree->height()))); }
TabStopDialog::~TabStopDialog()
@@ -94,8 +96,8 @@
int TabStopDialog::exec(Form *form)
{
- m_treeview->clear();
- m_treeview->m_form = form;
+ m_widgetTree->clear();
+ m_widgetTree->m_form = form;
if (form->autoTabStops())
form->autoAssignTabStops();
@@ -104,14 +106,15 @@
ObjectTreeList::ConstIterator it(form->tabStops()->constBegin());
it+=(form->tabStops()->count()-1);
for (;it!=form->tabStops()->constEnd(); --it) {
- new ObjectTreeViewItem(m_treeview, *it);
+ new WidgetTreeWidgetItem(m_widgetTree, *it);
}
}
m_check->setChecked(form->autoTabStops());
- if (m_treeview->firstChild()) {
- m_treeview->setCurrentItem(m_treeview->firstChild());
- m_treeview->setSelected(m_treeview->firstChild(), true);
+ if (m_widgetTree->invisibleRootItem()->childCount() > 0) {
+ QTreeWidgetItem *firstItem = m_widgetTree->invisibleRootItem()->child(0);
+ m_widgetTree->setCurrentItem(firstItem);
+ firstItem->setSelected(true);
}
if (QDialog::Rejected == KDialog::exec())
@@ -126,54 +129,66 @@
//add items to the order list
form->tabStops()->clear();
- ObjectTreeViewItem *item = (ObjectTreeViewItem*)m_treeview->firstChild();
- while (item) {
- ObjectTreeItem *tree = item->objectTree();
+ QTreeWidgetItemIterator it(m_widgetTree);
+ while (*it) {
+ ObjectTreeItem *tree = static_cast<WidgetTreeWidgetItem*>(*it)->data();
if (tree)
form->tabStops()->append(tree);
- item = (ObjectTreeViewItem*)item->nextSibling();
}
return QDialog::Accepted;
}
-void
-TabStopDialog::moveItemUp()
+void TabStopDialog::moveItemUp()
{
- if (!m_treeview->selectedItem())
+ QTreeWidgetItem *selected = m_widgetTree->selectedItem();
+ if (!selected)
return;
- Q3ListViewItem *before = m_treeview->selectedItem()->itemAbove();
- before->moveItem(m_treeview->selectedItem());
- updateButtons(m_treeview->selectedItem());
+ // we assume there is flat list
+ QTreeWidgetItem *root = m_widgetTree->invisibleRootItem();
+ const int selectedIndex = root->indexOfChild(selected);
+ if (selectedIndex < 1)
+ return; // no place to move
+ root->takeChild(selectedIndex);
+ root->insertChild(selectedIndex - 1, selected);
+ updateButtons(selected);
}
-void
-TabStopDialog::moveItemDown()
+void TabStopDialog::moveItemDown()
{
- Q3ListViewItem *item = m_treeview->selectedItem();
- if (!item)
+ QTreeWidgetItem *selected = m_widgetTree->selectedItem();
+ if (!selected)
return;
- item->moveItem(item->nextSibling());
- updateButtons(item);
+ // we assume there is flat list
+ QTreeWidgetItem *root = m_widgetTree->invisibleRootItem();
+ const int selectedIndex = root->indexOfChild(selected);
+ if (selectedIndex >= (root->childCount() - 1))
+ return; // no place to move
+ root->takeChild(selectedIndex);
+ root->insertChild(selectedIndex + 1, selected);
+ updateButtons(selected);
}
-void
-TabStopDialog::updateButtons(Q3ListViewItem *item)
+void TabStopDialog::updateButtons(QTreeWidgetItem *item)
{
- m_btnUp->setEnabled(item && (item->itemAbove() && m_treeview->isEnabled()
+ QTreeWidgetItem *root = m_widgetTree->invisibleRootItem();
+ m_btnUp->setEnabled(item && (root->indexOfChild(item) > 0 && \
m_widgetTree->isEnabled()
/*&& (item->itemAbove()->parent() == \
item->parent()))*/));
- m_btnDown->setEnabled(item && item->nextSibling() && m_treeview->isEnabled());
+ m_btnDown->setEnabled(item && root->indexOfChild(item) < (root->childCount() - \
1) && m_widgetTree->isEnabled()); }
-void
-TabStopDialog::slotRadioClicked(bool isOn)
+void TabStopDialog::slotSelectionChanged()
{
- m_treeview->setEnabled(!isOn);
- updateButtons(m_treeview->selectedItem());
+ updateButtons(m_widgetTree->selectedItem());
}
-bool
-TabStopDialog::autoTabStops() const
+void TabStopDialog::slotRadioClicked(bool isOn)
{
+ m_widgetTree->setEnabled(!isOn);
+ updateButtons(m_widgetTree->selectedItem());
+}
+
+bool TabStopDialog::autoTabStops() const
+{
return m_check->isChecked();
}
--- trunk/koffice/kexi/formeditor/tabstopdialog.h #1171138:1171139
@@ -1,5 +1,6 @@
/* This file is part of the KDE project
Copyright (C) 2004 Cedric Pasteur <cedric.pasteur@free.fr>
+ Copyright (C) 2005,2010 Jarosław Staniek <staniek@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
@@ -24,7 +25,7 @@
#include <kexi_export.h>
-class Q3ListViewItem;
+class QTreeWidgetItem;
class QCheckBox;
class KPushButton;
@@ -32,7 +33,7 @@
{
class Form;
-class ObjectTreeView;
+class WidgetTreeWidget;
//! A dialog to edit Form tab stops
/*! The user can change the order by dragging list items or using buttons at the \
right. @@ -45,17 +46,20 @@
TabStopDialog(QWidget *parent);
virtual ~TabStopDialog();
+ bool autoTabStops() const;
+
public slots:
int exec(KFormDesigner::Form *form);
+
+protected slots:
void moveItemUp();
void moveItemDown();
- void updateButtons(Q3ListViewItem*);
+ void updateButtons(QTreeWidgetItem *item);
void slotRadioClicked(bool isOn);
+ void slotSelectionChanged();
- bool autoTabStops() const;
-
protected:
- ObjectTreeView *m_treeview;
+ WidgetTreeWidget *m_widgetTree;
KPushButton *m_btnUp, *m_btnDown;
QCheckBox *m_check;
};
--- trunk/koffice/kexi/plugins/forms/kexiformmanager.cpp #1171138:1171139
@@ -40,7 +40,7 @@
#include <formeditor/objecttree.h>
#include <formeditor/formIO.h>
#include <formeditor/kexiactionselectiondialog.h>
-#include <formeditor/objecttreeview.h>
+#include <formeditor/WidgetTreeWidget.h>
#include <koproperty/Set.h>
#include <koproperty/Property.h>
@@ -58,7 +58,7 @@
#ifdef KFD_SIGSLOTS
dragConnectionAction = 0;
#endif
- treeView = 0;
+ widgetTree = 0;
collection = 0;
}
~KexiFormManagerPrivate() {
@@ -69,7 +69,7 @@
KexiFormPart* part;
KFormDesigner::WidgetLibrary* lib;
KFormDesigner::ActionGroup* widgetActionGroup;
- KFormDesigner::ObjectTreeView *treeView;
+ KFormDesigner::WidgetTreeWidget *widgetTree;
#ifdef KEXI_DEBUG_GUI
//! For debugging purposes
QPointer<KPageDialog> uiCodeDialog;
@@ -106,7 +106,7 @@
{
}
-void KexiFormManager::init(KexiFormPart *part, KFormDesigner::ObjectTreeView \
*treeView) +void KexiFormManager::init(KexiFormPart *part, \
KFormDesigner::WidgetTreeWidget *widgetTree) {
/* @todo add configuration for supported factory groups */
QStringList supportedFactoryGroups;
@@ -130,8 +130,8 @@
this, SLOT(slotAssignAction()));
}
- d->treeView = treeView;
- if (d->treeView) {
+ d->widgetTree = widgetTree;
+ if (d->widgetTree) {
#ifdef __GNUC__
#warning "Port this: connect()"
#else
--- trunk/koffice/kexi/plugins/forms/kexiformmanager.h #1171138:1171139
@@ -29,7 +29,7 @@
namespace KFormDesigner {
class WidgetLibrary;
-class ObjectTreeView;
+class WidgetTreeWidget;
class ActionGroup;
class Command;
}
@@ -43,7 +43,7 @@
static KexiFormManager* self();
//! Called by KexiFormPart()
- void init(KexiFormPart *part, KFormDesigner::ObjectTreeView *treeView);
+ void init(KexiFormPart *part, KFormDesigner::WidgetTreeWidget *widgetTree);
virtual QAction* action(const char* name);
virtual void enableAction(const char* name, bool enable);
--- trunk/koffice/kexi/plugins/forms/kexiformpart.cpp #1171138:1171139
@@ -46,7 +46,7 @@
#include <formeditor/form.h>
#include <formeditor/formIO.h>
//2.0 #include <formeditor/widgetpropertyset.h>
-#include <formeditor/objecttreeview.h>
+#include <formeditor/WidgetTreeWidget.h>
#include <koproperty/Property.h>
#include <koproperty/Set.h>
@@ -65,18 +65,14 @@
{
public:
Private() {
-#ifndef KEXI_NO_OBJECTTREEVIEW
- objectTreeView = new KFormDesigner::ObjectTreeView(0);
- objectTreeView->setObjectName("KexiFormPart:ObjectTreeView");
-#endif
+ widgetTree = new KFormDesigner::WidgetTreeWidget(0);
+ widgetTree->setObjectName("KexiFormPart:WidgetTreeWidget");
}
~Private() {
-#ifndef KEXI_NO_OBJECTTREEVIEW
- delete static_cast<KFormDesigner::ObjectTreeView*>(objectTreeView);
-#endif
+ delete static_cast<KFormDesigner::WidgetTreeWidget*>(widgetTree);
delete static_cast<KexiDataSourcePage*>(dataSourcePage);
}
- QPointer<KFormDesigner::ObjectTreeView> objectTreeView;
+ QPointer<KFormDesigner::WidgetTreeWidget> widgetTree;
QPointer<KexiDataSourcePage> dataSourcePage;
KexiDataSourceComboBox *dataSourceCombo;
};
@@ -103,7 +99,7 @@
/* 2.0 removed
KFormDesigner::FormManager *formManager = KFormDesigner::FormManager::self();
if (!formManager) {*/
- KexiFormManager::self()->init(this, d->objectTreeView); // this should create \
KexiFormManager singleton + KexiFormManager::self()->init(this, d->widgetTree); // \
this should create KexiFormManager singleton // }
/* 2.0 slotPropertyChanged() code moved to Form so this connection can be removed
@@ -490,14 +486,8 @@
tab->addTab(d->dataSourcePage, KIcon("server-database"), QString());
tab->setTabToolTip(tab->indexOf(d->dataSourcePage), i18n("Data Source"));
-#if 0
- tab->addTab(d->objectTreeView, KIcon("widgets"), QString());
- tab->setTabToolTip(tab->indexOf(d->objectTreeView), i18n("Widgets"));
-#else
-#ifdef __GNUC__
-#warning
-#endif
-#endif
+ tab->addTab(d->widgetTree, KIcon("widgets"), QString());
+ tab->setTabToolTip(tab->indexOf(d->widgetTree), i18n("Widgets"));
}
//----------------
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic