From eebc56e915db3f0764b177dbf4d9b574491b970b Mon Sep 17 00:00:00 2001
From: Marco Bubke <marco.bubke@nokia.com>
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           |  87 +++++++++++-------
 .../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, 60 insertions(+), 34 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 @@
     </qresource>
     <qresource prefix="/icon/layout">
         <file>snapping.png</file>
+        <file>no_snapping.png</file>
+        <file>snapping_and_anchoring.png</file>
 	<file>boundingrect.png</file>
     </qresource>
     <qresource prefix="/icon/selection">
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);
-
-    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_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"));
+    layoutActionGroup->setExclusive(true);
+
+    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_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"));
 
+    addActions(layoutActionGroup->actions());
 
-    m_snappingMarginAction = new NumberSeriesAction(layoutActionGroup);
+    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<FormEditorView> m_formEditorView;
@@ -83,7 +82,9 @@ private:
     QWeakPointer<QAction> m_transformToolAction;
     QWeakPointer<QActionGroup> m_toolActionGroup;
     QWeakPointer<ToolBox> m_toolBox;
-    QWeakPointer<QAction> m_snappingToolAction;
+    QWeakPointer<QAction> m_snappingAction;
+    QWeakPointer<QAction> m_snappingAndAnchoringAction;
+    QWeakPointer<QAction> m_noSnappingAction;
     QWeakPointer<NumberSeriesAction> m_snappingMarginAction;
     QWeakPointer<NumberSeriesAction> m_snappingSpacingAction;
     QWeakPointer<QAction> 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!ia0vp^d?3uh1|;P@bT0xa#^NA%Cx&(BWL^R}Y)RhkE)4%c
zaKYZ?lYt_f1s;*b3=G`DAk4@xYmNj^kiEpy*OmPiqp*OPRdDzE`9M=NJzX3_G|tbR
z<k)q{LBKWMv{Rx$@=(ly-s<o39K?$|WSpN%Si0R$Fe_$=?U*oCK{0`UQm^#FDzTX}
z%G8Vu<fUfCe_gpMzE%GN!-Ch}wpz&W&GA!jd%(SCqRh*qwwFv&ZRGg7RNUn_E|f-2
zGx2RM=6f#Vd%3_yu6d4_(3b5VS|dHy&3^dpj9SmkushSH#oVt=G-Fh6sOi2}_d&L*
zxTf)al<X{d1t}#}cbk>(|2bQ>)hpe4|DEAXTK}~AeO8PgmX!ZqyVYlTu-ar!HBX^U
zI@P<D7o7k6bB@mGfY38}+aFi$Wt;YY-b&$qH)Xx)+_&Fu<BiCE&wgR&%Q=s0?1HbG
zE<Akg*1fB#dq3SRTD?lCFZq$hv$EZSu7az&R(<-Ilp49-M#0AV)BX>v>!sG%b#AV;
Q1coDnr>mdKI;Vst00!o&T>t<8

literal 0
HcmV?d00001

diff --git a/src/plugins/qmldesigner/components/formeditor/snapping_and_anchoring.png b/src/plugins/qmldesigner/components/formeditor/snapping_and_anchoring.png
new file mode 100644
index 0000000000000000000000000000000000000000..b98b85b10181ad1370bc540eedaf0e93874098be
GIT binary patch
literal 343
zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa#^NA%Cx&(BWL^R}Y)RhkE)4%c
zaKYZ?lYt_f1s;*b3=G`DAk4@xYmNj^kiEpy*OmPiqp*Ow?9vF!CqSX=o-U3d8t3Ou
zvh8az;AyqLU?NgtV%@%A@%`Cv&rIBLFs@NVP)M|+&m>Rdu`bi$^M^RjPM){uM%~8G
zLKO%9v#?z$^}YXn&cm{4CpPtzcYJSLmMJjtdYntf?Qio9qI$pEuH9c8)G6=1u>Os;
zn{aqLtJ{y~Dpl(q@BX#c@|@+IVvQF|t>cb9cgohi7A5A~=gzEgT8Q=SuD<9=DoZk}
zR(c1D9OQl9*=yMIc!#FND=np(yYIOILa!Pfdh_bd5+@rTW-hCv0T%*xI|@i8r#)2k
i|DQGQ`5U<(0`--Ng$DN)G;#vH$l&Sf=d#Wzp$P!&_=cze

literal 0
HcmV?d00001

-- 
GitLab