diff --git a/resources/iconsets/1_7_0/1_7_0.xml b/resources/iconsets/1_7_0/1_7_0.xml
index 6bdabe870..4c4dd42b0 100644
--- a/resources/iconsets/1_7_0/1_7_0.xml
+++ b/resources/iconsets/1_7_0/1_7_0.xml
@@ -173,6 +173,16 @@ On Dark:  #e580ff; rgb(229, 128, 255); hsl(288, 100, 75)
 		<icon onLight="#68B259" onDark="#88CC7A" id="ok.png" file="16/alert-ok.svg" />
 		
 		<!-- Align & Distribute -->
+		<icon id="22/align-to-first-selected.png" file="16/align-to-first-selected.svg" />
+		<icon id="22/align-to-guides.png" file="16/align-to-guides.svg" />
+		<icon id="22/align-to-last-selected-1.png" file="16/align-to-last-selected-1.svg" />
+		<icon id="22/align-to-last-selected.png" file="16/align-to-last-selected.svg" />
+		<icon id="22/align-to-margin.png" file="16/align-to-margin.svg" />
+		<icon id="22/align-to-page.png" file="16/align-to-page.svg" />
+		<icon id="22/align-mode-move.png" file="16/align-mode-move.svg" />
+		<icon id="22/align-mode-resize.png" file="16/align-mode-resize.svg" />
+		<icon id="22/align-reverse-distribution-right.png" file="16/align-reverse-distribution-right.svg" />
+		<icon id="22/align-reverse-distribution-left.png" file="16/align-reverse-distribution-left.svg" />
 		<icon id="22/align-horizontal-center.png" file="16/align-item-horizontal-center.svg" />
 		<icon id="22/align-horizontal-left-out.png" file="16/align-item-horizontal-left-out.svg" />
 		<icon id="22/align-horizontal-left.png" file="16/align-item-horizontal-left.svg" />
diff --git a/scribus/CMakeLists_Sources.txt b/scribus/CMakeLists_Sources.txt
index 7b59202c4..4ba985604 100644
--- a/scribus/CMakeLists_Sources.txt
+++ b/scribus/CMakeLists_Sources.txt
@@ -573,6 +573,7 @@ set(SCRIBUS_SOURCES
 	ui/widgets/pagesizepreview.cpp
 	ui/widgets/pagesizeselector.cpp
 	ui/widgets/popup_menu.cpp
+	ui/widgets/pulsing_toolbutton.cpp
 	ui/widgets/section_container.cpp
 	ui/widgets/stacked_container.cpp
 	ui/widgets/switch.cpp
diff --git a/scribus/ui/aligndistribute.cpp b/scribus/ui/aligndistribute.cpp
index 7a0ccc374..c1f270c7d 100644
--- a/scribus/ui/aligndistribute.cpp
+++ b/scribus/ui/aligndistribute.cpp
@@ -22,6 +22,7 @@ for which a new license (GPL+exception) is in place.
 #include "aligndistribute.h"
 
 #include <QComboBox>
+#include <QButtonGroup>
 #include <QEvent>
 #include <QImage>
 #include <QLabel>
@@ -45,11 +46,19 @@ for which a new license (GPL+exception) is in place.
 #include "undomanager.h"
 #include "units.h"
 
-//TODO Distribute with 
-
 AlignDistribute::AlignDistribute(QWidget* parent) : QWidget(parent)
 {
 	setupUi(this);
+
+	sectionAlign->expand();
+	sectionAlign->setCanSaveState(true);
+	sectionAlign->restorePreferences();
+
+	sectionDistribute->expand();
+	sectionDistribute->setCanSaveState(true);
+	sectionDistribute->restorePreferences();
+
+
 }
 
 
@@ -66,6 +75,21 @@ AlignDistributePalette::AlignDistributePalette(QWidget* parent) : DockPanelBase(
 	//set up scrspinboxes
 	ad->distributeDistSpinBox->setValues(-10000.0, 10000.0, 2, 0.0);
 
+	groupReference = new QButtonGroup();
+
+	groupReference->addButton(ad->buttonReferenceFirst, 0);
+	groupReference->addButton(ad->buttonReferenceLast, 1);
+	groupReference->addButton(ad->buttonReferencePage, 2);
+	groupReference->addButton(ad->buttonReferenceMargins, 3);
+	groupReference->addButton(ad->buttonReferenceGuide, 4);
+	groupReference->addButton(ad->buttonReferenceSelection, 5);
+	ad->buttonReferenceFirst->setChecked(true);
+
+	groupMode = new QButtonGroup();
+	groupMode->addButton(ad->buttonModeMove, 0);
+	groupMode->addButton(ad->buttonModeResize, 1);
+	ad->buttonModeMove->setChecked(true);
+
 	resize( QSize(100, 100).expandedTo(minimumSizeHint()) );
 	languageChange();
 	init();
@@ -73,6 +97,7 @@ AlignDistributePalette::AlignDistributePalette(QWidget* parent) : DockPanelBase(
 
 	connect(ScQApp, SIGNAL(iconSetChanged()), this, SLOT(iconSetChange()));
 	connect(ScQApp, SIGNAL(localeChanged()), this, SLOT(localeChange()));
+	connect(ScQApp, SIGNAL(labelVisibilityChanged(bool)), this, SLOT(toggleLabelVisibility(bool)));
 }
 
 void AlignDistributePalette::changeEvent(QEvent *e)
@@ -89,26 +114,18 @@ void AlignDistributePalette::languageChange()
 {
 	ad->retranslateUi(this);
 
-	int alignComboValue = ad->alignRelativeToCombo->currentIndex();
-	ad->alignRelativeToCombo->clear();
-	ad->alignRelativeToCombo->addItem( tr( "First Selected" ) );
-	ad->alignRelativeToCombo->addItem( tr( "Last Selected" ) );
-	ad->alignRelativeToCombo->addItem( tr( "Page" ) );
-	ad->alignRelativeToCombo->addItem( tr( "Margins" ) );
-	ad->alignRelativeToCombo->addItem( tr( "Guide" ) );
-	ad->alignRelativeToCombo->addItem( tr( "Selection" ) );
-	ad->alignRelativeToCombo->setCurrentIndex(alignComboValue);
-	ad->alignRelativeToCombo->setToolTip( tr( "<qt>Align relative to the:<ul><li>First selected item</li><li>Second Selected Item</li><li>The current page</li><li>The margins of the current page</li><li>A Guide</li><li>The selection</ul></qt>" ) );
-	alignToChanged(alignComboValue);
-
-	int alignMethodValue = ad->alignMoveOrResizeCombo->currentIndex();
-	ad->alignMoveOrResizeCombo->clear();
-	ad->alignMoveOrResizeCombo->addItem( tr("Move") );
-	ad->alignMoveOrResizeCombo->addItem( tr("Resize") );
-	ad->alignMoveOrResizeCombo->setToolTip( tr( "<qt>When aligning one side of an item do one of the following:<ul><li>Always move the other side too (preserve existing width and height)</li><li>Keep the other side fixed (resize the item instead of moving it) whenever possible</li></ul></qt>" ));
-	alignMethodChanged(alignMethodValue);
-
-	ad->alignGuideLineEdit->setToolTip( tr( "The location of the selected guide to align to" ) );
+	referenceGuideTooltipTemplate = tr("Align relative to a guide%1");
+
+	ad->buttonReferenceFirst->setToolTip(tr("Align relative to the first selected item"));
+	ad->buttonReferenceLast->setToolTip(tr("Align relative to the last selected item"));
+	ad->buttonReferencePage->setToolTip(tr("Align relative to the current page"));
+	ad->buttonReferenceMargins->setToolTip(tr("Align relative to the margins of the current page"));
+	ad->buttonReferenceGuide->setToolTip(referenceGuideTooltipTemplate);
+	ad->buttonReferenceSelection->setToolTip(tr("Align relative the selection"));
+
+	ad->buttonModeMove->setToolTip(tr("When aligning one side of an item, always move the other side too (preserve existing width and height)"));
+	ad->buttonModeResize->setToolTip(tr("When aligning one side of an item,  whenever possible keep the other side fixed (resize the item instead of moving it)"));
+
 	ad->alignLeftOutToolButton->setToolTip( tr( "Align right sides of items to left side of anchor" ) );
 	ad->alignRightOutToolButton->setToolTip( tr( "Align left sides of items to right side of anchor" ) );
 	ad->alignBottomInToolButton->setToolTip( tr( "Align bottoms" ) );
@@ -137,20 +154,33 @@ void AlignDistributePalette::languageChange()
 	ad->distributeDownMarginsToolButton->setToolTip( tr( "Make vertical gaps between items and the top and bottom of page margins equal" ) );
 
 	ad->distributeDistSpinBox->setToolTip( tr( "Distribute the items with the distance specified" ) );
-	ad->reverseDistributionCheckBox->setToolTip( tr("When distributing by a set distance, reverse the direction of the distribution of items") );
-
-	guideInfoTextNone = tr("None Selected");
+	ad->reverseDistributionButton->setToolTip( tr("When distributing by a set distance, reverse the direction of the distribution of items") );
 
 	ad->swapLeftToolButton->setToolTip( tr( "Swap items to the left" ) );
 	ad->swapRightToolButton->setToolTip( tr( "Swap items to the right" ) );
 }
 
+void AlignDistributePalette::toggleLabelVisibility(bool v)
+{
+	ad->alignReferenceLabel->setLabelVisibility(v);
+	ad->alignModeLabel->setLabelVisibility(v);
+	ad->alignHorizontalLabel->setLabelVisibility(v);
+	ad->alignVerticalLabel->setLabelVisibility(v);
+	ad->swapLabel->setLabelVisibility(v);
+	ad->distributeHorizontalLabel->setLabelVisibility(v);
+	ad->distributeVerticalLabel->setLabelVisibility(v);
+	ad->distributeByGapLabel->setLabelVisibility(v);
+	ad->distributeByDistanceLabel->setLabelVisibility(v);
+}
+
 void AlignDistributePalette::init()
 {
 	undoManager = UndoManager::instance();
 
 	iconSetChange();
 
+	connect(groupReference, &QButtonGroup::idClicked, this, &AlignDistributePalette::alignToChanged);
+	connect(groupMode, &QButtonGroup::idClicked, this, &AlignDistributePalette::alignMethodChanged);
 	connect(ad->alignLeftOutToolButton, SIGNAL(clicked()), this, SLOT(alignLeftOut()));
 	connect(ad->alignRightOutToolButton, SIGNAL(clicked()), this, SLOT(alignRightOut()));
 	connect(ad->alignBottomInToolButton, SIGNAL(clicked()), this, SLOT(alignBottomIn()));
@@ -178,23 +208,37 @@ void AlignDistributePalette::init()
 	connect(ad->swapLeftToolButton, SIGNAL(clicked()), this, SLOT(swapLeft()));
 	connect(ad->swapRightToolButton, SIGNAL(clicked()), this, SLOT(swapRight()));
 
-	ad->alignRelativeToCombo->setCurrentIndex(0);
 	alignToChanged(0);
 	alignMethodChanged(0);
-	connect(ad->alignRelativeToCombo, SIGNAL(activated(int)), this, SLOT(alignToChanged(int)));
-	connect(ad->alignMoveOrResizeCombo, SIGNAL(activated(int)), this, SLOT(alignMethodChanged(int)));
 
 	unitRatio = 1.0;
 	guideDirection = -1;
-
-	guideInfoText = guideInfoTextNone;
-	ad->alignGuideLineEdit->setText(guideInfoTextNone);
 }
 
 void AlignDistributePalette::iconSetChange()
 {
 	IconManager& im = IconManager::instance();
 
+	ad->alignLeftOutToolButton->setIcon(im.loadIcon("22/align-horizontal-left-out.png"));
+	ad->buttonReferenceFirst->setIcon(im.loadIcon("22/align-to-first-selected.png"));
+	ad->buttonReferenceLast->setIcon(im.loadIcon("22/align-to-last-selected.png"));
+	ad->buttonReferencePage->setIcon(im.loadIcon("22/align-to-page.png"));
+	ad->buttonReferenceMargins->setIcon(im.loadIcon("22/align-to-margin.png"));
+	ad->buttonReferenceGuide->setIcon(im.loadIcon("22/align-to-guides.png"));
+	ad->buttonReferenceSelection->setIcon(im.loadIcon("22/align-to-last-selected-1.png"));
+	ad->buttonModeMove->setIcon(im.loadIcon("22/align-mode-move.png"));
+	ad->buttonModeResize->setIcon(im.loadIcon("22/align-mode-resize.png"));
+	QIcon reverseDistributionIcon;
+	reverseDistributionIcon.addPixmap(im.loadPixmap(
+		"22/align-reverse-distribution-right.png"),
+		QIcon::Normal,
+		QIcon::On);
+	reverseDistributionIcon.addPixmap(im.loadPixmap(
+		"22/align-reverse-distribution-left.png"),
+		QIcon::Normal,
+		QIcon::Off);
+	ad->reverseDistributionButton->setIcon(reverseDistributionIcon);
+
 	ad->alignLeftOutToolButton->setIcon(im.loadIcon("22/align-horizontal-left-out.png"));
 	ad->alignLeftInToolButton->setIcon(im.loadIcon("22/align-horizontal-left.png"));
 	ad->alignCenterHorToolButton->setIcon(im.loadIcon("22/align-horizontal-center.png"));
@@ -330,7 +374,7 @@ void AlignDistributePalette::distributeRight()
 void AlignDistributePalette::distributeDistH(bool usingDistance)
 {
 	if (currDoc != nullptr)
-		currDoc->itemSelection_DistributeDistH(usingDistance, ad->distributeDistSpinBox->value(), ad->reverseDistributionCheckBox->isChecked());
+		currDoc->itemSelection_DistributeDistH(usingDistance, ad->distributeDistSpinBox->value(), ad->reverseDistributionButton->isChecked());
 }
 
 void AlignDistributePalette::distributeDistValH()
@@ -385,7 +429,7 @@ void AlignDistributePalette::distributeTop()
 void AlignDistributePalette::distributeDistV(bool usingDistance)
 {
 	if (currDoc != nullptr)
-		currDoc->itemSelection_DistributeDistV(usingDistance, ad->distributeDistSpinBox->value(), ad->reverseDistributionCheckBox->isChecked());
+		currDoc->itemSelection_DistributeDistV(usingDistance, ad->distributeDistSpinBox->value(), ad->reverseDistributionButton->isChecked());
 }
 
 void AlignDistributePalette::distributeDistValV()
@@ -420,10 +464,9 @@ void AlignDistributePalette::alignMethodChanged(int newAlignMethod)
 
 void AlignDistributePalette::setGuide(int direction, qreal position)
 {
-	//direction 0 = H, 1 = V
-// 	qDebug() << "AlignDistributePalette::setGuide(" << direction << "" << position << ")";
 	guideDirection = direction;
 	guidePosition = position;
+	ad->buttonReferenceGuide->animatePulsing();
 	enableGuideButtons();
 }
 
@@ -437,6 +480,7 @@ void AlignDistributePalette::localeChange()
 void AlignDistributePalette::enableGuideButtons()
 {
 	QString suffix;
+	QString guidePositionText;
 	double unitRatio = 1.0;
 	int precision = 1;
 	if (currDoc != nullptr)
@@ -450,17 +494,16 @@ void AlignDistributePalette::enableGuideButtons()
 	switch (guideDirection)
 	{
 		case -1:
-			guideInfoText = guideInfoTextNone;
 			if (currAlignTo == ScribusDoc::alignGuide)
 				setterH = setterV = false;
 			break;
 		case 0:
-			guideInfoText = tr("Y: %1%2").arg(guidePosition * unitRatio, 0, 'f', precision).arg(suffix);
+			guidePositionText = tr(": Y: %1%2").arg(guidePosition * unitRatio, 0, 'f', precision).arg(suffix);
 			if (currAlignTo == ScribusDoc::alignGuide)
 				setterV = false;
 			break;
 		case 1:
-			guideInfoText = tr("X: %1%2").arg(guidePosition * unitRatio, 0, 'f', precision).arg(suffix);
+			guidePositionText = tr(": X: %1%2").arg(guidePosition * unitRatio, 0, 'f', precision).arg(suffix);
 			if (currAlignTo == ScribusDoc::alignGuide)
 				setterH = false;
 			break;
@@ -481,6 +524,6 @@ void AlignDistributePalette::enableGuideButtons()
 	ad->alignBottomOutToolButton->setEnabled(setterO);
 	ad->alignCenterVerToolButton->setEnabled(setterH);
 
-	ad->alignGuideLineEdit->setText(guideInfoText);
+	ad->buttonReferenceGuide->setToolTip(referenceGuideTooltipTemplate.arg(guidePositionText == "" ? "" : guidePositionText));
 }
 
diff --git a/scribus/ui/aligndistribute.h b/scribus/ui/aligndistribute.h
index 5d1cd42e0..799eebaee 100644
--- a/scribus/ui/aligndistribute.h
+++ b/scribus/ui/aligndistribute.h
@@ -76,10 +76,13 @@ public:
 public slots:
 	void setGuide(int, qreal);
 	void localeChange();
+	void toggleLabelVisibility(bool v);
 
 protected:
 	ScribusView *currView { nullptr };
 	AlignDistribute * ad {nullptr};
+	QButtonGroup* groupReference;
+	QButtonGroup* groupMode;
 
 	void changeEvent(QEvent *e) override;
 	
@@ -129,8 +132,7 @@ private:
 	qreal unitRatio { 1.0 };
 	int guideDirection { -1 };
 	qreal guidePosition { 0.0 };
-	QString guideInfoText;
-	QString guideInfoTextNone;
+	QString referenceGuideTooltipTemplate;
 	
 signals:
 	void documentChanged();
diff --git a/scribus/ui/aligndistribute.ui b/scribus/ui/aligndistribute.ui
index 0a5bb2620..c37be3189 100644
--- a/scribus/ui/aligndistribute.ui
+++ b/scribus/ui/aligndistribute.ui
@@ -6,131 +6,205 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>247</width>
-    <height>277</height>
+    <width>308</width>
+    <height>567</height>
    </rect>
   </property>
   <property name="windowTitle">
    <string>Align and Distribute</string>
   </property>
   <layout class="QVBoxLayout" name="verticalLayout_3">
+   <property name="spacing">
+    <number>0</number>
+   </property>
    <property name="leftMargin">
-    <number>3</number>
+    <number>0</number>
    </property>
    <property name="topMargin">
-    <number>3</number>
+    <number>0</number>
    </property>
    <property name="rightMargin">
-    <number>3</number>
+    <number>0</number>
    </property>
    <property name="bottomMargin">
-    <number>3</number>
+    <number>0</number>
    </property>
    <item>
-    <widget class="QTabWidget" name="tabWidget">
-     <property name="currentIndex">
-      <number>0</number>
+    <widget class="SectionContainer" name="sectionAlign">
+     <property name="title" stdset="0">
+      <string>Align</string>
      </property>
-     <widget class="QWidget" name="tabAlign">
-      <attribute name="title">
-       <string>Align</string>
-      </attribute>
-      <layout class="QVBoxLayout">
-       <property name="spacing">
-        <number>3</number>
-       </property>
+     <widget class="QWidget" name="page">
+      <layout class="QVBoxLayout" name="verticalLayout_4">
        <property name="leftMargin">
-        <number>6</number>
+        <number>8</number>
        </property>
        <property name="topMargin">
-        <number>6</number>
+        <number>8</number>
        </property>
        <property name="rightMargin">
-        <number>6</number>
+        <number>8</number>
        </property>
        <property name="bottomMargin">
-        <number>6</number>
+        <number>8</number>
        </property>
        <item>
-        <layout class="QHBoxLayout" name="_2">
+        <layout class="QHBoxLayout" name="horizontalLayout_2">
          <property name="spacing">
-          <number>3</number>
+          <number>16</number>
          </property>
          <item>
-          <spacer>
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
+          <widget class="FormWidget" name="alignReferenceLabel">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
            </property>
-           <property name="sizeType">
-            <enum>QSizePolicy::Expanding</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>40</width>
-             <height>20</height>
-            </size>
+           <property name="label" stdset="0">
+            <string>Reference</string>
            </property>
-          </spacer>
+           <layout class="QHBoxLayout" name="horizontalLayout">
+            <property name="leftMargin">
+             <number>0</number>
+            </property>
+            <property name="topMargin">
+             <number>0</number>
+            </property>
+            <property name="rightMargin">
+             <number>0</number>
+            </property>
+            <property name="bottomMargin">
+             <number>0</number>
+            </property>
+            <item>
+             <layout class="QHBoxLayout" name="horizontalLayout_13">
+              <property name="spacing">
+               <number>4</number>
+              </property>
+              <item>
+               <widget class="QToolButton" name="buttonReferenceFirst">
+                <property name="text">
+                 <string/>
+                </property>
+                <property name="checkable">
+                 <bool>true</bool>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="buttonReferenceLast">
+                <property name="text">
+                 <string/>
+                </property>
+                <property name="checkable">
+                 <bool>true</bool>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="buttonReferencePage">
+                <property name="text">
+                 <string/>
+                </property>
+                <property name="checkable">
+                 <bool>true</bool>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="buttonReferenceMargins">
+                <property name="text">
+                 <string/>
+                </property>
+                <property name="checkable">
+                 <bool>true</bool>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="PulsingToolButton" name="buttonReferenceGuide">
+                <property name="text">
+                 <string/>
+                </property>
+                <property name="checkable">
+                 <bool>true</bool>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="buttonReferenceSelection">
+                <property name="text">
+                 <string/>
+                </property>
+                <property name="checkable">
+                 <bool>true</bool>
+                </property>
+               </widget>
+              </item>
+             </layout>
+            </item>
+           </layout>
+          </widget>
          </item>
          <item>
-          <layout class="QGridLayout" name="_3">
-           <item row="1" column="0">
-            <widget class="QLabel" name="alignGuideLabel">
-             <property name="text">
-              <string>&amp;Selected Guide:</string>
-             </property>
-             <property name="wordWrap">
-              <bool>false</bool>
-             </property>
-             <property name="buddy">
-              <cstring>alignGuideLineEdit</cstring>
-             </property>
-            </widget>
-           </item>
-           <item row="0" column="0">
-            <widget class="QLabel" name="alignRelativeToLabel">
-             <property name="text">
-              <string>&amp;Relative To:</string>
-             </property>
-             <property name="wordWrap">
-              <bool>false</bool>
-             </property>
-             <property name="buddy">
-              <cstring>alignRelativeToCombo</cstring>
-             </property>
-            </widget>
-           </item>
-           <item row="1" column="1">
-            <widget class="QLineEdit" name="alignGuideLineEdit"/>
-           </item>
-           <item row="0" column="1">
-            <widget class="QComboBox" name="alignRelativeToCombo"/>
-           </item>
-           <item row="2" column="0">
-            <widget class="QLabel" name="alignMoveOrResizeLabel">
-             <property name="text">
-              <string>&amp;Align Sides By:</string>
-             </property>
-             <property name="wordWrap">
-              <bool>false</bool>
-             </property>
-             <property name="buddy">
-              <cstring>alignMoveOrResizeCombo</cstring>
-             </property>
-            </widget>
-           </item>
-           <item row="2" column="1">
-            <widget class="QComboBox" name="alignMoveOrResizeCombo"/>
-           </item>
-          </layout>
+          <widget class="FormWidget" name="alignModeLabel">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <property name="label" stdset="0">
+            <string>Mode</string>
+           </property>
+           <layout class="QHBoxLayout" name="horizontalLayout_12">
+            <property name="leftMargin">
+             <number>0</number>
+            </property>
+            <property name="topMargin">
+             <number>0</number>
+            </property>
+            <property name="rightMargin">
+             <number>0</number>
+            </property>
+            <property name="bottomMargin">
+             <number>0</number>
+            </property>
+            <item>
+             <layout class="QHBoxLayout" name="horizontalLayout_14">
+              <property name="spacing">
+               <number>4</number>
+              </property>
+              <item>
+               <widget class="QToolButton" name="buttonModeMove">
+                <property name="text">
+                 <string/>
+                </property>
+                <property name="checkable">
+                 <bool>true</bool>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="buttonModeResize">
+                <property name="text">
+                 <string/>
+                </property>
+                <property name="checkable">
+                 <bool>true</bool>
+                </property>
+               </widget>
+              </item>
+             </layout>
+            </item>
+           </layout>
+          </widget>
          </item>
          <item>
-          <spacer>
+          <spacer name="horizontalSpacer">
            <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeType">
-            <enum>QSizePolicy::Expanding</enum>
+            <enum>Qt::Orientation::Horizontal</enum>
            </property>
            <property name="sizeHint" stdset="0">
             <size>
@@ -143,17 +217,155 @@
         </layout>
        </item>
        <item>
-        <layout class="QHBoxLayout" name="_4">
-         <property name="spacing">
-          <number>3</number>
-         </property>
+        <layout class="QHBoxLayout" name="horizontalLayout_18">
          <item>
-          <spacer>
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
+          <widget class="FormWidget" name="alignHorizontalLabel">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <property name="label" stdset="0">
+            <string>Horizontal</string>
            </property>
-           <property name="sizeType">
-            <enum>QSizePolicy::Expanding</enum>
+           <layout class="QHBoxLayout" name="horizontalLayout_15">
+            <property name="leftMargin">
+             <number>0</number>
+            </property>
+            <property name="topMargin">
+             <number>0</number>
+            </property>
+            <property name="rightMargin">
+             <number>0</number>
+            </property>
+            <property name="bottomMargin">
+             <number>0</number>
+            </property>
+            <item>
+             <layout class="QHBoxLayout" name="horizontalLayout_4">
+              <property name="spacing">
+               <number>4</number>
+              </property>
+              <item>
+               <widget class="QToolButton" name="alignLeftInToolButton">
+                <property name="minimumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="maximumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="iconSize">
+                 <size>
+                  <width>22</width>
+                  <height>22</height>
+                 </size>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="alignCenterHorToolButton">
+                <property name="minimumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="maximumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="iconSize">
+                 <size>
+                  <width>22</width>
+                  <height>22</height>
+                 </size>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="alignRightInToolButton">
+                <property name="minimumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="maximumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="iconSize">
+                 <size>
+                  <width>22</width>
+                  <height>22</height>
+                 </size>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="alignRightOutToolButton">
+                <property name="minimumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="maximumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="iconSize">
+                 <size>
+                  <width>22</width>
+                  <height>22</height>
+                 </size>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="alignLeftOutToolButton">
+                <property name="minimumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="maximumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="iconSize">
+                 <size>
+                  <width>22</width>
+                  <height>22</height>
+                 </size>
+                </property>
+               </widget>
+              </item>
+             </layout>
+            </item>
+           </layout>
+          </widget>
+         </item>
+         <item>
+          <spacer name="horizontalSpacer_2">
+           <property name="orientation">
+            <enum>Qt::Orientation::Horizontal</enum>
            </property>
            <property name="sizeHint" stdset="0">
             <size>
@@ -163,237 +375,158 @@
            </property>
           </spacer>
          </item>
+        </layout>
+       </item>
+       <item>
+        <layout class="QHBoxLayout" name="horizontalLayout_19">
          <item>
-          <layout class="QGridLayout" name="_5">
-           <item row="1" column="3">
-            <widget class="QToolButton" name="alignBottomInToolButton">
-             <property name="minimumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="iconSize">
-              <size>
-               <width>22</width>
-               <height>22</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-           <item row="1" column="1">
-            <widget class="QToolButton" name="alignTopInToolButton">
-             <property name="minimumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="iconSize">
-              <size>
-               <width>22</width>
-               <height>22</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-           <item row="0" column="1">
-            <widget class="QToolButton" name="alignLeftInToolButton">
-             <property name="minimumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="iconSize">
-              <size>
-               <width>22</width>
-               <height>22</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-           <item row="0" column="3">
-            <widget class="QToolButton" name="alignRightInToolButton">
-             <property name="minimumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="iconSize">
-              <size>
-               <width>22</width>
-               <height>22</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-           <item row="1" column="4">
-            <widget class="QToolButton" name="alignBottomOutToolButton">
-             <property name="minimumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="iconSize">
-              <size>
-               <width>22</width>
-               <height>22</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-           <item row="1" column="0">
-            <widget class="QToolButton" name="alignTopOutToolButton">
-             <property name="minimumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="iconSize">
-              <size>
-               <width>22</width>
-               <height>22</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-           <item row="1" column="2">
-            <widget class="QToolButton" name="alignCenterVerToolButton">
-             <property name="minimumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="iconSize">
-              <size>
-               <width>22</width>
-               <height>22</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-           <item row="0" column="0">
-            <widget class="QToolButton" name="alignLeftOutToolButton">
-             <property name="minimumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="iconSize">
-              <size>
-               <width>22</width>
-               <height>22</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-           <item row="0" column="4">
-            <widget class="QToolButton" name="alignRightOutToolButton">
-             <property name="minimumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="iconSize">
-              <size>
-               <width>22</width>
-               <height>22</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-           <item row="0" column="2">
-            <widget class="QToolButton" name="alignCenterHorToolButton">
-             <property name="minimumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="iconSize">
-              <size>
-               <width>22</width>
-               <height>22</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-          </layout>
+          <widget class="FormWidget" name="alignVerticalLabel">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <property name="label" stdset="0">
+            <string>Vertical</string>
+           </property>
+           <layout class="QHBoxLayout" name="horizontalLayout_16">
+            <property name="leftMargin">
+             <number>0</number>
+            </property>
+            <property name="topMargin">
+             <number>0</number>
+            </property>
+            <property name="rightMargin">
+             <number>0</number>
+            </property>
+            <property name="bottomMargin">
+             <number>0</number>
+            </property>
+            <item>
+             <layout class="QHBoxLayout" name="horizontalLayout_5">
+              <property name="spacing">
+               <number>4</number>
+              </property>
+              <item>
+               <widget class="QToolButton" name="alignTopInToolButton">
+                <property name="minimumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="maximumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="iconSize">
+                 <size>
+                  <width>22</width>
+                  <height>22</height>
+                 </size>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="alignCenterVerToolButton">
+                <property name="minimumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="maximumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="iconSize">
+                 <size>
+                  <width>22</width>
+                  <height>22</height>
+                 </size>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="alignBottomInToolButton">
+                <property name="minimumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="maximumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="iconSize">
+                 <size>
+                  <width>22</width>
+                  <height>22</height>
+                 </size>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="alignBottomOutToolButton">
+                <property name="minimumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="maximumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="iconSize">
+                 <size>
+                  <width>22</width>
+                  <height>22</height>
+                 </size>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="alignTopOutToolButton">
+                <property name="minimumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="maximumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="iconSize">
+                 <size>
+                  <width>22</width>
+                  <height>22</height>
+                 </size>
+                </property>
+               </widget>
+              </item>
+             </layout>
+            </item>
+           </layout>
+          </widget>
          </item>
          <item>
-          <spacer>
+          <spacer name="horizontalSpacer_3">
            <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeType">
-            <enum>QSizePolicy::Expanding</enum>
+            <enum>Qt::Orientation::Horizontal</enum>
            </property>
            <property name="sizeHint" stdset="0">
             <size>
@@ -405,400 +538,164 @@
          </item>
         </layout>
        </item>
-       <item>
-        <spacer>
-         <property name="orientation">
-          <enum>Qt::Vertical</enum>
-         </property>
-         <property name="sizeType">
-          <enum>QSizePolicy::Expanding</enum>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>20</width>
-           <height>0</height>
-          </size>
-         </property>
-        </spacer>
-       </item>
       </layout>
      </widget>
-     <widget class="QWidget" name="tabDistribute">
-      <attribute name="title">
-       <string>Distribute</string>
-      </attribute>
-      <layout class="QVBoxLayout" name="verticalLayout_2">
+    </widget>
+   </item>
+   <item>
+    <widget class="SectionContainer" name="sectionDistribute">
+     <property name="title" stdset="0">
+      <string>Distribute</string>
+     </property>
+     <widget class="QWidget" name="page_2">
+      <layout class="QVBoxLayout" name="verticalLayout_7">
        <property name="spacing">
-        <number>3</number>
+        <number>8</number>
        </property>
        <property name="leftMargin">
-        <number>6</number>
+        <number>8</number>
        </property>
        <property name="topMargin">
-        <number>6</number>
+        <number>8</number>
        </property>
        <property name="rightMargin">
-        <number>6</number>
+        <number>8</number>
        </property>
        <property name="bottomMargin">
-        <number>6</number>
+        <number>8</number>
        </property>
        <item>
-        <layout class="QHBoxLayout" name="_6">
-         <property name="spacing">
-          <number>3</number>
-         </property>
+        <layout class="QHBoxLayout" name="horizontalLayout_24">
          <item>
-          <spacer>
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeType">
-            <enum>QSizePolicy::Expanding</enum>
+          <widget class="FormWidget" name="distributeHorizontalLabel">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
            </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>63</width>
-             <height>20</height>
-            </size>
+           <property name="label" stdset="0">
+            <string>Horizontal</string>
            </property>
-          </spacer>
-         </item>
-         <item>
-          <layout class="QGridLayout" name="_7">
-           <item row="0" column="3">
-            <widget class="QToolButton" name="distributeDistHToolButton">
-             <property name="minimumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="iconSize">
-              <size>
-               <width>22</width>
-               <height>22</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-           <item row="1" column="2">
-            <widget class="QToolButton" name="distributeTopToolButton">
-             <property name="minimumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="iconSize">
-              <size>
-               <width>22</width>
-               <height>22</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-           <item row="1" column="1">
-            <widget class="QToolButton" name="distributeCenterVToolButton">
-             <property name="minimumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="iconSize">
-              <size>
-               <width>22</width>
-               <height>22</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-           <item row="0" column="2">
-            <widget class="QToolButton" name="distributeRightToolButton">
-             <property name="minimumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="iconSize">
-              <size>
-               <width>22</width>
-               <height>22</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-           <item row="2" column="2">
-            <widget class="QToolButton" name="distributeAcrossMarginsToolButton">
-             <property name="enabled">
-              <bool>true</bool>
-             </property>
-             <property name="minimumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="iconSize">
-              <size>
-               <width>22</width>
-               <height>22</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-           <item row="0" column="0">
-            <widget class="QToolButton" name="distributeLeftToolButton">
-             <property name="minimumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="iconSize">
-              <size>
-               <width>22</width>
-               <height>22</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-           <item row="2" column="0">
-            <widget class="QToolButton" name="distributeAcrossPageToolButton">
-             <property name="enabled">
-              <bool>true</bool>
-             </property>
-             <property name="minimumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="iconSize">
-              <size>
-               <width>22</width>
-               <height>22</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-           <item row="3" column="1">
-            <widget class="QToolButton" name="distributeDistValueHToolButton">
-             <property name="minimumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="iconSize">
-              <size>
-               <width>22</width>
-               <height>22</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-           <item row="2" column="3">
-            <widget class="QToolButton" name="distributeDownMarginsToolButton">
-             <property name="enabled">
-              <bool>true</bool>
-             </property>
-             <property name="minimumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="iconSize">
-              <size>
-               <width>22</width>
-               <height>22</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-           <item row="0" column="1">
-            <widget class="QToolButton" name="distributeCenterHToolButton">
-             <property name="minimumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="iconSize">
-              <size>
-               <width>22</width>
-               <height>22</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-           <item row="2" column="1">
-            <widget class="QToolButton" name="distributeDownPageToolButton">
-             <property name="enabled">
-              <bool>true</bool>
-             </property>
-             <property name="minimumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="iconSize">
-              <size>
-               <width>22</width>
-               <height>22</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-           <item row="3" column="2">
-            <widget class="QToolButton" name="distributeDistValueVToolButton">
-             <property name="minimumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="iconSize">
-              <size>
-               <width>22</width>
-               <height>22</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-           <item row="1" column="3">
-            <widget class="QToolButton" name="distributeDistVToolButton">
-             <property name="minimumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="iconSize">
-              <size>
-               <width>22</width>
-               <height>22</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-           <item row="1" column="0">
-            <widget class="QToolButton" name="distributeBottomToolButton">
-             <property name="minimumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>24</width>
-               <height>24</height>
-              </size>
-             </property>
-             <property name="iconSize">
-              <size>
-               <width>22</width>
-               <height>22</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-          </layout>
+           <layout class="QHBoxLayout" name="horizontalLayout_21">
+            <property name="leftMargin">
+             <number>0</number>
+            </property>
+            <property name="topMargin">
+             <number>0</number>
+            </property>
+            <property name="rightMargin">
+             <number>0</number>
+            </property>
+            <property name="bottomMargin">
+             <number>0</number>
+            </property>
+            <item>
+             <layout class="QHBoxLayout" name="horizontalLayout_6">
+              <property name="spacing">
+               <number>4</number>
+              </property>
+              <item>
+               <widget class="QToolButton" name="distributeLeftToolButton">
+                <property name="minimumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="maximumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="iconSize">
+                 <size>
+                  <width>22</width>
+                  <height>22</height>
+                 </size>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="distributeCenterHToolButton">
+                <property name="minimumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="maximumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="iconSize">
+                 <size>
+                  <width>22</width>
+                  <height>22</height>
+                 </size>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="distributeRightToolButton">
+                <property name="minimumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="maximumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="iconSize">
+                 <size>
+                  <width>22</width>
+                  <height>22</height>
+                 </size>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="distributeDistHToolButton">
+                <property name="minimumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="maximumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="iconSize">
+                 <size>
+                  <width>22</width>
+                  <height>22</height>
+                 </size>
+                </property>
+               </widget>
+              </item>
+             </layout>
+            </item>
+           </layout>
+          </widget>
          </item>
          <item>
-          <spacer>
+          <spacer name="horizontalSpacer_6">
            <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeType">
-            <enum>QSizePolicy::Expanding</enum>
+            <enum>Qt::Orientation::Horizontal</enum>
            </property>
            <property name="sizeHint" stdset="0">
             <size>
-             <width>62</width>
+             <width>40</width>
              <height>20</height>
             </size>
            </property>
@@ -807,63 +704,133 @@
         </layout>
        </item>
        <item>
-        <layout class="QHBoxLayout" name="_8">
+        <layout class="QHBoxLayout" name="horizontalLayout_25">
          <item>
-          <spacer>
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
+          <widget class="FormWidget" name="distributeVerticalLabel">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
            </property>
-           <property name="sizeType">
-            <enum>QSizePolicy::Expanding</enum>
+           <property name="label" stdset="0">
+            <string>Vertical</string>
            </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>40</width>
-             <height>20</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
-         <item>
-          <layout class="QHBoxLayout" name="_9">
-           <property name="spacing">
-            <number>3</number>
-           </property>
-           <item>
-            <widget class="QLabel" name="distributeDistLabel">
-             <property name="text">
-              <string>&amp;Distance:</string>
-             </property>
-             <property name="wordWrap">
-              <bool>false</bool>
-             </property>
-             <property name="indent">
-              <number>-1</number>
-             </property>
-             <property name="buddy">
-              <cstring>distributeDistSpinBox</cstring>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="ScrSpinBox" name="distributeDistSpinBox">
-             <property name="minimumSize">
-              <size>
-               <width>50</width>
-               <height>24</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-          </layout>
+           <layout class="QHBoxLayout" name="horizontalLayout_22">
+            <property name="leftMargin">
+             <number>0</number>
+            </property>
+            <property name="topMargin">
+             <number>0</number>
+            </property>
+            <property name="rightMargin">
+             <number>0</number>
+            </property>
+            <property name="bottomMargin">
+             <number>0</number>
+            </property>
+            <item>
+             <layout class="QHBoxLayout" name="horizontalLayout_7">
+              <property name="spacing">
+               <number>4</number>
+              </property>
+              <item>
+               <widget class="QToolButton" name="distributeTopToolButton">
+                <property name="minimumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="maximumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="iconSize">
+                 <size>
+                  <width>22</width>
+                  <height>22</height>
+                 </size>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="distributeCenterVToolButton">
+                <property name="minimumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="maximumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="iconSize">
+                 <size>
+                  <width>22</width>
+                  <height>22</height>
+                 </size>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="distributeBottomToolButton">
+                <property name="minimumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="maximumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="iconSize">
+                 <size>
+                  <width>22</width>
+                  <height>22</height>
+                 </size>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="distributeDistVToolButton">
+                <property name="minimumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="maximumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="iconSize">
+                 <size>
+                  <width>22</width>
+                  <height>22</height>
+                 </size>
+                </property>
+               </widget>
+              </item>
+             </layout>
+            </item>
+           </layout>
+          </widget>
          </item>
          <item>
-          <spacer>
+          <spacer name="horizontalSpacer_7">
            <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeType">
-            <enum>QSizePolicy::Expanding</enum>
+            <enum>Qt::Orientation::Horizontal</enum>
            </property>
            <property name="sizeHint" stdset="0">
             <size>
@@ -876,40 +843,145 @@
         </layout>
        </item>
        <item>
-        <layout class="QHBoxLayout" name="horizontalLayout_2">
-         <property name="spacing">
-          <number>3</number>
-         </property>
+        <layout class="QHBoxLayout" name="horizontalLayout_26">
          <item>
-          <spacer name="spacer">
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
+          <widget class="FormWidget" name="distributeByGapLabel">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
            </property>
-           <property name="sizeType">
-            <enum>QSizePolicy::Expanding</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>40</width>
-             <height>20</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
-         <item>
-          <widget class="QCheckBox" name="reverseDistributionCheckBox">
-           <property name="text">
-            <string>Reverse Distribution</string>
+           <property name="label" stdset="0">
+            <string>By gap</string>
            </property>
+           <layout class="QHBoxLayout" name="horizontalLayout_23">
+            <property name="leftMargin">
+             <number>0</number>
+            </property>
+            <property name="topMargin">
+             <number>0</number>
+            </property>
+            <property name="rightMargin">
+             <number>0</number>
+            </property>
+            <property name="bottomMargin">
+             <number>0</number>
+            </property>
+            <item>
+             <layout class="QHBoxLayout" name="horizontalLayout_8">
+              <property name="spacing">
+               <number>4</number>
+              </property>
+              <item>
+               <widget class="QToolButton" name="distributeAcrossPageToolButton">
+                <property name="enabled">
+                 <bool>true</bool>
+                </property>
+                <property name="minimumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="maximumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="iconSize">
+                 <size>
+                  <width>22</width>
+                  <height>22</height>
+                 </size>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="distributeDownPageToolButton">
+                <property name="enabled">
+                 <bool>true</bool>
+                </property>
+                <property name="minimumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="maximumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="iconSize">
+                 <size>
+                  <width>22</width>
+                  <height>22</height>
+                 </size>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="distributeAcrossMarginsToolButton">
+                <property name="enabled">
+                 <bool>true</bool>
+                </property>
+                <property name="minimumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="maximumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="iconSize">
+                 <size>
+                  <width>22</width>
+                  <height>22</height>
+                 </size>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="distributeDownMarginsToolButton">
+                <property name="enabled">
+                 <bool>true</bool>
+                </property>
+                <property name="minimumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="maximumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="iconSize">
+                 <size>
+                  <width>22</width>
+                  <height>22</height>
+                 </size>
+                </property>
+               </widget>
+              </item>
+             </layout>
+            </item>
+           </layout>
           </widget>
          </item>
          <item>
-          <spacer name="spacer_2">
+          <spacer name="horizontalSpacer_8">
            <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeType">
-            <enum>QSizePolicy::Expanding</enum>
+            <enum>Qt::Orientation::Horizontal</enum>
            </property>
            <property name="sizeHint" stdset="0">
             <size>
@@ -922,52 +994,109 @@
         </layout>
        </item>
        <item>
-        <spacer>
-         <property name="orientation">
-          <enum>Qt::Vertical</enum>
-         </property>
-         <property name="sizeType">
-          <enum>QSizePolicy::Expanding</enum>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>20</width>
-           <height>0</height>
-          </size>
-         </property>
-        </spacer>
-       </item>
-      </layout>
-     </widget>
-     <widget class="QWidget" name="tabSwap">
-      <attribute name="title">
-       <string>Swap</string>
-      </attribute>
-      <layout class="QVBoxLayout" name="verticalLayout">
-       <property name="spacing">
-        <number>3</number>
-       </property>
-       <property name="leftMargin">
-        <number>6</number>
-       </property>
-       <property name="topMargin">
-        <number>6</number>
-       </property>
-       <property name="rightMargin">
-        <number>6</number>
-       </property>
-       <property name="bottomMargin">
-        <number>6</number>
-       </property>
-       <item>
-        <layout class="QHBoxLayout" name="horizontalLayout">
-         <property name="spacing">
-          <number>3</number>
-         </property>
+        <layout class="QHBoxLayout" name="horizontalLayout_10">
          <item>
-          <spacer name="horizontalSpacer">
+          <widget class="FormWidget" name="distributeByDistanceLabel">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <property name="label" stdset="0">
+            <string>By distance</string>
+           </property>
+           <layout class="QHBoxLayout" name="horizontalLayout_20">
+            <property name="leftMargin">
+             <number>0</number>
+            </property>
+            <property name="topMargin">
+             <number>0</number>
+            </property>
+            <property name="rightMargin">
+             <number>0</number>
+            </property>
+            <property name="bottomMargin">
+             <number>0</number>
+            </property>
+            <item>
+             <layout class="QHBoxLayout" name="horizontalLayout_9">
+              <property name="spacing">
+               <number>4</number>
+              </property>
+              <item>
+               <widget class="QToolButton" name="distributeDistValueVToolButton">
+                <property name="minimumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="maximumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="iconSize">
+                 <size>
+                  <width>22</width>
+                  <height>22</height>
+                 </size>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="distributeDistValueHToolButton">
+                <property name="minimumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="maximumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="iconSize">
+                 <size>
+                  <width>22</width>
+                  <height>22</height>
+                 </size>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="ScrSpinBox" name="distributeDistSpinBox">
+                <property name="minimumSize">
+                 <size>
+                  <width>50</width>
+                  <height>24</height>
+                 </size>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="reverseDistributionButton">
+                <property name="text">
+                 <string/>
+                </property>
+                <property name="checkable">
+                 <bool>true</bool>
+                </property>
+               </widget>
+              </item>
+             </layout>
+            </item>
+           </layout>
+          </widget>
+         </item>
+         <item>
+          <spacer name="horizontalSpacer_4">
            <property name="orientation">
-            <enum>Qt::Horizontal</enum>
+            <enum>Qt::Orientation::Horizontal</enum>
            </property>
            <property name="sizeHint" stdset="0">
             <size>
@@ -977,54 +1106,92 @@
            </property>
           </spacer>
          </item>
+        </layout>
+       </item>
+       <item>
+        <layout class="QHBoxLayout" name="horizontalLayout_3">
          <item>
-          <widget class="QToolButton" name="swapLeftToolButton">
-           <property name="minimumSize">
-            <size>
-             <width>24</width>
-             <height>24</height>
-            </size>
-           </property>
-           <property name="maximumSize">
-            <size>
-             <width>24</width>
-             <height>24</height>
-            </size>
-           </property>
-           <property name="iconSize">
-            <size>
-             <width>22</width>
-             <height>22</height>
-            </size>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QToolButton" name="swapRightToolButton">
-           <property name="minimumSize">
-            <size>
-             <width>24</width>
-             <height>24</height>
-            </size>
-           </property>
-           <property name="maximumSize">
-            <size>
-             <width>24</width>
-             <height>24</height>
-            </size>
+          <widget class="FormWidget" name="swapLabel">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
            </property>
-           <property name="iconSize">
-            <size>
-             <width>22</width>
-             <height>22</height>
-            </size>
+           <property name="label" stdset="0">
+            <string>Swap</string>
            </property>
+           <layout class="QHBoxLayout" name="horizontalLayout_17">
+            <property name="leftMargin">
+             <number>0</number>
+            </property>
+            <property name="topMargin">
+             <number>0</number>
+            </property>
+            <property name="rightMargin">
+             <number>0</number>
+            </property>
+            <property name="bottomMargin">
+             <number>0</number>
+            </property>
+            <item>
+             <layout class="QHBoxLayout" name="horizontalLayout_11">
+              <property name="spacing">
+               <number>4</number>
+              </property>
+              <item>
+               <widget class="QToolButton" name="swapLeftToolButton">
+                <property name="minimumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="maximumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="iconSize">
+                 <size>
+                  <width>22</width>
+                  <height>22</height>
+                 </size>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="swapRightToolButton">
+                <property name="minimumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="maximumSize">
+                 <size>
+                  <width>24</width>
+                  <height>24</height>
+                 </size>
+                </property>
+                <property name="iconSize">
+                 <size>
+                  <width>22</width>
+                  <height>22</height>
+                 </size>
+                </property>
+               </widget>
+              </item>
+             </layout>
+            </item>
+           </layout>
           </widget>
          </item>
          <item>
-          <spacer name="horizontalSpacer_2">
+          <spacer name="horizontalSpacer_5">
            <property name="orientation">
-            <enum>Qt::Horizontal</enum>
+            <enum>Qt::Orientation::Horizontal</enum>
            </property>
            <property name="sizeHint" stdset="0">
             <size>
@@ -1036,65 +1203,87 @@
          </item>
         </layout>
        </item>
-       <item>
-        <spacer name="verticalSpacer">
-         <property name="orientation">
-          <enum>Qt::Vertical</enum>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>20</width>
-           <height>0</height>
-          </size>
-         </property>
-        </spacer>
-       </item>
       </layout>
      </widget>
     </widget>
    </item>
+   <item>
+    <spacer name="verticalSpacer">
+     <property name="orientation">
+      <enum>Qt::Orientation::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>40</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
   </layout>
  </widget>
  <customwidgets>
+  <customwidget>
+   <class>FormWidget</class>
+   <extends>QWidget</extends>
+   <header>ui/widgets/form_widget.h</header>
+   <container>1</container>
+  </customwidget>
+  <customwidget>
+   <class>SectionContainer</class>
+   <extends>QWidget</extends>
+   <header>ui/widgets/section_container.h</header>
+   <addpagemethod>setWidget</addpagemethod>
+   <container>1</container>
+  </customwidget>
   <customwidget>
    <class>ScrSpinBox</class>
    <extends>QDoubleSpinBox</extends>
    <header>ui/scrspinbox.h</header>
   </customwidget>
+  <customwidget>
+   <class>PulsingToolButton</class>
+   <extends>QToolButton</extends>
+   <header>ui/widgets/pulsing_toolbutton.h</header>
+  </customwidget>
  </customwidgets>
  <tabstops>
-  <tabstop>alignRelativeToCombo</tabstop>
-  <tabstop>alignGuideLineEdit</tabstop>
-  <tabstop>alignMoveOrResizeCombo</tabstop>
-  <tabstop>alignLeftOutToolButton</tabstop>
+  <tabstop>buttonReferenceFirst</tabstop>
+  <tabstop>buttonReferenceLast</tabstop>
+  <tabstop>buttonReferencePage</tabstop>
+  <tabstop>buttonReferenceMargins</tabstop>
+  <tabstop>buttonReferenceGuide</tabstop>
+  <tabstop>buttonReferenceSelection</tabstop>
+  <tabstop>buttonModeMove</tabstop>
+  <tabstop>buttonModeResize</tabstop>
   <tabstop>alignLeftInToolButton</tabstop>
   <tabstop>alignCenterHorToolButton</tabstop>
   <tabstop>alignRightInToolButton</tabstop>
   <tabstop>alignRightOutToolButton</tabstop>
-  <tabstop>alignTopOutToolButton</tabstop>
+  <tabstop>alignLeftOutToolButton</tabstop>
   <tabstop>alignTopInToolButton</tabstop>
   <tabstop>alignCenterVerToolButton</tabstop>
   <tabstop>alignBottomInToolButton</tabstop>
   <tabstop>alignBottomOutToolButton</tabstop>
+  <tabstop>alignTopOutToolButton</tabstop>
   <tabstop>distributeLeftToolButton</tabstop>
   <tabstop>distributeCenterHToolButton</tabstop>
   <tabstop>distributeRightToolButton</tabstop>
   <tabstop>distributeDistHToolButton</tabstop>
-  <tabstop>distributeBottomToolButton</tabstop>
-  <tabstop>distributeCenterVToolButton</tabstop>
   <tabstop>distributeTopToolButton</tabstop>
+  <tabstop>distributeCenterVToolButton</tabstop>
+  <tabstop>distributeBottomToolButton</tabstop>
   <tabstop>distributeDistVToolButton</tabstop>
   <tabstop>distributeAcrossPageToolButton</tabstop>
   <tabstop>distributeDownPageToolButton</tabstop>
   <tabstop>distributeAcrossMarginsToolButton</tabstop>
   <tabstop>distributeDownMarginsToolButton</tabstop>
-  <tabstop>distributeDistValueHToolButton</tabstop>
   <tabstop>distributeDistValueVToolButton</tabstop>
+  <tabstop>distributeDistValueHToolButton</tabstop>
   <tabstop>distributeDistSpinBox</tabstop>
-  <tabstop>reverseDistributionCheckBox</tabstop>
+  <tabstop>reverseDistributionButton</tabstop>
   <tabstop>swapLeftToolButton</tabstop>
   <tabstop>swapRightToolButton</tabstop>
-  <tabstop>tabWidget</tabstop>
  </tabstops>
  <includes>
   <include location="local">ui/scrspinbox.h</include>
diff --git a/scribus/ui/widgets/pulsing_toolbutton.cpp b/scribus/ui/widgets/pulsing_toolbutton.cpp
new file mode 100644
index 000000000..405860c91
--- /dev/null
+++ b/scribus/ui/widgets/pulsing_toolbutton.cpp
@@ -0,0 +1,79 @@
+#include "pulsing_toolbutton.h"
+
+#include <QBrush>
+#include <QColor>
+#include <QPaintEvent>
+#include <QPalette>
+#include <QStyle>
+#include <QStyleOptionButton>
+#include <QStylePainter>
+#include <QString>
+#include <QToolButton>
+#include <QVariant>
+#include <QVariantAnimation>
+#include <QWidget>
+
+PulsingToolButton::PulsingToolButton(QWidget *parent):
+	QToolButton(parent),
+	m_transition(nullptr)
+{
+}
+
+void PulsingToolButton::paintEvent(QPaintEvent* event)
+{
+	if (m_transition == nullptr)
+	{
+		QToolButton::paintEvent(event);
+	}
+	else
+	{
+		QStylePainter p(this);
+		QStyleOptionToolButton opt;
+		initStyleOption(&opt);
+		p.drawComplexControl(QStyle::CC_ToolButton, opt);
+
+		m_currentColor.setAlpha(100);
+		p.setBrush(m_currentColor);
+		p.setPen(Qt::NoPen);
+		p.drawRect(0,0,width(),height());
+	}
+}
+
+// https://stackoverflow.com/questions/53084981/how-to-add-a-hover-transition-to-qpushbutton
+// https://forum.qt.io/post/538500
+void PulsingToolButton::animatePulsing()
+{
+	if (!isChecked())
+	{
+		return;
+	}
+	if (m_transition != nullptr)
+	{
+		// too fast, don't show a second animation
+		return;
+		// m_transition->stop();
+	}
+
+	m_transition = new QVariantAnimation(this);
+	m_transition->setDuration(1000); // TODO: this should be a class const
+
+	QColor startColor = palette().button().color();
+	QColor endColor = palette().shadow().color();
+
+	m_transition->setStartValue(startColor);
+	m_transition->setEndValue(endColor);
+
+	connect(m_transition, &QVariantAnimation::valueChanged,
+			this, [this](const QVariant &value){
+		m_currentColor = value.value<QColor>();
+		repaint();
+	});
+
+	connect(m_transition, &QVariantAnimation::destroyed,
+			this, [this](){
+		m_transition = nullptr;
+		repaint();
+	});
+
+	m_transition->start(QAbstractAnimation::DeleteWhenStopped);
+}
diff --git a/scribus/ui/widgets/pulsing_toolbutton.h b/scribus/ui/widgets/pulsing_toolbutton.h
new file mode 100644
index 000000000..5cec70e43
--- /dev/null
+++ b/scribus/ui/widgets/pulsing_toolbutton.h
@@ -0,0 +1,40 @@
+#ifndef PULSING_TOOLBUTTON_H
+#define PULSING_TOOLBUTTON_H
+
+/**
+ * Change the background color of the ToolButton to the opposite among checked and unchecked,
+ * then animate the transition back to the original color.
+ * Currently, done by draing a semitransparent rectangle on top of the button.
+ *
+ * In the future, the widget can be extend to pulse in a loop until mouseover, or other
+ * fancy gadgets.
+ *
+ * The current minimal implementation is tailored for the buttonReferenceGuide button in
+ * the align and distribute dialog:
+ * - It only pulses once.
+ * - It only pulses when it's checked.
+ * - The animation time is a constant.
+ */
+
+#include <QColor>
+#include <QToolButton>
+
+class QVariantAnimation;
+class QWidget;
+
+class PulsingToolButton : public QToolButton
+{
+	Q_OBJECT
+public:
+	explicit PulsingToolButton(QWidget *parent = nullptr);
+	void animatePulsing();
+
+protected:
+	void paintEvent(QPaintEvent *) override;
+
+private:
+	QVariantAnimation *m_transition;
+	QColor m_currentColor;
+};
+
+#endif
