From eebc56e915db3f0764b177dbf4d9b574491b970b Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Tue, 19 Jan 2010 18:03:00 +0100 Subject: [PATCH] Reorder toolbar of the formeditor and add snapping + anchoring action --- .../components/formeditor/formeditor.qrc | 2 + .../formeditor/formeditorwidget.cpp | 83 +++++++++++------- .../components/formeditor/formeditorwidget.h | 5 +- .../components/formeditor/no_snapping.png | Bin 0 -> 425 bytes .../formeditor/snapping_and_anchoring.png | Bin 0 -> 343 bytes 5 files changed, 58 insertions(+), 32 deletions(-) create mode 100644 src/plugins/qmldesigner/components/formeditor/no_snapping.png create mode 100644 src/plugins/qmldesigner/components/formeditor/snapping_and_anchoring.png diff --git a/src/plugins/qmldesigner/components/formeditor/formeditor.qrc b/src/plugins/qmldesigner/components/formeditor/formeditor.qrc index c954ee32b8a..5881bb0ddee 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditor.qrc +++ b/src/plugins/qmldesigner/components/formeditor/formeditor.qrc @@ -8,6 +8,8 @@ snapping.png + no_snapping.png + snapping_and_anchoring.png boundingrect.png diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorwidget.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorwidget.cpp index a85ee43d9a5..8178c29544f 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorwidget.cpp +++ b/src/plugins/qmldesigner/components/formeditor/formeditorwidget.cpp @@ -79,54 +79,82 @@ FormEditorWidget::FormEditorWidget(FormEditorView *view) addActions(m_toolActionGroup->actions()); + QAction *separatorAction = new QAction(this); + separatorAction->setSeparator(true); + addAction(separatorAction); + QActionGroup *layoutActionGroup = new QActionGroup(this); - layoutActionGroup->setExclusive(false); + layoutActionGroup->setExclusive(true); - m_snappingToolAction = layoutActionGroup->addAction("Toogle Snapping (Press Key E)"); - m_snappingToolAction->setShortcut(Qt::Key_E); - m_snappingToolAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); - m_snappingToolAction->setCheckable(true); - m_snappingToolAction->setChecked(true); - m_snappingToolAction->setIcon(QPixmap(":/icon/layout/snapping.png")); - connect(m_snappingToolAction.data(), SIGNAL(triggered(bool)), SLOT(changeSnappingTool(bool))); + m_snappingAction = layoutActionGroup->addAction("Toogle Snapping (Press Key E)"); + m_snappingAction->setShortcut(Qt::Key_E); + m_snappingAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); + m_snappingAction->setCheckable(true); + m_snappingAction->setChecked(true); + m_snappingAction->setIcon(QPixmap(":/icon/layout/snapping.png")); - m_showBoundingRectAction = layoutActionGroup->addAction("Toogle Bounding Rectangles (Press Key R)"); - m_showBoundingRectAction->setShortcut(Qt::Key_R); - m_showBoundingRectAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); - m_showBoundingRectAction->setCheckable(true); - m_showBoundingRectAction->setChecked(true); - m_showBoundingRectAction->setIcon(QPixmap(":/icon/layout/boundingrect.png")); + m_snappingAndAnchoringAction = layoutActionGroup->addAction("Toogle Snapping And Anchoring (Press Key R)"); + m_snappingAndAnchoringAction->setShortcut(Qt::Key_R); + m_snappingAndAnchoringAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); + m_snappingAndAnchoringAction->setCheckable(true); + m_snappingAndAnchoringAction->setChecked(false); + m_snappingAndAnchoringAction->setIcon(QPixmap(":/icon/layout/snapping_and_anchoring.png")); + m_noSnappingAction = layoutActionGroup->addAction("Toogle Snapping And Anchoring (Press Key T)"); + m_noSnappingAction->setShortcut(Qt::Key_T); + m_noSnappingAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); + m_noSnappingAction->setCheckable(true); + m_noSnappingAction->setChecked(false); + m_noSnappingAction->setIcon(QPixmap(":/icon/layout/no_snapping.png")); - m_snappingMarginAction = new NumberSeriesAction(layoutActionGroup); + addActions(layoutActionGroup->actions()); + + separatorAction = new QAction(this); + separatorAction->setSeparator(true); + addAction(separatorAction); + + QActionGroup *layoutMarginActionGroup = new QActionGroup(this); + + m_snappingMarginAction = new NumberSeriesAction(layoutMarginActionGroup); m_snappingMarginAction->addEntry("no margins (0)", 0); m_snappingMarginAction->addEntry("small margin (2)", 2); m_snappingMarginAction->addEntry("medium margin (6)", 6); m_snappingMarginAction->addEntry("all in margin (10)", 10); m_snappingMarginAction->setCurrentEntryIndex(3); - layoutActionGroup->addAction(m_snappingMarginAction.data()); - addActions(layoutActionGroup->actions()); + layoutMarginActionGroup->addAction(m_snappingMarginAction.data()); - m_snappingSpacingAction = new NumberSeriesAction(layoutActionGroup); + + m_snappingSpacingAction = new NumberSeriesAction(layoutMarginActionGroup); m_snappingSpacingAction->addEntry("no spacing (0)", 0); m_snappingSpacingAction->addEntry("small spacing (2)", 2); m_snappingSpacingAction->addEntry("medium spacing (4)", 4); m_snappingSpacingAction->addEntry("all in spacing (6)", 6); m_snappingSpacingAction->setCurrentEntryIndex(1); - layoutActionGroup->addAction(m_snappingSpacingAction.data()); + layoutMarginActionGroup->addAction(m_snappingSpacingAction.data()); + + addActions(layoutMarginActionGroup->actions()); - addActions(layoutActionGroup->actions()); m_zoomAction = new ZoomAction(toolActionGroup()); connect(m_zoomAction.data(), SIGNAL(zoomLevelChanged(double)), SLOT(setZoomLevel(double))); addAction(m_zoomAction.data()); - QAction *separatorAction = new QAction(this); + separatorAction = new QAction(this); separatorAction->setSeparator(true); addAction(separatorAction); - m_selectOnlyContentItemsAction = layoutActionGroup->addAction("Select Only Items with Content (Press Key T)"); - m_selectOnlyContentItemsAction->setShortcut(Qt::Key_T); + + m_showBoundingRectAction = new QAction("Toogle Bounding Rectangles (Press Key A)", this); + m_showBoundingRectAction->setShortcut(Qt::Key_A); + m_showBoundingRectAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); + m_showBoundingRectAction->setCheckable(true); + m_showBoundingRectAction->setChecked(true); + m_showBoundingRectAction->setIcon(QPixmap(":/icon/layout/boundingrect.png")); + + addAction(m_showBoundingRectAction.data()); + + m_selectOnlyContentItemsAction = new QAction("Select Only Items with Content (Press Key S)", this); + m_selectOnlyContentItemsAction->setShortcut(Qt::Key_S); m_selectOnlyContentItemsAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); m_selectOnlyContentItemsAction->setCheckable(true); m_selectOnlyContentItemsAction->setChecked(true); @@ -134,7 +162,7 @@ FormEditorWidget::FormEditorWidget(FormEditorView *view) addAction(m_selectOnlyContentItemsAction.data()); - separatorAction = new QAction(toolActionGroup()); + separatorAction = new QAction(this); separatorAction->setSeparator(true); addAction(separatorAction); @@ -164,11 +192,6 @@ void FormEditorWidget::changeAnchorTool(bool checked) m_formEditorView->changeToAnchorTool(); } -void FormEditorWidget::changeSnappingTool(bool /*checked*/) -{ - // TODO -} - void FormEditorWidget::wheelEvent(QWheelEvent *event) { if (event->modifiers().testFlag(Qt::ControlModifier)) { @@ -234,7 +257,7 @@ ToolBox *FormEditorWidget::toolBox() const bool FormEditorWidget::isSnapButtonChecked() const { - return m_snappingToolAction->isChecked(); + return m_snappingAction->isChecked(); } double FormEditorWidget::spacing() const diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorwidget.h b/src/plugins/qmldesigner/components/formeditor/formeditorwidget.h index a3c0ec35f50..3246fbbffcd 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorwidget.h +++ b/src/plugins/qmldesigner/components/formeditor/formeditorwidget.h @@ -73,7 +73,6 @@ private slots: void changeTransformTool(bool checked); void changeAnchorTool(bool checked); void setZoomLevel(double zoomLevel); - void changeSnappingTool(bool checked); private: QWeakPointer m_formEditorView; @@ -83,7 +82,9 @@ private: QWeakPointer m_transformToolAction; QWeakPointer m_toolActionGroup; QWeakPointer m_toolBox; - QWeakPointer m_snappingToolAction; + QWeakPointer m_snappingAction; + QWeakPointer m_snappingAndAnchoringAction; + QWeakPointer m_noSnappingAction; QWeakPointer m_snappingMarginAction; QWeakPointer m_snappingSpacingAction; QWeakPointer m_showBoundingRectAction; diff --git a/src/plugins/qmldesigner/components/formeditor/no_snapping.png b/src/plugins/qmldesigner/components/formeditor/no_snapping.png new file mode 100644 index 0000000000000000000000000000000000000000..51b4789acc3173735665a495daf6442b416289c4 GIT binary patch literal 425 zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4mJh`26+$Niwq15jKx9jP7LeL$-HD>U|>t~ zc6VX;4}uH!E}zW6z`$AH5n0T@z%2~Ij105pNH8!ku$OrHy0YJ56c#YE3hrJ%pMil< z)6>N*p3NP6%-Tr zC-q7%tP-0!qfE`nKwfHA{MVJM;#>7UFf4feZL5V0-yA>nwg=pMCd#}#YJ15f)kcoL zOT}G|<3efVG!x(EV!r1xzLyJZB7U;Zr!_@y7$xFqSdRE`jQ`6JS*ER=qk9XYt^TZNvVU|>t~ zc6VX;4}uH!E}zW6z`$AH5n0T@z%2~Ij105pNH8!ku$OrHy0YJ56c$jIT^eEegn@zK zx~Gd{h{pN3lWhB140u}YFPMmwm{_+jSbTr>+cOh)9E@ue5fl>b=rhUFc&y8G`1~P` zvy2|Bvrxss|14}*N`3EtpYyP6+KEj)A_sZjclH|gJl>&c@k&dn=I(p0fY7T(hu*w;v&6}UhndUjXuySl r-HrlM$!QN2{r_jpd;Ui5hd_O0Vxhsk1&y2x3=9mOu6{1-oD!M