From kde-commits Mon Apr 05 23:22:38 2010 From: =?utf-8?q?Jaros=C5=82aw=20Staniek?= Date: Mon, 05 Apr 2010 23:22:38 +0000 To: kde-commits Subject: koffice/kexi Message-Id: <20100405232238.97C53AC857 () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=127050968123635 SVN commit 1111538 by staniek: Forms *make the form's toolbar take less space - most buttons have no labels M +1 -0 CMakeLists.txt M +3 -0 core/KexiMainWindowIface.h M +1 -1 core/KexiWindow.cpp M +5 -0 main/KexiMainWindow.cpp M +3 -0 main/KexiMainWindow.h M +46 -26 plugins/forms/kexiformmanager.cpp M +10 -6 plugins/forms/kexiformview.cpp --- trunk/koffice/kexi/CMakeLists.txt #1111537:1111538 @@ -16,6 +16,7 @@ -DKEXI_SCRIPTS_SUPPORT # temporary for 2.2: -DKEXI_NO_AUTOFIELD_WIDGET + -DKEXI_NO_FORM_LAYOUTS -DKEXI_NO_FORM_SPRING_ELEMENT -DKEXI_NO_OBJECTTREEVIEW ) --- trunk/koffice/kexi/core/KexiMainWindowIface.h #1111537:1111538 @@ -271,6 +271,9 @@ //! @todo replace with the final Actions API virtual void addToolBarAction(const QString& toolBarName, QAction *action) = 0; +//! @todo replace with the final Actions API + virtual KToolBar *toolBar(const QString& name) const = 0; + /*! Updates info label of the property editor by reusing properties provided by the current property set. Read documentation of KexiPropertyEditorView class for information about accepted properties. --- trunk/koffice/kexi/core/KexiWindow.cpp #1111537:1111538 @@ -662,7 +662,7 @@ res = newView->afterSwitchFrom( designModePreloadedForTextModeHack ? Kexi::NoViewMode : prevViewMode); proposeOpeningInTextViewModeBecauseOfProblems - = data()->proposeOpeningInTextViewModeBecauseOfProblems; + = data()->proposeOpeningInTextViewModeBecauseOfProblems; if (!res) { removeView(newViewMode); delete newView; --- trunk/koffice/kexi/main/KexiMainWindow.cpp #1111537:1111538 @@ -5233,6 +5233,11 @@ Q_UNUSED(item); } +KToolBar *KexiMainWindow::toolBar(const QString& name) const +{ + return d->tabbedToolBar->toolBar(name); +} + void KexiMainWindow::appendWidgetToToolbar(const QString& name, QWidget* widget) { d->tabbedToolBar->appendWidgetToToolbar(name, widget); --- trunk/koffice/kexi/main/KexiMainWindow.h #1111537:1111538 @@ -204,6 +204,9 @@ // see KexiMainWindowIface virtual void addToolBarAction(const QString& toolBarName, QAction *action); + // see KexiMainWindowIface + virtual KToolBar *toolBar(const QString& name) const; + public slots: /*! Inherited from KMdiMainFrm: we need to do some tasks before child is closed. Just calls closeWindow(). Use closeWindow() if you need, not this one. */ --- trunk/koffice/kexi/plugins/forms/kexiformmanager.cpp #1111537:1111538 @@ -24,11 +24,13 @@ #include "kexiformview.h" #include "kexidatasourcepage.h" +#include #include #include #include #include #include +#include //2.0 #include //2.0 #include @@ -44,13 +46,11 @@ #include #include #include +#include class KexiFormManagerPrivate { public: KexiFormManagerPrivate() : part(0) -#ifdef KEXI_DEBUG_GUI - , uiCodeDialog(0) -#endif , q(this) { features = KFormDesigner::Form::NoFeatures; @@ -63,7 +63,7 @@ } ~KexiFormManagerPrivate() { #ifdef KEXI_DEBUG_GUI - delete uiCodeDialog; + delete static_cast(uiCodeDialog); #endif } KexiFormPart* part; @@ -72,7 +72,7 @@ KFormDesigner::ObjectTreeView *treeView; #ifdef KEXI_DEBUG_GUI //! For debugging purposes - KPageDialog *uiCodeDialog; + QPointer uiCodeDialog; KTextEdit *currentUICodeDialogEditor; KTextEdit *originalUICodeDialogEditor; #endif @@ -239,29 +239,32 @@ formActions << "edit_pointer" << QString() //sep - << "library_widget_KexiDBAutoField" - << "library_widget_KexiDBLabel" - << "library_widget_KexiPictureLabel" - << "library_widget_KexiDBImageBox" - << "library_widget_KexiDBLineEdit" - << "library_widget_KexiDBTextEdit" - << "library_widget_KPushButton" - << "library_widget_KexiDBComboBox" - << "library_widget_KexiDBCheckBox" - << "library_widget_Spacer" - << "library_widget_Line" - << "library_widget_KexiFrame" - << "library_widget_QGroupBox" - << "library_widget_KFDTabWidget" - << "library_widget_Spring" +#ifndef KEXI_NO_AUTOFIELD_WIDGET + << ":library_widget_KexiDBAutoField" +#endif + << ":library_widget_KexiDBLabel" + << ":library_widget_KexiDBImageBox" + << ":library_widget_KexiDBLineEdit" + << ":library_widget_KexiDBTextEdit" + << ":library_widget_KPushButton" + << ":library_widget_KexiDBComboBox" + << ":library_widget_KexiDBCheckBox" +#ifndef KEXI_NO_FORM_LAYOUTS + << ":library_widget_Spacer" +#endif + << ":library_widget_Line" + << ":library_widget_KexiFrame" + << ":library_widget_QGroupBox" + << ":library_widget_KFDTabWidget" +#ifndef KEXI_NO_FORM_SPRING_ELEMENT + << ":library_widget_Spring" +#endif << QString() //sep -#ifdef KEXI_DEBUG_GUI - << "show_form_ui" -#endif ; KexiMainWindowIface *win = KexiMainWindowIface::global(); - foreach( const QString& actionName, formActions ) { + foreach( const QString& actionName_, formActions ) { QAction *a; + const QString actionName(actionName_.startsWith(':') ? actionName_.mid(1) : actionName_); if (actionName.isEmpty()) { a = new QAction(this); a->setSeparator(true); @@ -269,11 +272,28 @@ else { a = d->widgetActionGroup->action(actionName); } - win->addToolBarAction("form", a); + if (actionName_.startsWith(':')) { // icon only + KexiSmallToolButton *btn = new KexiSmallToolButton(a, win->toolBar("form")); + btn->setToolButtonStyle(Qt::ToolButtonIconOnly); + win->appendWidgetToToolbar("form", btn); + } + else { + win->addToolBarAction("form", a); + } } + + QSet iconOnlyActions; + iconOnlyActions << "widget_assign_action" << "show_form_ui"; const QList actions( d->collection->actions() ); foreach( QAction *a, actions ) { - win->addToolBarAction("form", a); + if (iconOnlyActions.contains(a->objectName())) { // icon only + KexiSmallToolButton *btn = new KexiSmallToolButton(a, win->toolBar("form")); + btn->setToolButtonStyle(Qt::ToolButtonIconOnly); + win->appendWidgetToToolbar("form", btn); + } + else { + win->addToolBarAction("form", a); + } } } } --- trunk/koffice/kexi/plugins/forms/kexiformview.cpp #1111537:1111538 @@ -1439,20 +1439,24 @@ void KexiFormView::updateActionsInternal() { const QWidget* selectedWidget = form()->selectedWidget(); + //kDebug() << selectedWidget << (viewMode()==Kexi::DesignViewMode) << widget_assign_action; + QByteArray wClass; + if (selectedWidget) { + wClass = selectedWidget->metaObject()->className(); + //kDebug() << wClass; + } QAction *widget_assign_action = KexiFormManager::self()->action("widget_assign_action"); - //kDebug() << selectedWidget << (viewMode()==Kexi::DesignViewMode) << widget_assign_action; if (widget_assign_action) { - QByteArray wClass; - if (selectedWidget) { - wClass = selectedWidget->metaObject()->className(); - //kDebug() << wClass; - } widget_assign_action->setEnabled( viewMode()==Kexi::DesignViewMode && selectedWidget && (wClass == "QPushButton" || wClass == "KPushButton" || wClass == "KexiPushButton") ); } +#ifdef KEXI_DEBUG_GUI + QAction *show_form_ui_action = KexiFormManager::self()->action("show_form_ui"); + show_form_ui_action->setEnabled(viewMode()==Kexi::DesignViewMode); +#endif } #include "kexiformview.moc"