SVN commit 1173178 by staniek: Forms *Widgets Tree: now displays items, items are sorted, root is not decorated, fixed possible crash when form becomes null M +5 -1 formeditor/WidgetTreeWidget.cpp M +5 -0 plugins/forms/kexiformpart.cpp M +3 -0 plugins/forms/kexiformpart.h M +4 -2 plugins/forms/kexiformview.cpp --- trunk/koffice/kexi/formeditor/WidgetTreeWidget.cpp #1173177:1173178 @@ -166,6 +166,7 @@ , m_form(0) , m_options(options) { + setRootIsDecorated(false); setHeaderLabels(QStringList() << i18n("Widget name") << i18nc("Widget's type", "Type")); installEventFilter(this); @@ -178,7 +179,7 @@ header()->setStretchLastSection(true); setAllColumnsShowFocus(true); //2.0 setItemMargin(3); - setSortingEnabled(false); + setSortingEnabled(true); } WidgetTreeWidget::~WidgetTreeWidget() @@ -279,6 +280,8 @@ void WidgetTreeWidget::slotSelectionChanged() { + if (!m_form) + return; const bool hadFocus = hasFocus(); QList list = selectedItems(); m_form->selectFormWidget(); @@ -345,6 +348,7 @@ ObjectTree *tree = m_form->objectTree(); QTreeWidgetItem *root = invisibleRootItem(); loadTree(tree, static_cast(root)); + sortItems(0, Qt::AscendingOrder); if (!form->selectedWidgets()->isEmpty()) selectWidget(form->selectedWidgets()->first()); --- trunk/koffice/kexi/plugins/forms/kexiformpart.cpp #1173177:1173178 @@ -457,6 +457,11 @@ return d->dataSourcePage; } +KFormDesigner::WidgetTreeWidget* KexiFormPart::widgetTreePage() const +{ + return d->widgetTree; +} + void KexiFormPart::setupCustomPropertyPanelTabs(KTabWidget *tab) { if (!d->dataSourcePage) { --- trunk/koffice/kexi/plugins/forms/kexiformpart.h #1173177:1173178 @@ -33,6 +33,7 @@ { class WidgetLibrary; class Form; +class WidgetTreeWidget; } namespace KexiDB @@ -54,6 +55,8 @@ KexiDataSourcePage* dataSourcePage() const; + KFormDesigner::WidgetTreeWidget* widgetTreePage() const; + void generateForm(KexiDB::FieldList *list, QDomDocument &domDoc); class TempData : public KexiWindowData --- trunk/koffice/kexi/plugins/forms/kexiformview.cpp #1173177:1173178 @@ -37,7 +37,7 @@ //2.0 #include #include #include -#include +#include #include #include @@ -1392,8 +1392,10 @@ void KexiFormView::updateActions(bool activated) { if (viewMode()==Kexi::DesignViewMode) { - if (activated) + if (activated) { form()->emitActionSignals(); + formPart()->widgetTreePage()->setForm(form()); + } /* 2.0 if (form()->selectedWidget()) { if (form()->widget() == form()->selectedWidget())