diff --git a/resources/iconsets/1_7_0/16/align-mode-move.svg b/resources/iconsets/1_7_0/16/align-mode-move.svg
new file mode 100644
index 0000000000000000000000000000000000000000..aaeeda16404d0d24d1a725172958d2b6ffb4d964
--- /dev/null
+++ b/resources/iconsets/1_7_0/16/align-mode-move.svg
@@ -0,0 +1,6 @@
+<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><style>@import '../colors.css';</style>
+<rect x="1" y="1" width="1" height="14" class="success"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M6 10L3 12.5L6 15V13H9V12H6V10Z" class="error"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M15 2H8V10H15V2ZM14 3H9V9H14V3Z"/>
+<rect x="9" y="3" width="5" height="6" fill-opacity="0.4"/>
+</svg>
diff --git a/resources/iconsets/1_7_0/16/align-mode-resize.svg b/resources/iconsets/1_7_0/16/align-mode-resize.svg
new file mode 100644
index 0000000000000000000000000000000000000000..1ebb06f0ee0a49ecb047700c2247d9814974494d
--- /dev/null
+++ b/resources/iconsets/1_7_0/16/align-mode-resize.svg
@@ -0,0 +1,11 @@
+<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><style>@import '../colors.css';</style>
+<rect x="1" y="1" width="1" height="14" class="success"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M3 14V11H4V12H8V11H9V14H8V13H4V14H3Z" class="error"/>
+<path d="M3 2H5V3H4V4H3V2Z"/>
+<path d="M6 9H8V10H6V9Z"/>
+<path d="M3 8V10H5V9H4V8H3Z"/>
+<path d="M3 5H4V7H3V5Z"/>
+<path d="M6 2V3H8V2H6Z"/>
+<path d="M9 2V3H14V9H9V10H15V2H9Z"/>
+<rect x="4" y="3" width="10" height="6" fill-opacity="0.4"/>
+</svg>
diff --git a/resources/iconsets/1_7_0/16/align-reverse-distribution-left.svg b/resources/iconsets/1_7_0/16/align-reverse-distribution-left.svg
new file mode 100644
index 0000000000000000000000000000000000000000..856d9d4d47d20a9a0efa0cd598aef6d2cfd5e533
--- /dev/null
+++ b/resources/iconsets/1_7_0/16/align-reverse-distribution-left.svg
@@ -0,0 +1,4 @@
+<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><style>@import '../colors.css';</style>
+<path d="M2 1H1V15H2V1Z" class="success"/>
+<path d="M15 7.5L12 5V7H3V8H12V10L15 7.5Z" class="error"/>
+</svg>
diff --git a/resources/iconsets/1_7_0/16/align-reverse-distribution-right.svg b/resources/iconsets/1_7_0/16/align-reverse-distribution-right.svg
new file mode 100644
index 0000000000000000000000000000000000000000..31df322b9c136cc2b1a4897377bb62a90fa38496
--- /dev/null
+++ b/resources/iconsets/1_7_0/16/align-reverse-distribution-right.svg
@@ -0,0 +1,4 @@
+<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><style>@import '../colors.css';</style>
+<path d="M15 1H14V15H15V1Z" class="success"/>
+<path d="M1 7.5L4 5V7H13V8H4V10L1 7.5Z" class="error"/>
+</svg>
diff --git a/resources/iconsets/1_7_0/16/align-to-first-selected.svg b/resources/iconsets/1_7_0/16/align-to-first-selected.svg
new file mode 100644
index 0000000000000000000000000000000000000000..38b240996057beb8f891651945639ad944f62836
--- /dev/null
+++ b/resources/iconsets/1_7_0/16/align-to-first-selected.svg
@@ -0,0 +1,21 @@
+<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><style>@import '../colors.css';</style>
+<rect x="3" y="5" width="3" height="6"/>
+<rect x="7" y="5" width="2" height="6" fill-opacity="0.4"/>
+<rect x="10" y="5" width="3" height="6" fill-opacity="0.4"/>
+<path d="M3 1H1V3H2V2H3V1Z" fill-opacity="0.4"/>
+<path d="M6 1H4V2H6V1Z" fill-opacity="0.4"/>
+<path d="M7 1H9V2H7V1Z" fill-opacity="0.4"/>
+<path d="M12 1H10V2H12V1Z" fill-opacity="0.4"/>
+<path d="M13 1H15V3H14V2H13V1Z" fill-opacity="0.4"/>
+<path d="M15 4H14V6H15V4Z" fill-opacity="0.4"/>
+<path d="M14 7H15V9H14V7Z" fill-opacity="0.4"/>
+<path d="M15 10H14V12H15V10Z" fill-opacity="0.4"/>
+<path d="M14 14V13H15V15H13V14H14Z" fill-opacity="0.4"/>
+<path d="M12 14H10V15H12V14Z" fill-opacity="0.4"/>
+<path d="M7 14H9V15H7V14Z" fill-opacity="0.4"/>
+<path d="M6 14H4V15H6V14Z" fill-opacity="0.4"/>
+<path d="M1 13H2V14H3V15H1V13Z" fill-opacity="0.4"/>
+<path d="M2 10H1V12H2V10Z" fill-opacity="0.4"/>
+<path d="M1 7H2V9H1V7Z" fill-opacity="0.4"/>
+<path d="M2 4H1V6H2V4Z" fill-opacity="0.4"/>
+</svg>
diff --git a/resources/iconsets/1_7_0/16/align-to-guides.svg b/resources/iconsets/1_7_0/16/align-to-guides.svg
new file mode 100644
index 0000000000000000000000000000000000000000..342bf97d700b76e3287a63a9932eca09bdaf7833
--- /dev/null
+++ b/resources/iconsets/1_7_0/16/align-to-guides.svg
@@ -0,0 +1,11 @@
+<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><style>@import '../colors.css';</style>
+<g clip-path="url(#clip0_1556_49)">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M3.79289 0H16V16H0V3.79289L3.79289 0ZM4.20711 1L1 4.20711V15H15V1H4.20711Z"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M6 1H5V5H1V6H5V15H6V6H15V5H6V1Z" class="info"/>
+</g>
+<defs>
+<clipPath id="clip0_1556_49">
+<rect width="16" height="16" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/resources/iconsets/1_7_0/16/align-to-last-selected-1.svg b/resources/iconsets/1_7_0/16/align-to-last-selected-1.svg
new file mode 100644
index 0000000000000000000000000000000000000000..7c19e642e440053016f81b509467901b30a977f5
--- /dev/null
+++ b/resources/iconsets/1_7_0/16/align-to-last-selected-1.svg
@@ -0,0 +1,19 @@
+<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><style>@import '../colors.css';</style>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M6 5H3V11H6V5ZM7 5H9V11H7V5ZM10 5H13V11H10V5Z"/>
+<path d="M3 1H1V3H2V2H3V1Z" fill-opacity="0.4"/>
+<path d="M6 1H4V2H6V1Z" fill-opacity="0.4"/>
+<path d="M7 1H9V2H7V1Z" fill-opacity="0.4"/>
+<path d="M12 1H10V2H12V1Z" fill-opacity="0.4"/>
+<path d="M13 1H15V3H14V2H13V1Z" fill-opacity="0.4"/>
+<path d="M15 4H14V6H15V4Z" fill-opacity="0.4"/>
+<path d="M14 7H15V9H14V7Z" fill-opacity="0.4"/>
+<path d="M15 10H14V12H15V10Z" fill-opacity="0.4"/>
+<path d="M14 14V13H15V15H13V14H14Z" fill-opacity="0.4"/>
+<path d="M12 14H10V15H12V14Z" fill-opacity="0.4"/>
+<path d="M7 14H9V15H7V14Z" fill-opacity="0.4"/>
+<path d="M6 14H4V15H6V14Z" fill-opacity="0.4"/>
+<path d="M1 13H2V14H3V15H1V13Z" fill-opacity="0.4"/>
+<path d="M2 10H1V12H2V10Z" fill-opacity="0.4"/>
+<path d="M1 7H2V9H1V7Z" fill-opacity="0.4"/>
+<path d="M2 4H1V6H2V4Z" fill-opacity="0.4"/>
+</svg>
diff --git a/resources/iconsets/1_7_0/16/align-to-last-selected.svg b/resources/iconsets/1_7_0/16/align-to-last-selected.svg
new file mode 100644
index 0000000000000000000000000000000000000000..93b822242d4f839cb67826d042dbe9d45db968e3
--- /dev/null
+++ b/resources/iconsets/1_7_0/16/align-to-last-selected.svg
@@ -0,0 +1,21 @@
+<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><style>@import '../colors.css';</style>
+<rect x="10" y="5" width="3" height="6"/>
+<rect x="7" y="5" width="2" height="6" fill-opacity="0.4"/>
+<rect x="3" y="5" width="3" height="6" fill-opacity="0.4"/>
+<path d="M3 1H1V3H2V2H3V1Z" fill-opacity="0.4"/>
+<path d="M6 1H4V2H6V1Z" fill-opacity="0.4"/>
+<path d="M7 1H9V2H7V1Z" fill-opacity="0.4"/>
+<path d="M12 1H10V2H12V1Z" fill-opacity="0.4"/>
+<path d="M13 1H15V3H14V2H13V1Z" fill-opacity="0.4"/>
+<path d="M15 4H14V6H15V4Z" fill-opacity="0.4"/>
+<path d="M14 7H15V9H14V7Z" fill-opacity="0.4"/>
+<path d="M15 10H14V12H15V10Z" fill-opacity="0.4"/>
+<path d="M14 14V13H15V15H13V14H14Z" fill-opacity="0.4"/>
+<path d="M12 14H10V15H12V14Z" fill-opacity="0.4"/>
+<path d="M7 14H9V15H7V14Z" fill-opacity="0.4"/>
+<path d="M6 14H4V15H6V14Z" fill-opacity="0.4"/>
+<path d="M1 13H2V14H3V15H1V13Z" fill-opacity="0.4"/>
+<path d="M2 10H1V12H2V10Z" fill-opacity="0.4"/>
+<path d="M1 7H2V9H1V7Z" fill-opacity="0.4"/>
+<path d="M2 4H1V6H2V4Z" fill-opacity="0.4"/>
+</svg>
diff --git a/resources/iconsets/1_7_0/16/align-to-margin.svg b/resources/iconsets/1_7_0/16/align-to-margin.svg
new file mode 100644
index 0000000000000000000000000000000000000000..475fc4ba2f6e19aaebaec64f3f4b5c72b62b303b
--- /dev/null
+++ b/resources/iconsets/1_7_0/16/align-to-margin.svg
@@ -0,0 +1,11 @@
+<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><style>@import '../colors.css';</style>
+<g clip-path="url(#clip0_1556_40)">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M14 2H2V14H14V2ZM13 3H3V13H13V3Z" class="info"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M3.79289 0H16V16H0V3.79289L3.79289 0ZM4.20711 1L1 4.20711V15H15V1H4.20711Z"/>
+</g>
+<defs>
+<clipPath id="clip0_1556_40">
+<rect width="16" height="16" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/resources/iconsets/1_7_0/16/align-to-page.svg b/resources/iconsets/1_7_0/16/align-to-page.svg
new file mode 100644
index 0000000000000000000000000000000000000000..383be5f786cb85b777ec72a768c4df642ddc3134
--- /dev/null
+++ b/resources/iconsets/1_7_0/16/align-to-page.svg
@@ -0,0 +1,10 @@
+<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><style>@import '../colors.css';</style>
+<g clip-path="url(#clip0_1556_34)">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M3.79289 0H16V16H0V3.79289L3.79289 0ZM4.20711 1L1 4.20711V15H15V1H4.20711Z"/>
+</g>
+<defs>
+<clipPath id="clip0_1556_34">
+<rect width="16" height="16" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/resources/iconsets/1_7_0/1_7_0.xml b/resources/iconsets/1_7_0/1_7_0.xml
index cf449813aa5c6d4cbd662c59c99db60629df2e80..59accc2f40f7de13f48dcd5a4f8bd43b88e6e4c8 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 7b59202c430b056461f3ec83380b4a15db7c7cb9..4ba985604d5eb17183168a910c0527f968207652 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 7a0ccc374c6db9f3b51a5577189e94088ecb1bd6..c1f270c7dd9949912bab6ec6ee6e4747ea9412c9 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 5d1cd42e0c51ee0ec05a23de5a8e2994621b9957..799eebaeedc04198d48b32b8563f516ffc3713e6 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 0a5bb2620ffe7121c441bdcfee5802ffb3331009..0f59ef964fe110300cb1a2d0aaa6c4b86eba09bf 100644
--- a/scribus/ui/aligndistribute.ui
+++ b/scribus/ui/aligndistribute.ui
@@ -6,135 +6,192 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>247</width>
-    <height>277</height>
+    <width>322</width>
+    <height>426</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">
+     <widget class="QWidget" name="page">
+      <layout class="QVBoxLayout" name="verticalLayout_4">
        <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="_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>
-           </property>
-           <property name="sizeType">
-            <enum>QSizePolicy::Expanding</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>40</width>
-             <height>20</height>
-            </size>
+          <widget class="FormWidget" name="alignReferenceLabel">
+           <property name="label" stdset="0">
+            <string>Reference</string>
            </property>
-          </spacer>
+           <layout class="QHBoxLayout" name="horizontalLayout">
+            <property name="spacing">
+             <number>4</number>
+            </property>
+            <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>
+             <widget class="QToolButton" name="buttonReferenceFirst">
+              <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>
+            <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>
+           </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="label" stdset="0">
+            <string>Mode</string>
+           </property>
+           <layout class="QHBoxLayout" name="horizontalLayout_12">
+            <property name="spacing">
+             <number>4</number>
+            </property>
+            <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>
+             <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>
+          </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>
-             <width>40</width>
+             <width>0</width>
              <height>20</height>
             </size>
            </property>
@@ -143,257 +200,299 @@
         </layout>
        </item>
        <item>
-        <layout class="QHBoxLayout" name="_4">
+        <layout class="QHBoxLayout" name="horizontalLayout_18">
          <property name="spacing">
-          <number>3</number>
+          <number>16</number>
          </property>
          <item>
-          <spacer>
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
+          <widget class="FormWidget" name="alignHorizontalLabel">
+           <property name="label" stdset="0">
+            <string>Horizontal</string>
            </property>
-           <property name="sizeType">
-            <enum>QSizePolicy::Expanding</enum>
+           <layout class="QHBoxLayout" name="horizontalLayout_15">
+            <property name="spacing">
+             <number>4</number>
+            </property>
+            <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>
+             <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>
+          </widget>
+         </item>
+         <item>
+          <spacer name="horizontalSpacer_2">
+           <property name="orientation">
+            <enum>Qt::Orientation::Horizontal</enum>
            </property>
            <property name="sizeHint" stdset="0">
             <size>
-             <width>40</width>
+             <width>0</width>
              <height>20</height>
             </size>
            </property>
           </spacer>
          </item>
+        </layout>
+       </item>
+       <item>
+        <layout class="QHBoxLayout" name="horizontalLayout_5">
          <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="label" stdset="0">
+            <string>Vertical</string>
+           </property>
+           <layout class="QHBoxLayout" name="horizontalLayout_16">
+            <property name="spacing">
+             <number>4</number>
+            </property>
+            <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>
+             <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>
+          </widget>
          </item>
          <item>
-          <spacer>
+          <spacer name="horizontalSpacer_4">
            <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 +504,157 @@
          </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">
+        <layout class="QHBoxLayout" name="horizontalLayout_24">
          <property name="spacing">
-          <number>3</number>
+          <number>16</number>
          </property>
          <item>
-          <spacer>
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeType">
-            <enum>QSizePolicy::Expanding</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>63</width>
-             <height>20</height>
-            </size>
+          <widget class="FormWidget" name="distributeHorizontalLabel">
+           <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="spacing">
+             <number>4</number>
+            </property>
+            <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>
+             <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>
+          </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>0</width>
              <height>20</height>
             </size>
            </property>
@@ -807,63 +663,123 @@
         </layout>
        </item>
        <item>
-        <layout class="QHBoxLayout" name="_8">
-         <item>
-          <spacer>
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </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>
+        <layout class="QHBoxLayout" name="horizontalLayout_4">
          <item>
-          <layout class="QHBoxLayout" name="_9">
-           <property name="spacing">
-            <number>3</number>
+          <widget class="FormWidget" name="distributeVerticalLabel">
+           <property name="label" stdset="0">
+            <string>Vertical</string>
            </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="spacing">
+             <number>4</number>
+            </property>
+            <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>
+             <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>
+          </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>
@@ -876,44 +792,210 @@
         </layout>
        </item>
        <item>
-        <layout class="QHBoxLayout" name="horizontalLayout_2">
+        <layout class="QHBoxLayout" name="horizontalLayout_26">
          <property name="spacing">
-          <number>3</number>
+          <number>16</number>
          </property>
          <item>
-          <spacer name="spacer">
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeType">
-            <enum>QSizePolicy::Expanding</enum>
+          <widget class="FormWidget" name="distributeByGapLabel">
+           <property name="label" stdset="0">
+            <string>By gap</string>
            </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>40</width>
-             <height>20</height>
-            </size>
-           </property>
-          </spacer>
+           <layout class="QHBoxLayout" name="horizontalLayout_23">
+            <property name="spacing">
+             <number>4</number>
+            </property>
+            <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>
+             <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="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="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="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>
+          </widget>
          </item>
          <item>
-          <widget class="QCheckBox" name="reverseDistributionCheckBox">
-           <property name="text">
-            <string>Reverse Distribution</string>
+          <widget class="FormWidget" name="swapLabel">
+           <property name="label" stdset="0">
+            <string>Swap</string>
            </property>
+           <layout class="QHBoxLayout" name="horizontalLayout_17">
+            <property name="spacing">
+             <number>4</number>
+            </property>
+            <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>
+             <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>
           </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>
-             <width>40</width>
+             <width>0</width>
              <height>20</height>
             </size>
            </property>
@@ -922,113 +1004,99 @@
         </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">
+        <layout class="QHBoxLayout" name="horizontalLayout_3">
          <property name="spacing">
-          <number>3</number>
+          <number>16</number>
          </property>
          <item>
-          <spacer name="horizontalSpacer">
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>40</width>
-             <height>20</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
-         <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>
+          <widget class="FormWidget" name="distributeByDistanceLabel">
+           <property name="label" stdset="0">
+            <string>By distance</string>
            </property>
+           <layout class="QHBoxLayout" name="horizontalLayout_20">
+            <property name="spacing">
+             <number>4</number>
+            </property>
+            <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>
+             <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"/>
+            </item>
+            <item>
+             <widget class="QToolButton" name="reverseDistributionButton">
+              <property name="text">
+               <string/>
+              </property>
+              <property name="checkable">
+               <bool>true</bool>
+              </property>
+             </widget>
+            </item>
+           </layout>
           </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>
-         <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>
-             <width>40</width>
+             <width>0</width>
              <height>20</height>
             </size>
            </property>
@@ -1036,66 +1104,50 @@
          </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>0</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>alignLeftInToolButton</tabstop>
-  <tabstop>alignCenterHorToolButton</tabstop>
-  <tabstop>alignRightInToolButton</tabstop>
-  <tabstop>alignRightOutToolButton</tabstop>
-  <tabstop>alignTopOutToolButton</tabstop>
-  <tabstop>alignTopInToolButton</tabstop>
-  <tabstop>alignCenterVerToolButton</tabstop>
-  <tabstop>alignBottomInToolButton</tabstop>
-  <tabstop>alignBottomOutToolButton</tabstop>
-  <tabstop>distributeLeftToolButton</tabstop>
-  <tabstop>distributeCenterHToolButton</tabstop>
-  <tabstop>distributeRightToolButton</tabstop>
-  <tabstop>distributeDistHToolButton</tabstop>
-  <tabstop>distributeBottomToolButton</tabstop>
-  <tabstop>distributeCenterVToolButton</tabstop>
-  <tabstop>distributeTopToolButton</tabstop>
-  <tabstop>distributeDistVToolButton</tabstop>
-  <tabstop>distributeAcrossPageToolButton</tabstop>
-  <tabstop>distributeDownPageToolButton</tabstop>
-  <tabstop>distributeAcrossMarginsToolButton</tabstop>
-  <tabstop>distributeDownMarginsToolButton</tabstop>
-  <tabstop>distributeDistValueHToolButton</tabstop>
-  <tabstop>distributeDistValueVToolButton</tabstop>
-  <tabstop>distributeDistSpinBox</tabstop>
-  <tabstop>reverseDistributionCheckBox</tabstop>
-  <tabstop>swapLeftToolButton</tabstop>
-  <tabstop>swapRightToolButton</tabstop>
-  <tabstop>tabWidget</tabstop>
- </tabstops>
  <includes>
   <include location="local">ui/scrspinbox.h</include>
  </includes>
diff --git a/scribus/ui/widgets/pulsing_toolbutton.cpp b/scribus/ui/widgets/pulsing_toolbutton.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..405860c91936c661014b8387f7fa4fada8bf29f3
--- /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 0000000000000000000000000000000000000000..5cec70e431501c28df4281665a35b2d1bfec4b75
--- /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
