View Issue Details

IDProjectCategoryView StatusLast Update
0017961ScribusUser Interfacepublic2026-09-07 11:51
Reporterqirat Assigned To 
PrioritynormalSeverityminorReproducibilityN/A
Status newResolutionopen 
PlatformLinuxOSFedora WorkstationOS Version44
Product Version1.7.4.svn 
Summary0017961: [patch] Guide Manager UI polish
Description- Reorganizes Guide Manager into two clearer work-flows: Manual Guides and Rows & Columns; removes the former Misc tab.
- Moves document-wide actions into a persistent footer: Lock Guides, Clear Page Guides, and Clear All Guides.
- Renames manual sections to Horizontal Guides / Vertical Guides and replaces wide Add/Delete buttons with compact existing Scribus icon buttons beside each guide list.
- Makes manual guide rows use the full list width and displays the current unit suffix directly with each guide value; `unitChange()` no longer adds units to the group-box titles.
- Refines Rows & Columns into matching horizontal/vertical panels with:
  - icon-based Relative to selectors for Page, Margins, and Selection;
  - compact Number controls;
  - optional Gap controls with row/column-specific tooltips.
- Reuses existing Scribus icons via `IconManager`; no new artwork is added.
- Clarifies page-wide actions as Copy Guides to All Pages for manual guides and Apply Settings to All Pages for generated guides.
- Reduces dialogue width and visual chrome while preserving the existing guide models, tab semantics, generation logic, copy/delete behaviour, and document state handling.
- Removes per-control Alt shortcuts/mnemonics where normal Tab navigation is sufficient, keeping navigation mnemonics at the higher-level tab/group scope.
- C++ changes are limited to icon setup, persistent-footer enable state, and unit display handling; guide-generation and storage logic remain unchanged.
Additional Information+Screenshots showing proposed UI
Tags#please_test
Attached Files
guidemanager-ui-v1.93.patch (37,352 bytes)   
Index: scribus/ui/guidemanager.ui
===================================================================
--- scribus/ui/guidemanager.ui	(revision 27810)
+++ scribus/ui/guidemanager.ui	(working copy)
@@ -8,7 +8,7 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>428</width>
+    <width>340</width>
     <height>368</height>
    </rect>
   </property>
@@ -35,7 +35,7 @@
      </property>
      <widget class="QWidget" name="standardPage">
       <attribute name="title">
-       <string>&amp;Single</string>
+       <string>&amp;Manual Guides</string>
       </attribute>
       <layout class="QGridLayout">
        <property name="leftMargin">
@@ -55,10 +55,13 @@
          <item>
           <widget class="QGroupBox" name="horizontalGroupBox">
            <property name="title">
-            <string>Horizontals</string>
+            <string>&amp;Horizontal Guides</string>
            </property>
            <layout class="QGridLayout">
-            <item row="0" column="0" colspan="2">
+            <property name="horizontalSpacing">
+             <number>5</number>
+            </property>
+            <item row="0" column="0">
              <widget class="GuidesView" name="horizontalView">
               <property name="alternatingRowColors">
                <bool>true</bool>
@@ -66,33 +69,37 @@
               <property name="selectionBehavior">
                <enum>QAbstractItemView::SelectRows</enum>
               </property>
+              <attribute name="horizontalHeaderStretchLastSection">
+               <bool>true</bool>
+              </attribute>
              </widget>
             </item>
-            <item row="1" column="0">
-             <widget class="QPushButton" name="addHorButton">
-              <property name="toolTip">
-               <string>Add a new horizontal guide</string>
-              </property>
-              <property name="text">
-               <string>&amp;Add</string>
-              </property>
-              <property name="shortcut">
-               <string>Alt+A</string>
-              </property>
-             </widget>
-            </item>
-            <item row="1" column="1">
-             <widget class="QPushButton" name="delHorButton">
-              <property name="toolTip">
-               <string>Delete the selected horizontal guide</string>
-              </property>
-              <property name="text">
-               <string>D&amp;elete</string>
-              </property>
-              <property name="shortcut">
-               <string>Alt+E</string>
-              </property>
-             </widget>
+            <item row="0" column="1" alignment="Qt::AlignTop">
+             <layout class="QVBoxLayout" name="horizontalGuideActionsLayout">
+              <property name="spacing">
+               <number>5</number>
+              </property>
+              <item>
+               <widget class="QToolButton" name="addHorButton">
+                <property name="toolTip">
+                 <string>Add a new horizontal guide</string>
+                </property>
+                <property name="text">
+                 <string/>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="delHorButton">
+                <property name="toolTip">
+                 <string>Delete the selected horizontal guide</string>
+                </property>
+                <property name="text">
+                 <string/>
+                </property>
+               </widget>
+              </item>
+             </layout>
             </item>
            </layout>
           </widget>
@@ -100,10 +107,13 @@
          <item>
           <widget class="QGroupBox" name="verticalGroupBox">
            <property name="title">
-            <string>Verticals</string>
+            <string>&amp;Vertical Guides</string>
            </property>
            <layout class="QGridLayout">
-            <item row="0" column="0" colspan="2">
+            <property name="horizontalSpacing">
+             <number>5</number>
+            </property>
+            <item row="0" column="0">
              <widget class="GuidesView" name="verticalView">
               <property name="alternatingRowColors">
                <bool>true</bool>
@@ -111,70 +121,81 @@
               <property name="selectionBehavior">
                <enum>QAbstractItemView::SelectRows</enum>
               </property>
+              <attribute name="horizontalHeaderStretchLastSection">
+               <bool>true</bool>
+              </attribute>
              </widget>
             </item>
-            <item row="1" column="0">
-             <widget class="QPushButton" name="addVerButton">
-              <property name="toolTip">
-               <string>Add a new vertical guide</string>
-              </property>
-              <property name="text">
-               <string>A&amp;dd</string>
-              </property>
-              <property name="shortcut">
-               <string>Alt+D</string>
-              </property>
-             </widget>
-            </item>
-            <item row="1" column="1">
-             <widget class="QPushButton" name="delVerButton">
-              <property name="toolTip">
-               <string>Delete the selected vertical guide</string>
-              </property>
-              <property name="text">
-               <string>De&amp;lete</string>
-              </property>
-              <property name="shortcut">
-               <string>Alt+L</string>
-              </property>
-             </widget>
+            <item row="0" column="1" alignment="Qt::AlignTop">
+             <layout class="QVBoxLayout" name="verticalGuideActionsLayout">
+              <property name="spacing">
+               <number>5</number>
+              </property>
+              <item>
+               <widget class="QToolButton" name="addVerButton">
+                <property name="toolTip">
+                 <string>Add a new vertical guide</string>
+                </property>
+                <property name="text">
+                 <string/>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="delVerButton">
+                <property name="toolTip">
+                 <string>Delete the selected vertical guide</string>
+                </property>
+                <property name="text">
+                 <string/>
+                </property>
+               </widget>
+              </item>
+             </layout>
             </item>
            </layout>
           </widget>
          </item>
         </layout>
        </item>
-       <item row="1" column="0">
-        <widget class="QCheckBox" name="lockCheck">
-         <property name="toolTip">
-          <string>Lock the guides</string>
-         </property>
-         <property name="text">
-          <string>&amp;Lock Guides</string>
-         </property>
-         <property name="shortcut">
-          <string>Alt+L</string>
-         </property>
-        </widget>
-       </item>
-       <item row="1" column="1">
-        <widget class="QPushButton" name="applyToAllStdButton">
-         <property name="toolTip">
-          <string>Apply to all pages</string>
+       <item row="1" column="0" colspan="2">
+        <layout class="QHBoxLayout" name="applyStdLayout">
+         <property name="topMargin">
+          <number>8</number>
          </property>
-         <property name="text">
-          <string>Appl&amp;y to All Pages</string>
-         </property>
-         <property name="shortcut">
-          <string>Alt+Y</string>
-         </property>
-        </widget>
+         <item>
+          <spacer name="horizontalSpacerCopyLeft">
+           <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>
+         <item>
+          <widget class="QPushButton" name="applyToAllStdButton">
+           <property name="toolTip">
+            <string>Replace the manual guides on all other pages with the manual guides from the current page</string>
+           </property>
+           <property name="text">
+            <string>Copy Guides to All Pages</string>
+           </property>
+          </widget>
+         </item>
+        </layout>
        </item>
       </layout>
      </widget>
      <widget class="QWidget" name="autoPage">
       <attribute name="title">
-       <string>&amp;Column/Row</string>
+       <string>&amp;Rows &amp;&amp; Columns</string>
       </attribute>
       <layout class="QGridLayout">
        <property name="leftMargin">
@@ -189,299 +210,384 @@
        <property name="bottomMargin">
         <number>9</number>
        </property>
-       <item row="2" column="0" colspan="2">
-        <widget class="QPushButton" name="applyToAllAutoButton">
-         <property name="toolTip">
-          <string>Apply the shown guides to all pages in the document</string>
-         </property>
-         <property name="text">
-          <string>Appl&amp;y to All Pages</string>
-         </property>
-         <property name="shortcut">
-          <string>Alt+Y</string>
-         </property>
-        </widget>
-       </item>
        <item row="0" column="0">
         <widget class="QGroupBox" name="horizontalAutoGroup">
          <property name="title">
-          <string>Horizontals</string>
+          <string>&amp;Horizontal Guides</string>
          </property>
          <layout class="QGridLayout">
+          <property name="horizontalSpacing">
+           <number>20</number>
+          </property>
+          <property name="verticalSpacing">
+           <number>8</number>
+          </property>
           <item row="0" column="0">
-           <widget class="QLabel" name="textLabel1">
-            <property name="text">
-             <string>&amp;Number:</string>
-            </property>
-            <property name="wordWrap">
-             <bool>false</bool>
-            </property>
-            <property name="buddy">
-             <cstring>horizontalAutoCountSpin</cstring>
-            </property>
-           </widget>
-          </item>
-          <item row="0" column="1">
-           <widget class="ScrSpinBox" name="horizontalAutoCountSpin">
-            <property name="toolTip">
-             <string>Number of horizontal guides to create</string>
-            </property>
-            <property name="suffix">
-             <string/>
-            </property>
-            <property name="minimum">
-             <number>0</number>
-            </property>
-            <property name="value">
-             <number>0</number>
-            </property>
-           </widget>
-          </item>
-          <item row="1" column="0" colspan="2">
-           <widget class="QCheckBox" name="horizontalAutoGapCheck">
-            <property name="toolTip">
-             <string>Create rows with guides, with an additional gap between the rows</string>
-            </property>
-            <property name="text">
-             <string>U&amp;se Gap:</string>
-            </property>
-            <property name="shortcut">
-             <string>Alt+S</string>
-            </property>
-           </widget>
-          </item>
-          <item row="2" column="0" colspan="2">
-           <widget class="ScrSpinBox" name="horizontalAutoGapSpin"/>
-          </item>
-          <item row="3" column="0" colspan="2">
-           <widget class="QGroupBox" name="groupBox">
-            <property name="title">
-             <string>Refer to</string>
-            </property>
-            <layout class="QGridLayout">
-             <item row="0" column="0">
-              <widget class="QRadioButton" name="horizontalPageAutoButton">
+           <widget class="FormWidget" name="horizontalRelativeForm">
+            <property name="label" stdset="0">
+             <string>Relative to</string>
+            </property>
+            <layout class="QHBoxLayout" name="horizontalRelativeButtonsLayout">
+             <property name="spacing">
+              <number>5</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="horizontalPageAutoButton">
                <property name="toolTip">
-                <string>Create the selected number of horizontal guides relative to the current page</string>
+                <string>Relative to page</string>
                </property>
                <property name="text">
-                <string>&amp;Page</string>
+                <string/>
                </property>
-               <property name="shortcut">
-                <string>Alt+P</string>
+               <property name="checkable">
+                <bool>true</bool>
                </property>
                <property name="checked">
                 <bool>true</bool>
                </property>
+               <property name="autoExclusive">
+                <bool>true</bool>
+               </property>
               </widget>
              </item>
-             <item row="1" column="0">
-              <widget class="QRadioButton" name="horizontalMarginsAutoButton">
+             <item>
+              <widget class="QToolButton" name="horizontalMarginsAutoButton">
                <property name="toolTip">
-                <string>Create the selected number of horizontal guides relative to the current page's margins</string>
+                <string>Relative to margins</string>
                </property>
                <property name="text">
-                <string>M&amp;argins</string>
+                <string/>
                </property>
-               <property name="shortcut">
-                <string>Alt+A</string>
+               <property name="checkable">
+                <bool>true</bool>
+               </property>
+               <property name="autoExclusive">
+                <bool>true</bool>
                </property>
               </widget>
              </item>
-             <item row="2" column="0">
-              <widget class="QRadioButton" name="horizontalSelectionAutoButton">
+             <item>
+              <widget class="QToolButton" name="horizontalSelectionAutoButton">
                <property name="toolTip">
-                <string>Create the selected number of horizontal guides relative to the current selection of items</string>
+                <string>Relative to selection</string>
                </property>
                <property name="text">
-                <string>S&amp;election</string>
+                <string/>
+               </property>
+               <property name="checkable">
+                <bool>true</bool>
                </property>
-               <property name="shortcut">
-                <string>Alt+E</string>
+               <property name="autoExclusive">
+                <bool>true</bool>
                </property>
               </widget>
              </item>
             </layout>
            </widget>
           </item>
-         </layout>
-        </widget>
-       </item>
-       <item row="0" column="1">
-        <widget class="QGroupBox" name="verticalAutoGroup">
-         <property name="title">
-          <string>Verticals</string>
-         </property>
-         <layout class="QGridLayout">
-          <item row="0" column="0">
-           <widget class="QLabel" name="textLabel1_2">
-            <property name="text">
-             <string>Nu&amp;mber:</string>
-            </property>
-            <property name="wordWrap">
-             <bool>false</bool>
-            </property>
-            <property name="buddy">
-             <cstring>verticalAutoCountSpin</cstring>
-            </property>
+          <item row="0" column="1">
+           <widget class="FormWidget" name="horizontalNumberForm">
+            <property name="label" stdset="0">
+             <string>Number</string>
+            </property>
+            <layout class="QHBoxLayout" name="horizontalNumberLayout">
+             <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="ScrSpinBox" name="horizontalAutoCountSpin">
+               <property name="minimumSize">
+                <size>
+                 <width>100</width>
+                 <height>0</height>
+                </size>
+               </property>
+               <property name="maximumSize">
+                <size>
+                 <width>100</width>
+                 <height>16777215</height>
+                </size>
+               </property>
+               <property name="toolTip">
+                <string>Number of horizontal guides to create</string>
+               </property>
+               <property name="suffix">
+                <string/>
+               </property>
+               <property name="minimum">
+                <number>0</number>
+               </property>
+               <property name="value">
+                <number>0</number>
+               </property>
+              </widget>
+             </item>
+            </layout>
            </widget>
           </item>
-          <item row="0" column="1">
-           <widget class="ScrSpinBox" name="verticalAutoCountSpin">
+          <item row="1" column="0">
+           <widget class="QCheckBox" name="horizontalAutoGapCheck">
             <property name="toolTip">
-             <string>Number of vertical guides to create</string>
-            </property>
-            <property name="suffix">
-             <string/>
-            </property>
-            <property name="minimum">
-             <number>0</number>
+             <string>Set the gap between adjacent generated rows</string>
             </property>
-            <property name="value">
-             <number>0</number>
+            <property name="text">
+             <string>Gap:</string>
             </property>
            </widget>
           </item>
-          <item row="1" column="0" colspan="2">
-           <widget class="QCheckBox" name="verticalAutoGapCheck">
-            <property name="toolTip">
-             <string>Create columns with guides, with an additional gap between the columns</string>
+          <item row="1" column="1">
+           <widget class="ScrSpinBox" name="horizontalAutoGapSpin">
+            <property name="minimumSize">
+             <size>
+              <width>100</width>
+              <height>0</height>
+             </size>
+            </property>
+            <property name="maximumSize">
+             <size>
+              <width>100</width>
+              <height>16777215</height>
+             </size>
             </property>
-            <property name="text">
-             <string>Use &amp;Gap:</string>
-            </property>
-            <property name="shortcut">
-             <string>Alt+G</string>
+            <property name="toolTip">
+             <string>Set the gap between adjacent generated rows</string>
             </property>
            </widget>
           </item>
-          <item row="2" column="0" colspan="2">
-           <widget class="ScrSpinBox" name="verticalAutoGapSpin"/>
-          </item>
-          <item row="3" column="0" colspan="2">
-           <widget class="QGroupBox" name="groupBox_2">
-            <property name="title">
-             <string>Refer to</string>
-            </property>
-            <layout class="QGridLayout">
-             <item row="0" column="0">
-              <widget class="QRadioButton" name="verticalPageAutoButton">
+         </layout>
+        </widget>
+       </item>
+       <item row="0" column="1">
+        <widget class="QGroupBox" name="verticalAutoGroup">
+         <property name="title">
+          <string>&amp;Vertical Guides</string>
+         </property>
+         <layout class="QGridLayout">
+          <property name="horizontalSpacing">
+           <number>20</number>
+          </property>
+          <property name="verticalSpacing">
+           <number>8</number>
+          </property>
+          <item row="0" column="0">
+           <widget class="FormWidget" name="verticalRelativeForm">
+            <property name="label" stdset="0">
+             <string>Relative to</string>
+            </property>
+            <layout class="QHBoxLayout" name="verticalRelativeButtonsLayout">
+             <property name="spacing">
+              <number>5</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="verticalPageAutoButton">
                <property name="toolTip">
-                <string>Create the selected number of vertical guides relative to the current page</string>
+                <string>Relative to page</string>
                </property>
                <property name="text">
-                <string>&amp;Page</string>
+                <string/>
                </property>
-               <property name="shortcut">
-                <string>Alt+P</string>
+               <property name="checkable">
+                <bool>true</bool>
                </property>
                <property name="checked">
                 <bool>true</bool>
                </property>
+               <property name="autoExclusive">
+                <bool>true</bool>
+               </property>
               </widget>
              </item>
-             <item row="1" column="0">
-              <widget class="QRadioButton" name="verticalMarginsAutoButton">
+             <item>
+              <widget class="QToolButton" name="verticalMarginsAutoButton">
                <property name="toolTip">
-                <string>Create the selected number of vertical guides relative to the current page's margins</string>
+                <string>Relative to margins</string>
                </property>
                <property name="text">
-                <string>M&amp;argins</string>
+                <string/>
                </property>
-               <property name="shortcut">
-                <string>Alt+A</string>
+               <property name="checkable">
+                <bool>true</bool>
+               </property>
+               <property name="autoExclusive">
+                <bool>true</bool>
                </property>
               </widget>
              </item>
-             <item row="2" column="0">
-              <widget class="QRadioButton" name="verticalSelectionAutoButton">
+             <item>
+              <widget class="QToolButton" name="verticalSelectionAutoButton">
                <property name="toolTip">
-                <string>Create the selected number of vertical guides relative to the current selection of items</string>
+                <string>Relative to selection</string>
                </property>
                <property name="text">
-                <string>S&amp;election</string>
+                <string/>
+               </property>
+               <property name="checkable">
+                <bool>true</bool>
                </property>
-               <property name="shortcut">
-                <string>Alt+E</string>
+               <property name="autoExclusive">
+                <bool>true</bool>
                </property>
               </widget>
              </item>
             </layout>
            </widget>
           </item>
+          <item row="0" column="1">
+           <widget class="FormWidget" name="verticalNumberForm">
+            <property name="label" stdset="0">
+             <string>Number</string>
+            </property>
+            <layout class="QHBoxLayout" name="verticalNumberLayout">
+             <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="ScrSpinBox" name="verticalAutoCountSpin">
+               <property name="minimumSize">
+                <size>
+                 <width>100</width>
+                 <height>0</height>
+                </size>
+               </property>
+               <property name="maximumSize">
+                <size>
+                 <width>100</width>
+                 <height>16777215</height>
+                </size>
+               </property>
+               <property name="toolTip">
+                <string>Number of vertical guides to create</string>
+               </property>
+               <property name="suffix">
+                <string/>
+               </property>
+               <property name="minimum">
+                <number>0</number>
+               </property>
+               <property name="value">
+                <number>0</number>
+               </property>
+              </widget>
+             </item>
+            </layout>
+           </widget>
+          </item>
+          <item row="1" column="0">
+           <widget class="QCheckBox" name="verticalAutoGapCheck">
+            <property name="toolTip">
+             <string>Set the gap between adjacent generated columns</string>
+            </property>
+            <property name="text">
+             <string>Gap:</string>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="1">
+           <widget class="ScrSpinBox" name="verticalAutoGapSpin">
+            <property name="minimumSize">
+             <size>
+              <width>100</width>
+              <height>0</height>
+             </size>
+            </property>
+            <property name="maximumSize">
+             <size>
+              <width>100</width>
+              <height>16777215</height>
+             </size>
+            </property>
+            <property name="toolTip">
+             <string>Set the gap between adjacent generated columns</string>
+            </property>
+           </widget>
+          </item>
          </layout>
         </widget>
        </item>
-       <item row="1" column="0">
-        <spacer name="verticalSpacer">
-         <property name="orientation">
-          <enum>Qt::Vertical</enum>
+       <item row="1" column="0" colspan="2">
+        <layout class="QHBoxLayout" name="applyAutoLayout">
+         <property name="topMargin">
+          <number>8</number>
          </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>20</width>
-           <height>0</height>
-          </size>
-         </property>
-        </spacer>
-       </item>
-      </layout>
-     </widget>
-     <widget class="QWidget" name="miscPage">
-      <attribute name="title">
-       <string>&amp;Misc</string>
-      </attribute>
-      <layout class="QGridLayout">
-       <property name="leftMargin">
-        <number>9</number>
-       </property>
-       <property name="topMargin">
-        <number>9</number>
-       </property>
-       <property name="rightMargin">
-        <number>9</number>
-       </property>
-       <property name="bottomMargin">
-        <number>9</number>
-       </property>
-       <item row="0" column="0">
-        <widget class="QPushButton" name="deletePageButton">
-         <property name="toolTip">
-          <string>Delete all guides from the current page</string>
-         </property>
-         <property name="text">
-          <string>Delete Guides from Current &amp;Page</string>
-         </property>
-         <property name="shortcut">
-          <string>Alt+P</string>
-         </property>
-        </widget>
-       </item>
-       <item row="1" column="0">
-        <widget class="QPushButton" name="deleteAllGuides">
-         <property name="toolTip">
-          <string>Delete all guides from the current document</string>
-         </property>
-         <property name="text">
-          <string>Delete Guides from &amp;All Pages</string>
-         </property>
-         <property name="shortcut">
-          <string>Alt+A</string>
-         </property>
-        </widget>
+         <item>
+          <spacer name="horizontalSpacerApplyLeft">
+           <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>
+         <item>
+          <widget class="QPushButton" name="applyToAllAutoButton">
+           <property name="toolTip">
+            <string>Apply the current row and column guide settings to all pages in the document</string>
+           </property>
+           <property name="text">
+            <string>Apply Settings to All Pages</string>
+           </property>
+          </widget>
+         </item>
+        </layout>
        </item>
-       <item row="2" column="0">
-        <spacer>
+       <item row="2" column="0" colspan="2">
+        <spacer name="verticalSpacer">
          <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>40</height>
+           <height>0</height>
           </size>
          </property>
         </spacer>
@@ -490,10 +596,80 @@
      </widget>
     </widget>
    </item>
+   <item row="1" column="0">
+    <widget class="QWidget" name="globalGuideControls">
+     <layout class="QHBoxLayout">
+      <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="QCheckBox" name="lockCheck">
+        <property name="toolTip">
+         <string>Lock the guides</string>
+        </property>
+        <property name="text">
+         <string>Lock Guides</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <spacer name="horizontalSpacerGlobal">
+        <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>
+      <item>
+       <widget class="QPushButton" name="deletePageButton">
+        <property name="toolTip">
+         <string>Delete all guides from the current page</string>
+        </property>
+        <property name="text">
+         <string>Clear Page Guides</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QPushButton" name="deleteAllGuides">
+        <property name="toolTip">
+         <string>Delete all guides from the current document</string>
+        </property>
+        <property name="text">
+         <string>Clear All Guides</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
   </layout>
  </widget>
  <customwidgets>
   <customwidget>
+   <class>FormWidget</class>
+   <extends>QWidget</extends>
+   <header>ui/widgets/form_widget.h</header>
+   <container>1</container>
+  </customwidget>
+  <customwidget>
    <class>ScrSpinBox</class>
    <extends>QDoubleSpinBox</extends>
    <header location="global">ui/scrspinbox.h</header>
Index: scribus/ui/guidemanager.cpp
===================================================================
--- scribus/ui/guidemanager.cpp	(revision 27810)
+++ scribus/ui/guidemanager.cpp	(working copy)
@@ -27,6 +27,7 @@
 #include "guidemanager.h"
 #include "guidesdelegate.h"
 #include "guidesmodel.h"
+#include "iconmanager.h"
 #include "scpage.h"
 #include "scribuscore.h"
 #include "scribusdoc.h"
@@ -41,6 +42,7 @@
 {
 	setupUi(this);
 	tabWidget->setEnabled(false);
+	globalGuideControls->setEnabled(false);
 	horizontalAutoGapSpin->setMinimum(0.0);
 	horizontalAutoGapSpin->setMaximum(10000.0);
 	verticalAutoGapSpin->setMinimum(0.0);
@@ -48,6 +50,18 @@
 	horizontalAutoCountSpin->setDecimals(0);
 	verticalAutoCountSpin->setDecimals(0);
 
+	IconManager& im = IconManager::instance();
+	addHorButton->setIcon(im.loadIcon("list-add"));
+	delHorButton->setIcon(im.loadIcon("edit-delete"));
+	addVerButton->setIcon(im.loadIcon("list-add"));
+	delVerButton->setIcon(im.loadIcon("edit-delete"));
+	horizontalPageAutoButton->setIcon(im.loadIcon("align-to-page"));
+	horizontalMarginsAutoButton->setIcon(im.loadIcon("align-to-margin"));
+	horizontalSelectionAutoButton->setIcon(im.loadIcon("align-to-last-selection"));
+	verticalPageAutoButton->setIcon(im.loadIcon("align-to-page"));
+	verticalMarginsAutoButton->setIcon(im.loadIcon("align-to-margin"));
+	verticalSelectionAutoButton->setIcon(im.loadIcon("align-to-last-selection"));
+
 	// MVC
 	horizontalModel = new GuidesModel(this);
 	verticalModel = new GuidesModel(this);
@@ -122,6 +136,7 @@
 	if (!m_doc)
 		currentPage = nullptr;
 	tabWidget->setEnabled(doc != nullptr);
+	globalGuideControls->setEnabled(doc != nullptr);
 }
 
 void GuideManager::setVisible(bool visible)
@@ -243,20 +258,14 @@
 	if (!m_doc)
 		return;
 
-	// a little bit magic to get Verticals (unit) into group boxes
-	horizontalGroupBox->setTitle(horizontalGroupBox->title().remove(" ("+suffix.trimmed()+")"));
-	verticalGroupBox->setTitle(verticalGroupBox->title().remove(" ("+suffix.trimmed()+")"));
 	docUnitIndex = m_doc->unitIndex();
 	int docUnitDecimals = unitGetPrecisionFromIndex(docUnitIndex);
 
 	QSignalBlocker horizontalAutoGapSpinBlock(horizontalAutoGapSpin);
 	QSignalBlocker verticalAutoGapSpinBlock(verticalAutoGapSpin);
-	suffix = unitGetSuffixFromIndex(docUnitIndex);
 	horizontalAutoGapSpin->setNewUnit(docUnitIndex);
 	verticalAutoGapSpin->setNewUnit(docUnitIndex);
 
-	horizontalGroupBox->setTitle(horizontalGroupBox->title() + " ("+suffix.trimmed()+")");
-	verticalGroupBox->setTitle(verticalGroupBox->title() + " ("+suffix.trimmed()+")");
 	// models display
 	horizontalModel->unitChange(docUnitIndex, docUnitDecimals, m_doc->rulerYoffset);
 	verticalModel->unitChange(docUnitIndex, docUnitDecimals, m_doc->rulerXoffset);
Index: scribus/ui/guidemanager.h
===================================================================
--- scribus/ui/guidemanager.h	(revision 27810)
+++ scribus/ui/guidemanager.h	(working copy)
@@ -92,9 +92,6 @@
 	//! \brief Document measurements and metrics
 	int docUnitIndex { 0 };
 
-	//! \brief suffix of the unit [mm, ...]
-	QString suffix;
-
 	/*! \brief Copy guides from currentPage to all remaining.
 	All gudes are deleted before copying.
 	\param t a type to clear and copy.*/
Index: scribus/guidesmodel.cpp
===================================================================
--- scribus/guidesmodel.cpp	(revision 27810)
+++ scribus/guidesmodel.cpp	(working copy)
@@ -43,7 +43,7 @@
 		return QVariant(l.toString(pts2value(m_values.at(index.row()) - m_rule,
 											  m_docUnitIndex), 'f',
 											  m_docUnitDecimals)
-						);
+						+ unitGetSuffixFromIndex(m_docUnitIndex));
 	}
 	if (role == Qt::EditRole)
 		return pts2value(m_values.at(index.row()) - m_rule, m_docUnitIndex);
guidemanager-ui-v1.93.patch (37,352 bytes)   
guides-manager-tab1-PROPOSED.png (107,958 bytes)   
guides-manager-tab1-PROPOSED.png (107,958 bytes)   
PatchYes

Activities

utnik

2026-09-01 11:20

updater   ~0054393

there is no need for the ‚lock guides‘ checkbox in ‚rows & columns‘ mode. (could be grayed out or removed)

qirat

2026-09-01 12:23

reporter   ~0054394

Thanks, @utnik. Removed.
guidemanager-ui-v1.94.patch (38,055 bytes)   
Index: scribus/ui/guidemanager.ui
===================================================================
--- scribus/ui/guidemanager.ui	(revision 27810)
+++ scribus/ui/guidemanager.ui	(working copy)
@@ -8,7 +8,7 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>428</width>
+    <width>340</width>
     <height>368</height>
    </rect>
   </property>
@@ -35,7 +35,7 @@
      </property>
      <widget class="QWidget" name="standardPage">
       <attribute name="title">
-       <string>&amp;Single</string>
+       <string>&amp;Manual Guides</string>
       </attribute>
       <layout class="QGridLayout">
        <property name="leftMargin">
@@ -55,10 +55,13 @@
          <item>
           <widget class="QGroupBox" name="horizontalGroupBox">
            <property name="title">
-            <string>Horizontals</string>
+            <string>&amp;Horizontal Guides</string>
            </property>
            <layout class="QGridLayout">
-            <item row="0" column="0" colspan="2">
+            <property name="horizontalSpacing">
+             <number>5</number>
+            </property>
+            <item row="0" column="0">
              <widget class="GuidesView" name="horizontalView">
               <property name="alternatingRowColors">
                <bool>true</bool>
@@ -66,33 +69,37 @@
               <property name="selectionBehavior">
                <enum>QAbstractItemView::SelectRows</enum>
               </property>
+              <attribute name="horizontalHeaderStretchLastSection">
+               <bool>true</bool>
+              </attribute>
              </widget>
             </item>
-            <item row="1" column="0">
-             <widget class="QPushButton" name="addHorButton">
-              <property name="toolTip">
-               <string>Add a new horizontal guide</string>
+            <item row="0" column="1" alignment="Qt::AlignTop">
+             <layout class="QVBoxLayout" name="horizontalGuideActionsLayout">
+              <property name="spacing">
+               <number>5</number>
               </property>
-              <property name="text">
-               <string>&amp;Add</string>
-              </property>
-              <property name="shortcut">
-               <string>Alt+A</string>
-              </property>
-             </widget>
-            </item>
-            <item row="1" column="1">
-             <widget class="QPushButton" name="delHorButton">
-              <property name="toolTip">
-               <string>Delete the selected horizontal guide</string>
-              </property>
-              <property name="text">
-               <string>D&amp;elete</string>
-              </property>
-              <property name="shortcut">
-               <string>Alt+E</string>
-              </property>
-             </widget>
+              <item>
+               <widget class="QToolButton" name="addHorButton">
+                <property name="toolTip">
+                 <string>Add a new horizontal guide</string>
+                </property>
+                <property name="text">
+                 <string/>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="delHorButton">
+                <property name="toolTip">
+                 <string>Delete the selected horizontal guide</string>
+                </property>
+                <property name="text">
+                 <string/>
+                </property>
+               </widget>
+              </item>
+             </layout>
             </item>
            </layout>
           </widget>
@@ -100,10 +107,13 @@
          <item>
           <widget class="QGroupBox" name="verticalGroupBox">
            <property name="title">
-            <string>Verticals</string>
+            <string>&amp;Vertical Guides</string>
            </property>
            <layout class="QGridLayout">
-            <item row="0" column="0" colspan="2">
+            <property name="horizontalSpacing">
+             <number>5</number>
+            </property>
+            <item row="0" column="0">
              <widget class="GuidesView" name="verticalView">
               <property name="alternatingRowColors">
                <bool>true</bool>
@@ -111,70 +121,91 @@
               <property name="selectionBehavior">
                <enum>QAbstractItemView::SelectRows</enum>
               </property>
+              <attribute name="horizontalHeaderStretchLastSection">
+               <bool>true</bool>
+              </attribute>
              </widget>
             </item>
-            <item row="1" column="0">
-             <widget class="QPushButton" name="addVerButton">
-              <property name="toolTip">
-               <string>Add a new vertical guide</string>
+            <item row="0" column="1" alignment="Qt::AlignTop">
+             <layout class="QVBoxLayout" name="verticalGuideActionsLayout">
+              <property name="spacing">
+               <number>5</number>
               </property>
-              <property name="text">
-               <string>A&amp;dd</string>
-              </property>
-              <property name="shortcut">
-               <string>Alt+D</string>
-              </property>
-             </widget>
-            </item>
-            <item row="1" column="1">
-             <widget class="QPushButton" name="delVerButton">
-              <property name="toolTip">
-               <string>Delete the selected vertical guide</string>
-              </property>
-              <property name="text">
-               <string>De&amp;lete</string>
-              </property>
-              <property name="shortcut">
-               <string>Alt+L</string>
-              </property>
-             </widget>
+              <item>
+               <widget class="QToolButton" name="addVerButton">
+                <property name="toolTip">
+                 <string>Add a new vertical guide</string>
+                </property>
+                <property name="text">
+                 <string/>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="delVerButton">
+                <property name="toolTip">
+                 <string>Delete the selected vertical guide</string>
+                </property>
+                <property name="text">
+                 <string/>
+                </property>
+               </widget>
+              </item>
+             </layout>
             </item>
            </layout>
           </widget>
          </item>
         </layout>
        </item>
-       <item row="1" column="0">
-        <widget class="QCheckBox" name="lockCheck">
-         <property name="toolTip">
-          <string>Lock the guides</string>
+       <item row="1" column="0" colspan="2">
+        <layout class="QHBoxLayout" name="applyStdLayout">
+         <property name="topMargin">
+          <number>8</number>
          </property>
-         <property name="text">
-          <string>&amp;Lock Guides</string>
-         </property>
-         <property name="shortcut">
-          <string>Alt+L</string>
-         </property>
-        </widget>
-       </item>
-       <item row="1" column="1">
-        <widget class="QPushButton" name="applyToAllStdButton">
-         <property name="toolTip">
-          <string>Apply to all pages</string>
-         </property>
-         <property name="text">
-          <string>Appl&amp;y to All Pages</string>
-         </property>
-         <property name="shortcut">
-          <string>Alt+Y</string>
-         </property>
-        </widget>
+         <item>
+          <widget class="QCheckBox" name="lockCheck">
+           <property name="toolTip">
+            <string>Lock the guides</string>
+           </property>
+           <property name="text">
+            <string>Lock Guides</string>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <spacer name="horizontalSpacerCopyLeft">
+           <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>
+         <item>
+          <widget class="QPushButton" name="applyToAllStdButton">
+           <property name="toolTip">
+            <string>Replace the manual guides on all other pages with the manual guides from the current page</string>
+           </property>
+           <property name="text">
+            <string>Copy Guides to All Pages</string>
+           </property>
+          </widget>
+         </item>
+        </layout>
        </item>
       </layout>
      </widget>
      <widget class="QWidget" name="autoPage">
       <attribute name="title">
-       <string>&amp;Column/Row</string>
+       <string>&amp;Rows &amp;&amp; Columns</string>
       </attribute>
       <layout class="QGridLayout">
        <property name="leftMargin">
@@ -189,119 +220,169 @@
        <property name="bottomMargin">
         <number>9</number>
        </property>
-       <item row="2" column="0" colspan="2">
-        <widget class="QPushButton" name="applyToAllAutoButton">
-         <property name="toolTip">
-          <string>Apply the shown guides to all pages in the document</string>
-         </property>
-         <property name="text">
-          <string>Appl&amp;y to All Pages</string>
-         </property>
-         <property name="shortcut">
-          <string>Alt+Y</string>
-         </property>
-        </widget>
-       </item>
        <item row="0" column="0">
         <widget class="QGroupBox" name="horizontalAutoGroup">
          <property name="title">
-          <string>Horizontals</string>
+          <string>&amp;Horizontal Guides</string>
          </property>
          <layout class="QGridLayout">
+          <property name="horizontalSpacing">
+           <number>20</number>
+          </property>
+          <property name="verticalSpacing">
+           <number>8</number>
+          </property>
           <item row="0" column="0">
-           <widget class="QLabel" name="textLabel1">
-            <property name="text">
-             <string>&amp;Number:</string>
-            </property>
-            <property name="wordWrap">
-             <bool>false</bool>
-            </property>
-            <property name="buddy">
-             <cstring>horizontalAutoCountSpin</cstring>
-            </property>
+           <widget class="FormWidget" name="horizontalRelativeForm">
+            <property name="label" stdset="0">
+             <string>Relative to</string>
+            </property>
+            <layout class="QHBoxLayout" name="horizontalRelativeButtonsLayout">
+             <property name="spacing">
+              <number>5</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="horizontalPageAutoButton">
+               <property name="toolTip">
+                <string>Relative to page</string>
+               </property>
+               <property name="text">
+                <string/>
+               </property>
+               <property name="checkable">
+                <bool>true</bool>
+               </property>
+               <property name="checked">
+                <bool>true</bool>
+               </property>
+               <property name="autoExclusive">
+                <bool>true</bool>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <widget class="QToolButton" name="horizontalMarginsAutoButton">
+               <property name="toolTip">
+                <string>Relative to margins</string>
+               </property>
+               <property name="text">
+                <string/>
+               </property>
+               <property name="checkable">
+                <bool>true</bool>
+               </property>
+               <property name="autoExclusive">
+                <bool>true</bool>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <widget class="QToolButton" name="horizontalSelectionAutoButton">
+               <property name="toolTip">
+                <string>Relative to selection</string>
+               </property>
+               <property name="text">
+                <string/>
+               </property>
+               <property name="checkable">
+                <bool>true</bool>
+               </property>
+               <property name="autoExclusive">
+                <bool>true</bool>
+               </property>
+              </widget>
+             </item>
+            </layout>
            </widget>
           </item>
           <item row="0" column="1">
-           <widget class="ScrSpinBox" name="horizontalAutoCountSpin">
-            <property name="toolTip">
-             <string>Number of horizontal guides to create</string>
-            </property>
-            <property name="suffix">
-             <string/>
-            </property>
-            <property name="minimum">
-             <number>0</number>
-            </property>
-            <property name="value">
-             <number>0</number>
-            </property>
-           </widget>
-          </item>
-          <item row="1" column="0" colspan="2">
+           <widget class="FormWidget" name="horizontalNumberForm">
+            <property name="label" stdset="0">
+             <string>Number</string>
+            </property>
+            <layout class="QHBoxLayout" name="horizontalNumberLayout">
+             <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="ScrSpinBox" name="horizontalAutoCountSpin">
+               <property name="minimumSize">
+                <size>
+                 <width>100</width>
+                 <height>0</height>
+                </size>
+               </property>
+               <property name="maximumSize">
+                <size>
+                 <width>100</width>
+                 <height>16777215</height>
+                </size>
+               </property>
+               <property name="toolTip">
+                <string>Number of horizontal guides to create</string>
+               </property>
+               <property name="suffix">
+                <string/>
+               </property>
+               <property name="minimum">
+                <number>0</number>
+               </property>
+               <property name="value">
+                <number>0</number>
+               </property>
+              </widget>
+             </item>
+            </layout>
+           </widget>
+          </item>
+          <item row="1" column="0">
            <widget class="QCheckBox" name="horizontalAutoGapCheck">
             <property name="toolTip">
-             <string>Create rows with guides, with an additional gap between the rows</string>
+             <string>Set the gap between adjacent generated rows</string>
             </property>
             <property name="text">
-             <string>U&amp;se Gap:</string>
-            </property>
-            <property name="shortcut">
-             <string>Alt+S</string>
-            </property>
-           </widget>
-          </item>
-          <item row="2" column="0" colspan="2">
-           <widget class="ScrSpinBox" name="horizontalAutoGapSpin"/>
-          </item>
-          <item row="3" column="0" colspan="2">
-           <widget class="QGroupBox" name="groupBox">
-            <property name="title">
-             <string>Refer to</string>
-            </property>
-            <layout class="QGridLayout">
-             <item row="0" column="0">
-              <widget class="QRadioButton" name="horizontalPageAutoButton">
-               <property name="toolTip">
-                <string>Create the selected number of horizontal guides relative to the current page</string>
-               </property>
-               <property name="text">
-                <string>&amp;Page</string>
-               </property>
-               <property name="shortcut">
-                <string>Alt+P</string>
-               </property>
-               <property name="checked">
-                <bool>true</bool>
-               </property>
-              </widget>
-             </item>
-             <item row="1" column="0">
-              <widget class="QRadioButton" name="horizontalMarginsAutoButton">
-               <property name="toolTip">
-                <string>Create the selected number of horizontal guides relative to the current page's margins</string>
-               </property>
-               <property name="text">
-                <string>M&amp;argins</string>
-               </property>
-               <property name="shortcut">
-                <string>Alt+A</string>
-               </property>
-              </widget>
-             </item>
-             <item row="2" column="0">
-              <widget class="QRadioButton" name="horizontalSelectionAutoButton">
-               <property name="toolTip">
-                <string>Create the selected number of horizontal guides relative to the current selection of items</string>
-               </property>
-               <property name="text">
-                <string>S&amp;election</string>
-               </property>
-               <property name="shortcut">
-                <string>Alt+E</string>
-               </property>
-              </widget>
-             </item>
-            </layout>
+             <string>Gap:</string>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="1">
+           <widget class="ScrSpinBox" name="horizontalAutoGapSpin">
+            <property name="minimumSize">
+             <size>
+              <width>100</width>
+              <height>0</height>
+             </size>
+            </property>
+            <property name="maximumSize">
+             <size>
+              <width>100</width>
+              <height>16777215</height>
+             </size>
+            </property>
+            <property name="toolTip">
+             <string>Set the gap between adjacent generated rows</string>
+            </property>
            </widget>
           </item>
          </layout>
@@ -310,109 +391,205 @@
        <item row="0" column="1">
         <widget class="QGroupBox" name="verticalAutoGroup">
          <property name="title">
-          <string>Verticals</string>
+          <string>&amp;Vertical Guides</string>
          </property>
          <layout class="QGridLayout">
+          <property name="horizontalSpacing">
+           <number>20</number>
+          </property>
+          <property name="verticalSpacing">
+           <number>8</number>
+          </property>
           <item row="0" column="0">
-           <widget class="QLabel" name="textLabel1_2">
-            <property name="text">
-             <string>Nu&amp;mber:</string>
-            </property>
-            <property name="wordWrap">
-             <bool>false</bool>
-            </property>
-            <property name="buddy">
-             <cstring>verticalAutoCountSpin</cstring>
-            </property>
+           <widget class="FormWidget" name="verticalRelativeForm">
+            <property name="label" stdset="0">
+             <string>Relative to</string>
+            </property>
+            <layout class="QHBoxLayout" name="verticalRelativeButtonsLayout">
+             <property name="spacing">
+              <number>5</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="verticalPageAutoButton">
+               <property name="toolTip">
+                <string>Relative to page</string>
+               </property>
+               <property name="text">
+                <string/>
+               </property>
+               <property name="checkable">
+                <bool>true</bool>
+               </property>
+               <property name="checked">
+                <bool>true</bool>
+               </property>
+               <property name="autoExclusive">
+                <bool>true</bool>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <widget class="QToolButton" name="verticalMarginsAutoButton">
+               <property name="toolTip">
+                <string>Relative to margins</string>
+               </property>
+               <property name="text">
+                <string/>
+               </property>
+               <property name="checkable">
+                <bool>true</bool>
+               </property>
+               <property name="autoExclusive">
+                <bool>true</bool>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <widget class="QToolButton" name="verticalSelectionAutoButton">
+               <property name="toolTip">
+                <string>Relative to selection</string>
+               </property>
+               <property name="text">
+                <string/>
+               </property>
+               <property name="checkable">
+                <bool>true</bool>
+               </property>
+               <property name="autoExclusive">
+                <bool>true</bool>
+               </property>
+              </widget>
+             </item>
+            </layout>
            </widget>
           </item>
           <item row="0" column="1">
-           <widget class="ScrSpinBox" name="verticalAutoCountSpin">
-            <property name="toolTip">
-             <string>Number of vertical guides to create</string>
-            </property>
-            <property name="suffix">
-             <string/>
-            </property>
-            <property name="minimum">
-             <number>0</number>
-            </property>
-            <property name="value">
-             <number>0</number>
-            </property>
-           </widget>
-          </item>
-          <item row="1" column="0" colspan="2">
+           <widget class="FormWidget" name="verticalNumberForm">
+            <property name="label" stdset="0">
+             <string>Number</string>
+            </property>
+            <layout class="QHBoxLayout" name="verticalNumberLayout">
+             <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="ScrSpinBox" name="verticalAutoCountSpin">
+               <property name="minimumSize">
+                <size>
+                 <width>100</width>
+                 <height>0</height>
+                </size>
+               </property>
+               <property name="maximumSize">
+                <size>
+                 <width>100</width>
+                 <height>16777215</height>
+                </size>
+               </property>
+               <property name="toolTip">
+                <string>Number of vertical guides to create</string>
+               </property>
+               <property name="suffix">
+                <string/>
+               </property>
+               <property name="minimum">
+                <number>0</number>
+               </property>
+               <property name="value">
+                <number>0</number>
+               </property>
+              </widget>
+             </item>
+            </layout>
+           </widget>
+          </item>
+          <item row="1" column="0">
            <widget class="QCheckBox" name="verticalAutoGapCheck">
             <property name="toolTip">
-             <string>Create columns with guides, with an additional gap between the columns</string>
+             <string>Set the gap between adjacent generated columns</string>
             </property>
             <property name="text">
-             <string>Use &amp;Gap:</string>
-            </property>
-            <property name="shortcut">
-             <string>Alt+G</string>
-            </property>
-           </widget>
-          </item>
-          <item row="2" column="0" colspan="2">
-           <widget class="ScrSpinBox" name="verticalAutoGapSpin"/>
-          </item>
-          <item row="3" column="0" colspan="2">
-           <widget class="QGroupBox" name="groupBox_2">
-            <property name="title">
-             <string>Refer to</string>
-            </property>
-            <layout class="QGridLayout">
-             <item row="0" column="0">
-              <widget class="QRadioButton" name="verticalPageAutoButton">
-               <property name="toolTip">
-                <string>Create the selected number of vertical guides relative to the current page</string>
-               </property>
-               <property name="text">
-                <string>&amp;Page</string>
-               </property>
-               <property name="shortcut">
-                <string>Alt+P</string>
-               </property>
-               <property name="checked">
-                <bool>true</bool>
-               </property>
-              </widget>
-             </item>
-             <item row="1" column="0">
-              <widget class="QRadioButton" name="verticalMarginsAutoButton">
-               <property name="toolTip">
-                <string>Create the selected number of vertical guides relative to the current page's margins</string>
-               </property>
-               <property name="text">
-                <string>M&amp;argins</string>
-               </property>
-               <property name="shortcut">
-                <string>Alt+A</string>
-               </property>
-              </widget>
-             </item>
-             <item row="2" column="0">
-              <widget class="QRadioButton" name="verticalSelectionAutoButton">
-               <property name="toolTip">
-                <string>Create the selected number of vertical guides relative to the current selection of items</string>
-               </property>
-               <property name="text">
-                <string>S&amp;election</string>
-               </property>
-               <property name="shortcut">
-                <string>Alt+E</string>
-               </property>
-              </widget>
-             </item>
-            </layout>
+             <string>Gap:</string>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="1">
+           <widget class="ScrSpinBox" name="verticalAutoGapSpin">
+            <property name="minimumSize">
+             <size>
+              <width>100</width>
+              <height>0</height>
+             </size>
+            </property>
+            <property name="maximumSize">
+             <size>
+              <width>100</width>
+              <height>16777215</height>
+             </size>
+            </property>
+            <property name="toolTip">
+             <string>Set the gap between adjacent generated columns</string>
+            </property>
            </widget>
           </item>
          </layout>
         </widget>
        </item>
-       <item row="1" column="0">
+       <item row="1" column="0" colspan="2">
+        <layout class="QHBoxLayout" name="applyAutoLayout">
+         <property name="topMargin">
+          <number>8</number>
+         </property>
+         <item>
+          <spacer name="horizontalSpacerApplyLeft">
+           <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>
+         <item>
+          <widget class="QPushButton" name="applyToAllAutoButton">
+           <property name="toolTip">
+            <string>Apply the current row and column guide settings to all pages in the document</string>
+           </property>
+           <property name="text">
+            <string>Apply Settings to All Pages</string>
+           </property>
+          </widget>
+         </item>
+        </layout>
+       </item>
+       <item row="2" column="0" colspan="2">
         <spacer name="verticalSpacer">
          <property name="orientation">
           <enum>Qt::Vertical</enum>
@@ -427,72 +604,71 @@
        </item>
       </layout>
      </widget>
-     <widget class="QWidget" name="miscPage">
-      <attribute name="title">
-       <string>&amp;Misc</string>
-      </attribute>
-      <layout class="QGridLayout">
-       <property name="leftMargin">
-        <number>9</number>
-       </property>
-       <property name="topMargin">
-        <number>9</number>
-       </property>
-       <property name="rightMargin">
-        <number>9</number>
-       </property>
-       <property name="bottomMargin">
-        <number>9</number>
-       </property>
-       <item row="0" column="0">
-        <widget class="QPushButton" name="deletePageButton">
-         <property name="toolTip">
-          <string>Delete all guides from the current page</string>
-         </property>
-         <property name="text">
-          <string>Delete Guides from Current &amp;Page</string>
-         </property>
-         <property name="shortcut">
-          <string>Alt+P</string>
-         </property>
-        </widget>
-       </item>
-       <item row="1" column="0">
-        <widget class="QPushButton" name="deleteAllGuides">
-         <property name="toolTip">
-          <string>Delete all guides from the current document</string>
-         </property>
-         <property name="text">
-          <string>Delete Guides from &amp;All Pages</string>
-         </property>
-         <property name="shortcut">
-          <string>Alt+A</string>
-         </property>
-        </widget>
-       </item>
-       <item row="2" column="0">
-        <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>40</height>
-          </size>
-         </property>
-        </spacer>
-       </item>
-      </layout>
-     </widget>
+    </widget>
+   </item>
+   <item row="1" column="0">
+    <widget class="QWidget" name="globalGuideControls">
+     <layout class="QHBoxLayout">
+      <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>
+       <spacer name="horizontalSpacerGlobal">
+        <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>
+      <item>
+       <widget class="QPushButton" name="deletePageButton">
+        <property name="toolTip">
+         <string>Delete all guides from the current page</string>
+        </property>
+        <property name="text">
+         <string>Clear Page Guides</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QPushButton" name="deleteAllGuides">
+        <property name="toolTip">
+         <string>Delete all guides from the current document</string>
+        </property>
+        <property name="text">
+         <string>Clear All Guides</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
     </widget>
    </item>
   </layout>
  </widget>
  <customwidgets>
+  <customwidget>
+   <class>FormWidget</class>
+   <extends>QWidget</extends>
+   <header>ui/widgets/form_widget.h</header>
+   <container>1</container>
+  </customwidget>
   <customwidget>
    <class>ScrSpinBox</class>
    <extends>QDoubleSpinBox</extends>
Index: scribus/ui/guidemanager.cpp
===================================================================
--- scribus/ui/guidemanager.cpp	(revision 27810)
+++ scribus/ui/guidemanager.cpp	(working copy)
@@ -27,6 +27,7 @@
 #include "guidemanager.h"
 #include "guidesdelegate.h"
 #include "guidesmodel.h"
+#include "iconmanager.h"
 #include "scpage.h"
 #include "scribuscore.h"
 #include "scribusdoc.h"
@@ -41,12 +42,25 @@
 {
 	setupUi(this);
 	tabWidget->setEnabled(false);
+	globalGuideControls->setEnabled(false);
 	horizontalAutoGapSpin->setMinimum(0.0);
 	horizontalAutoGapSpin->setMaximum(10000.0);
 	verticalAutoGapSpin->setMinimum(0.0);
 	verticalAutoGapSpin->setMaximum(10000.0);
 	horizontalAutoCountSpin->setDecimals(0);
 	verticalAutoCountSpin->setDecimals(0);
+
+	IconManager& im = IconManager::instance();
+	addHorButton->setIcon(im.loadIcon("list-add"));
+	delHorButton->setIcon(im.loadIcon("edit-delete"));
+	addVerButton->setIcon(im.loadIcon("list-add"));
+	delVerButton->setIcon(im.loadIcon("edit-delete"));
+	horizontalPageAutoButton->setIcon(im.loadIcon("align-to-page"));
+	horizontalMarginsAutoButton->setIcon(im.loadIcon("align-to-margin"));
+	horizontalSelectionAutoButton->setIcon(im.loadIcon("align-to-last-selection"));
+	verticalPageAutoButton->setIcon(im.loadIcon("align-to-page"));
+	verticalMarginsAutoButton->setIcon(im.loadIcon("align-to-margin"));
+	verticalSelectionAutoButton->setIcon(im.loadIcon("align-to-last-selection"));
 
 	// MVC
 	horizontalModel = new GuidesModel(this);
@@ -122,6 +136,7 @@
 	if (!m_doc)
 		currentPage = nullptr;
 	tabWidget->setEnabled(doc != nullptr);
+	globalGuideControls->setEnabled(doc != nullptr);
 }
 
 void GuideManager::setVisible(bool visible)
@@ -243,20 +258,14 @@
 	if (!m_doc)
 		return;
 
-	// a little bit magic to get Verticals (unit) into group boxes
-	horizontalGroupBox->setTitle(horizontalGroupBox->title().remove(" ("+suffix.trimmed()+")"));
-	verticalGroupBox->setTitle(verticalGroupBox->title().remove(" ("+suffix.trimmed()+")"));
 	docUnitIndex = m_doc->unitIndex();
 	int docUnitDecimals = unitGetPrecisionFromIndex(docUnitIndex);
 
 	QSignalBlocker horizontalAutoGapSpinBlock(horizontalAutoGapSpin);
 	QSignalBlocker verticalAutoGapSpinBlock(verticalAutoGapSpin);
-	suffix = unitGetSuffixFromIndex(docUnitIndex);
 	horizontalAutoGapSpin->setNewUnit(docUnitIndex);
 	verticalAutoGapSpin->setNewUnit(docUnitIndex);
 
-	horizontalGroupBox->setTitle(horizontalGroupBox->title() + " ("+suffix.trimmed()+")");
-	verticalGroupBox->setTitle(verticalGroupBox->title() + " ("+suffix.trimmed()+")");
 	// models display
 	horizontalModel->unitChange(docUnitIndex, docUnitDecimals, m_doc->rulerYoffset);
 	verticalModel->unitChange(docUnitIndex, docUnitDecimals, m_doc->rulerXoffset);
Index: scribus/ui/guidemanager.h
===================================================================
--- scribus/ui/guidemanager.h	(revision 27810)
+++ scribus/ui/guidemanager.h	(working copy)
@@ -92,9 +92,6 @@
 	//! \brief Document measurements and metrics
 	int docUnitIndex { 0 };
 
-	//! \brief suffix of the unit [mm, ...]
-	QString suffix;
-
 	/*! \brief Copy guides from currentPage to all remaining.
 	All gudes are deleted before copying.
 	\param t a type to clear and copy.*/
Index: scribus/guidesmodel.cpp
===================================================================
--- scribus/guidesmodel.cpp	(revision 27810)
+++ scribus/guidesmodel.cpp	(working copy)
@@ -43,7 +43,7 @@
 		return QVariant(l.toString(pts2value(m_values.at(index.row()) - m_rule,
 											  m_docUnitIndex), 'f',
 											  m_docUnitDecimals)
-						);
+						+ unitGetSuffixFromIndex(m_docUnitIndex));
 	}
 	if (role == Qt::EditRole)
 		return pts2value(m_values.at(index.row()) - m_rule, m_docUnitIndex);
guidemanager-ui-v1.94.patch (38,055 bytes)   

qirat

2026-09-07 11:51

reporter   ~0054434

A little more polish.
guidemanager-ui-v1.95.patch (37,874 bytes)   
Index: scribus/ui/guidemanager.ui
===================================================================
--- scribus/ui/guidemanager.ui	(revision 27816)
+++ scribus/ui/guidemanager.ui	(working copy)
@@ -8,7 +8,7 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>428</width>
+    <width>340</width>
     <height>368</height>
    </rect>
   </property>
@@ -35,7 +35,7 @@
      </property>
      <widget class="QWidget" name="standardPage">
       <attribute name="title">
-       <string>&amp;Single</string>
+       <string>&amp;Manual Guides</string>
       </attribute>
       <layout class="QGridLayout">
        <property name="leftMargin">
@@ -55,10 +55,13 @@
          <item>
           <widget class="QGroupBox" name="horizontalGroupBox">
            <property name="title">
-            <string>Horizontals</string>
+            <string>&amp;Horizontal Guides</string>
            </property>
            <layout class="QGridLayout">
-            <item row="0" column="0" colspan="2">
+            <property name="horizontalSpacing">
+             <number>5</number>
+            </property>
+            <item row="0" column="0">
              <widget class="GuidesView" name="horizontalView">
               <property name="alternatingRowColors">
                <bool>true</bool>
@@ -66,33 +69,37 @@
               <property name="selectionBehavior">
                <enum>QAbstractItemView::SelectRows</enum>
               </property>
+              <attribute name="horizontalHeaderStretchLastSection">
+               <bool>true</bool>
+              </attribute>
              </widget>
             </item>
-            <item row="1" column="0">
-             <widget class="QPushButton" name="addHorButton">
-              <property name="toolTip">
-               <string>Add a new horizontal guide</string>
-              </property>
-              <property name="text">
-               <string>&amp;Add</string>
-              </property>
-              <property name="shortcut">
-               <string>Alt+A</string>
-              </property>
-             </widget>
-            </item>
-            <item row="1" column="1">
-             <widget class="QPushButton" name="delHorButton">
-              <property name="toolTip">
-               <string>Delete the selected horizontal guide</string>
-              </property>
-              <property name="text">
-               <string>D&amp;elete</string>
-              </property>
-              <property name="shortcut">
-               <string>Alt+E</string>
-              </property>
-             </widget>
+            <item row="0" column="1" alignment="Qt::AlignTop">
+             <layout class="QVBoxLayout" name="horizontalGuideActionsLayout">
+              <property name="spacing">
+               <number>5</number>
+              </property>
+              <item>
+               <widget class="QToolButton" name="addHorButton">
+                <property name="toolTip">
+                 <string>Add a new horizontal guide</string>
+                </property>
+                <property name="text">
+                 <string/>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="delHorButton">
+                <property name="toolTip">
+                 <string>Delete the selected horizontal guide</string>
+                </property>
+                <property name="text">
+                 <string/>
+                </property>
+               </widget>
+              </item>
+             </layout>
             </item>
            </layout>
           </widget>
@@ -100,10 +107,13 @@
          <item>
           <widget class="QGroupBox" name="verticalGroupBox">
            <property name="title">
-            <string>Verticals</string>
+            <string>&amp;Vertical Guides</string>
            </property>
            <layout class="QGridLayout">
-            <item row="0" column="0" colspan="2">
+            <property name="horizontalSpacing">
+             <number>5</number>
+            </property>
+            <item row="0" column="0">
              <widget class="GuidesView" name="verticalView">
               <property name="alternatingRowColors">
                <bool>true</bool>
@@ -111,70 +121,91 @@
               <property name="selectionBehavior">
                <enum>QAbstractItemView::SelectRows</enum>
               </property>
+              <attribute name="horizontalHeaderStretchLastSection">
+               <bool>true</bool>
+              </attribute>
              </widget>
             </item>
-            <item row="1" column="0">
-             <widget class="QPushButton" name="addVerButton">
-              <property name="toolTip">
-               <string>Add a new vertical guide</string>
-              </property>
-              <property name="text">
-               <string>A&amp;dd</string>
-              </property>
-              <property name="shortcut">
-               <string>Alt+D</string>
-              </property>
-             </widget>
-            </item>
-            <item row="1" column="1">
-             <widget class="QPushButton" name="delVerButton">
-              <property name="toolTip">
-               <string>Delete the selected vertical guide</string>
-              </property>
-              <property name="text">
-               <string>De&amp;lete</string>
-              </property>
-              <property name="shortcut">
-               <string>Alt+L</string>
-              </property>
-             </widget>
+            <item row="0" column="1" alignment="Qt::AlignTop">
+             <layout class="QVBoxLayout" name="verticalGuideActionsLayout">
+              <property name="spacing">
+               <number>5</number>
+              </property>
+              <item>
+               <widget class="QToolButton" name="addVerButton">
+                <property name="toolTip">
+                 <string>Add a new vertical guide</string>
+                </property>
+                <property name="text">
+                 <string/>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QToolButton" name="delVerButton">
+                <property name="toolTip">
+                 <string>Delete the selected vertical guide</string>
+                </property>
+                <property name="text">
+                 <string/>
+                </property>
+               </widget>
+              </item>
+             </layout>
             </item>
            </layout>
           </widget>
          </item>
         </layout>
        </item>
-       <item row="1" column="0">
-        <widget class="QCheckBox" name="lockCheck">
-         <property name="toolTip">
-          <string>Lock the guides</string>
-         </property>
-         <property name="text">
-          <string>&amp;Lock Guides</string>
-         </property>
-         <property name="shortcut">
-          <string>Alt+L</string>
-         </property>
-        </widget>
-       </item>
-       <item row="1" column="1">
-        <widget class="QPushButton" name="applyToAllStdButton">
-         <property name="toolTip">
-          <string>Apply to all pages</string>
+       <item row="1" column="0" colspan="2">
+        <layout class="QHBoxLayout" name="applyStdLayout">
+         <property name="topMargin">
+          <number>8</number>
          </property>
-         <property name="text">
-          <string>Appl&amp;y to All Pages</string>
-         </property>
-         <property name="shortcut">
-          <string>Alt+Y</string>
-         </property>
-        </widget>
+         <item>
+          <widget class="QCheckBox" name="lockCheck">
+           <property name="toolTip">
+            <string>Lock the guides</string>
+           </property>
+           <property name="text">
+            <string>Lock Guides</string>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <spacer name="horizontalSpacerCopyLeft">
+           <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>
+         <item>
+          <widget class="QPushButton" name="applyToAllStdButton">
+           <property name="toolTip">
+            <string>Replace the manual guides on all other pages with the manual guides from the current page</string>
+           </property>
+           <property name="text">
+            <string>Copy Guides to All Pages</string>
+           </property>
+          </widget>
+         </item>
+        </layout>
        </item>
       </layout>
      </widget>
      <widget class="QWidget" name="autoPage">
       <attribute name="title">
-       <string>&amp;Column/Row</string>
+       <string>&amp;Rows &amp;&amp; Columns</string>
       </attribute>
       <layout class="QGridLayout">
        <property name="leftMargin">
@@ -189,299 +220,396 @@
        <property name="bottomMargin">
         <number>9</number>
        </property>
-       <item row="2" column="0" colspan="2">
-        <widget class="QPushButton" name="applyToAllAutoButton">
-         <property name="toolTip">
-          <string>Apply the shown guides to all pages in the document</string>
-         </property>
-         <property name="text">
-          <string>Appl&amp;y to All Pages</string>
-         </property>
-         <property name="shortcut">
-          <string>Alt+Y</string>
-         </property>
-        </widget>
-       </item>
        <item row="0" column="0">
         <widget class="QGroupBox" name="horizontalAutoGroup">
          <property name="title">
-          <string>Horizontals</string>
+          <string>&amp;Horizontal Guides</string>
          </property>
          <layout class="QGridLayout">
+          <property name="horizontalSpacing">
+           <number>20</number>
+          </property>
+          <property name="verticalSpacing">
+           <number>8</number>
+          </property>
           <item row="0" column="0">
-           <widget class="QLabel" name="textLabel1">
-            <property name="text">
-             <string>&amp;Number:</string>
-            </property>
-            <property name="wordWrap">
-             <bool>false</bool>
-            </property>
-            <property name="buddy">
-             <cstring>horizontalAutoCountSpin</cstring>
-            </property>
-           </widget>
-          </item>
-          <item row="0" column="1">
-           <widget class="ScrSpinBox" name="horizontalAutoCountSpin">
-            <property name="toolTip">
-             <string>Number of horizontal guides to create</string>
-            </property>
-            <property name="suffix">
-             <string/>
-            </property>
-            <property name="minimum">
-             <number>0</number>
-            </property>
-            <property name="value">
-             <number>0</number>
-            </property>
-           </widget>
-          </item>
-          <item row="1" column="0" colspan="2">
-           <widget class="QCheckBox" name="horizontalAutoGapCheck">
-            <property name="toolTip">
-             <string>Create rows with guides, with an additional gap between the rows</string>
-            </property>
-            <property name="text">
-             <string>U&amp;se Gap:</string>
-            </property>
-            <property name="shortcut">
-             <string>Alt+S</string>
-            </property>
-           </widget>
-          </item>
-          <item row="2" column="0" colspan="2">
-           <widget class="ScrSpinBox" name="horizontalAutoGapSpin"/>
-          </item>
-          <item row="3" column="0" colspan="2">
-           <widget class="QGroupBox" name="groupBox">
-            <property name="title">
-             <string>Refer to</string>
-            </property>
-            <layout class="QGridLayout">
-             <item row="0" column="0">
-              <widget class="QRadioButton" name="horizontalPageAutoButton">
+           <widget class="FormWidget" name="horizontalRelativeForm">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Maximum" vsizetype="Minimum">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="label" stdset="0">
+             <string>Relative to</string>
+            </property>
+            <layout class="QHBoxLayout" name="horizontalRelativeButtonsLayout">
+             <property name="spacing">
+              <number>5</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="horizontalPageAutoButton">
                <property name="toolTip">
-                <string>Create the selected number of horizontal guides relative to the current page</string>
+                <string>Relative to page</string>
                </property>
                <property name="text">
-                <string>&amp;Page</string>
+                <string/>
                </property>
-               <property name="shortcut">
-                <string>Alt+P</string>
+               <property name="checkable">
+                <bool>true</bool>
                </property>
                <property name="checked">
                 <bool>true</bool>
                </property>
+               <property name="autoExclusive">
+                <bool>true</bool>
+               </property>
               </widget>
              </item>
-             <item row="1" column="0">
-              <widget class="QRadioButton" name="horizontalMarginsAutoButton">
+             <item>
+              <widget class="QToolButton" name="horizontalMarginsAutoButton">
                <property name="toolTip">
-                <string>Create the selected number of horizontal guides relative to the current page's margins</string>
+                <string>Relative to margins</string>
                </property>
                <property name="text">
-                <string>M&amp;argins</string>
+                <string/>
                </property>
-               <property name="shortcut">
-                <string>Alt+A</string>
+               <property name="checkable">
+                <bool>true</bool>
+               </property>
+               <property name="autoExclusive">
+                <bool>true</bool>
                </property>
               </widget>
              </item>
-             <item row="2" column="0">
-              <widget class="QRadioButton" name="horizontalSelectionAutoButton">
+             <item>
+              <widget class="QToolButton" name="horizontalSelectionAutoButton">
                <property name="toolTip">
-                <string>Create the selected number of horizontal guides relative to the current selection of items</string>
+                <string>Relative to selection</string>
                </property>
                <property name="text">
-                <string>S&amp;election</string>
+                <string/>
                </property>
-               <property name="shortcut">
-                <string>Alt+E</string>
+               <property name="checkable">
+                <bool>true</bool>
+               </property>
+               <property name="autoExclusive">
+                <bool>true</bool>
                </property>
               </widget>
              </item>
             </layout>
            </widget>
           </item>
-         </layout>
-        </widget>
-       </item>
-       <item row="0" column="1">
-        <widget class="QGroupBox" name="verticalAutoGroup">
-         <property name="title">
-          <string>Verticals</string>
-         </property>
-         <layout class="QGridLayout">
-          <item row="0" column="0">
-           <widget class="QLabel" name="textLabel1_2">
-            <property name="text">
-             <string>Nu&amp;mber:</string>
-            </property>
-            <property name="wordWrap">
-             <bool>false</bool>
-            </property>
-            <property name="buddy">
-             <cstring>verticalAutoCountSpin</cstring>
-            </property>
+          <item row="0" column="1">
+           <widget class="FormWidget" name="horizontalNumberForm">
+            <property name="label" stdset="0">
+             <string>Number</string>
+            </property>
+            <layout class="QHBoxLayout" name="horizontalNumberLayout">
+             <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="ScrSpinBox" name="horizontalAutoCountSpin">
+               <property name="minimumSize">
+                <size>
+                 <width>100</width>
+                 <height>0</height>
+                </size>
+               </property>
+               <property name="maximumSize">
+                <size>
+                 <width>100</width>
+                 <height>16777215</height>
+                </size>
+               </property>
+               <property name="toolTip">
+                <string>Number of horizontal guides to create</string>
+               </property>
+               <property name="suffix">
+                <string/>
+               </property>
+               <property name="minimum">
+                <number>0</number>
+               </property>
+               <property name="value">
+                <number>0</number>
+               </property>
+              </widget>
+             </item>
+            </layout>
            </widget>
           </item>
-          <item row="0" column="1">
-           <widget class="ScrSpinBox" name="verticalAutoCountSpin">
+          <item row="1" column="0">
+           <widget class="QCheckBox" name="horizontalAutoGapCheck">
             <property name="toolTip">
-             <string>Number of vertical guides to create</string>
-            </property>
-            <property name="suffix">
-             <string/>
+             <string>Set the gap between adjacent generated rows</string>
             </property>
-            <property name="minimum">
-             <number>0</number>
-            </property>
-            <property name="value">
-             <number>0</number>
+            <property name="text">
+             <string>Gap:</string>
             </property>
            </widget>
           </item>
-          <item row="1" column="0" colspan="2">
-           <widget class="QCheckBox" name="verticalAutoGapCheck">
-            <property name="toolTip">
-             <string>Create columns with guides, with an additional gap between the columns</string>
-            </property>
-            <property name="text">
-             <string>Use &amp;Gap:</string>
+          <item row="1" column="1">
+           <widget class="ScrSpinBox" name="horizontalAutoGapSpin">
+            <property name="minimumSize">
+             <size>
+              <width>100</width>
+              <height>0</height>
+             </size>
+            </property>
+            <property name="maximumSize">
+             <size>
+              <width>100</width>
+              <height>16777215</height>
+             </size>
             </property>
-            <property name="shortcut">
-             <string>Alt+G</string>
+            <property name="toolTip">
+             <string>Set the gap between adjacent generated rows</string>
             </property>
            </widget>
           </item>
-          <item row="2" column="0" colspan="2">
-           <widget class="ScrSpinBox" name="verticalAutoGapSpin"/>
-          </item>
-          <item row="3" column="0" colspan="2">
-           <widget class="QGroupBox" name="groupBox_2">
-            <property name="title">
-             <string>Refer to</string>
-            </property>
-            <layout class="QGridLayout">
-             <item row="0" column="0">
-              <widget class="QRadioButton" name="verticalPageAutoButton">
+         </layout>
+        </widget>
+       </item>
+       <item row="0" column="1">
+        <widget class="QGroupBox" name="verticalAutoGroup">
+         <property name="title">
+          <string>&amp;Vertical Guides</string>
+         </property>
+         <layout class="QGridLayout">
+          <property name="horizontalSpacing">
+           <number>20</number>
+          </property>
+          <property name="verticalSpacing">
+           <number>8</number>
+          </property>
+          <item row="0" column="0">
+           <widget class="FormWidget" name="verticalRelativeForm">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Maximum" vsizetype="Minimum">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="label" stdset="0">
+             <string>Relative to</string>
+            </property>
+            <layout class="QHBoxLayout" name="verticalRelativeButtonsLayout">
+             <property name="spacing">
+              <number>5</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="verticalPageAutoButton">
                <property name="toolTip">
-                <string>Create the selected number of vertical guides relative to the current page</string>
+                <string>Relative to page</string>
                </property>
                <property name="text">
-                <string>&amp;Page</string>
+                <string/>
                </property>
-               <property name="shortcut">
-                <string>Alt+P</string>
+               <property name="checkable">
+                <bool>true</bool>
                </property>
                <property name="checked">
                 <bool>true</bool>
                </property>
+               <property name="autoExclusive">
+                <bool>true</bool>
+               </property>
               </widget>
              </item>
-             <item row="1" column="0">
-              <widget class="QRadioButton" name="verticalMarginsAutoButton">
+             <item>
+              <widget class="QToolButton" name="verticalMarginsAutoButton">
                <property name="toolTip">
-                <string>Create the selected number of vertical guides relative to the current page's margins</string>
+                <string>Relative to margins</string>
                </property>
                <property name="text">
-                <string>M&amp;argins</string>
+                <string/>
+               </property>
+               <property name="checkable">
+                <bool>true</bool>
                </property>
-               <property name="shortcut">
-                <string>Alt+A</string>
+               <property name="autoExclusive">
+                <bool>true</bool>
                </property>
               </widget>
              </item>
-             <item row="2" column="0">
-              <widget class="QRadioButton" name="verticalSelectionAutoButton">
+             <item>
+              <widget class="QToolButton" name="verticalSelectionAutoButton">
                <property name="toolTip">
-                <string>Create the selected number of vertical guides relative to the current selection of items</string>
+                <string>Relative to selection</string>
                </property>
                <property name="text">
-                <string>S&amp;election</string>
+                <string/>
+               </property>
+               <property name="checkable">
+                <bool>true</bool>
                </property>
-               <property name="shortcut">
-                <string>Alt+E</string>
+               <property name="autoExclusive">
+                <bool>true</bool>
+               </property>
+              </widget>
+             </item>
+            </layout>
+           </widget>
+          </item>
+          <item row="0" column="1">
+           <widget class="FormWidget" name="verticalNumberForm">
+            <property name="label" stdset="0">
+             <string>Number</string>
+            </property>
+            <layout class="QHBoxLayout" name="verticalNumberLayout">
+             <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="ScrSpinBox" name="verticalAutoCountSpin">
+               <property name="minimumSize">
+                <size>
+                 <width>100</width>
+                 <height>0</height>
+                </size>
+               </property>
+               <property name="maximumSize">
+                <size>
+                 <width>100</width>
+                 <height>16777215</height>
+                </size>
+               </property>
+               <property name="toolTip">
+                <string>Number of vertical guides to create</string>
+               </property>
+               <property name="suffix">
+                <string/>
+               </property>
+               <property name="minimum">
+                <number>0</number>
+               </property>
+               <property name="value">
+                <number>0</number>
                </property>
               </widget>
              </item>
             </layout>
            </widget>
           </item>
+          <item row="1" column="0">
+           <widget class="QCheckBox" name="verticalAutoGapCheck">
+            <property name="toolTip">
+             <string>Set the gap between adjacent generated columns</string>
+            </property>
+            <property name="text">
+             <string>Gap:</string>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="1">
+           <widget class="ScrSpinBox" name="verticalAutoGapSpin">
+            <property name="minimumSize">
+             <size>
+              <width>100</width>
+              <height>0</height>
+             </size>
+            </property>
+            <property name="maximumSize">
+             <size>
+              <width>100</width>
+              <height>16777215</height>
+             </size>
+            </property>
+            <property name="toolTip">
+             <string>Set the gap between adjacent generated columns</string>
+            </property>
+           </widget>
+          </item>
          </layout>
         </widget>
        </item>
-       <item row="1" column="0">
-        <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 class="QWidget" name="miscPage">
-      <attribute name="title">
-       <string>&amp;Misc</string>
-      </attribute>
-      <layout class="QGridLayout">
-       <property name="leftMargin">
-        <number>9</number>
-       </property>
-       <property name="topMargin">
-        <number>9</number>
-       </property>
-       <property name="rightMargin">
-        <number>9</number>
-       </property>
-       <property name="bottomMargin">
-        <number>9</number>
-       </property>
-       <item row="0" column="0">
-        <widget class="QPushButton" name="deletePageButton">
-         <property name="toolTip">
-          <string>Delete all guides from the current page</string>
-         </property>
-         <property name="text">
-          <string>Delete Guides from Current &amp;Page</string>
-         </property>
-         <property name="shortcut">
-          <string>Alt+P</string>
-         </property>
-        </widget>
-       </item>
-       <item row="1" column="0">
-        <widget class="QPushButton" name="deleteAllGuides">
-         <property name="toolTip">
-          <string>Delete all guides from the current document</string>
-         </property>
-         <property name="text">
-          <string>Delete Guides from &amp;All Pages</string>
+       <item row="1" column="0" colspan="2">
+        <layout class="QHBoxLayout" name="applyAutoLayout">
+         <property name="topMargin">
+          <number>8</number>
          </property>
-         <property name="shortcut">
-          <string>Alt+A</string>
-         </property>
-        </widget>
+         <item>
+          <spacer name="horizontalSpacerApplyLeft">
+           <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>
+         <item>
+          <widget class="QPushButton" name="applyToAllAutoButton">
+           <property name="toolTip">
+            <string>Apply the current row and column guide settings to all pages in the document</string>
+           </property>
+           <property name="text">
+            <string>Apply Settings to All Pages</string>
+           </property>
+          </widget>
+         </item>
+        </layout>
        </item>
-       <item row="2" column="0">
-        <spacer>
+       <item row="2" column="0" colspan="2">
+        <spacer name="verticalSpacer">
          <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>40</height>
+           <height>0</height>
           </size>
          </property>
         </spacer>
@@ -490,10 +618,70 @@
      </widget>
     </widget>
    </item>
+   <item row="1" column="0">
+    <widget class="QWidget" name="globalGuideControls">
+     <layout class="QHBoxLayout">
+      <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>
+       <spacer name="horizontalSpacerGlobal">
+        <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>
+      <item>
+       <widget class="QPushButton" name="deletePageButton">
+        <property name="toolTip">
+         <string>Delete all guides from the current page</string>
+        </property>
+        <property name="text">
+         <string>Clear Page Guides</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QPushButton" name="deleteAllGuides">
+        <property name="toolTip">
+         <string>Delete all guides from the current document</string>
+        </property>
+        <property name="text">
+         <string>Clear All Guides</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
   </layout>
  </widget>
  <customwidgets>
   <customwidget>
+   <class>FormWidget</class>
+   <extends>QWidget</extends>
+   <header>ui/widgets/form_widget.h</header>
+   <container>1</container>
+  </customwidget>
+  <customwidget>
    <class>ScrSpinBox</class>
    <extends>QDoubleSpinBox</extends>
    <header location="global">ui/scrspinbox.h</header>
Index: scribus/ui/guidemanager.cpp
===================================================================
--- scribus/ui/guidemanager.cpp	(revision 27816)
+++ scribus/ui/guidemanager.cpp	(working copy)
@@ -27,6 +27,7 @@
 #include "guidemanager.h"
 #include "guidesdelegate.h"
 #include "guidesmodel.h"
+#include "iconmanager.h"
 #include "scpage.h"
 #include "scribuscore.h"
 #include "scribusdoc.h"
@@ -41,6 +42,7 @@
 {
 	setupUi(this);
 	tabWidget->setEnabled(false);
+	globalGuideControls->setEnabled(false);
 	horizontalAutoGapSpin->setMinimum(0.0);
 	horizontalAutoGapSpin->setMaximum(10000.0);
 	verticalAutoGapSpin->setMinimum(0.0);
@@ -48,6 +50,18 @@
 	horizontalAutoCountSpin->setDecimals(0);
 	verticalAutoCountSpin->setDecimals(0);
 
+	IconManager& im = IconManager::instance();
+	addHorButton->setIcon(im.loadIcon("list-add"));
+	delHorButton->setIcon(im.loadIcon("edit-delete"));
+	addVerButton->setIcon(im.loadIcon("list-add"));
+	delVerButton->setIcon(im.loadIcon("edit-delete"));
+	horizontalPageAutoButton->setIcon(im.loadIcon("align-to-page"));
+	horizontalMarginsAutoButton->setIcon(im.loadIcon("align-to-margin"));
+	horizontalSelectionAutoButton->setIcon(im.loadIcon("align-to-last-selection"));
+	verticalPageAutoButton->setIcon(im.loadIcon("align-to-page"));
+	verticalMarginsAutoButton->setIcon(im.loadIcon("align-to-margin"));
+	verticalSelectionAutoButton->setIcon(im.loadIcon("align-to-last-selection"));
+
 	// MVC
 	horizontalModel = new GuidesModel(this);
 	verticalModel = new GuidesModel(this);
@@ -122,6 +136,7 @@
 	if (!m_doc)
 		currentPage = nullptr;
 	tabWidget->setEnabled(doc != nullptr);
+	globalGuideControls->setEnabled(doc != nullptr);
 }
 
 void GuideManager::setVisible(bool visible)
@@ -243,20 +258,14 @@
 	if (!m_doc)
 		return;
 
-	// a little bit magic to get Verticals (unit) into group boxes
-	horizontalGroupBox->setTitle(horizontalGroupBox->title().remove(" ("+suffix.trimmed()+")"));
-	verticalGroupBox->setTitle(verticalGroupBox->title().remove(" ("+suffix.trimmed()+")"));
 	docUnitIndex = m_doc->unitIndex();
 	int docUnitDecimals = unitGetPrecisionFromIndex(docUnitIndex);
 
 	QSignalBlocker horizontalAutoGapSpinBlock(horizontalAutoGapSpin);
 	QSignalBlocker verticalAutoGapSpinBlock(verticalAutoGapSpin);
-	suffix = unitGetSuffixFromIndex(docUnitIndex);
 	horizontalAutoGapSpin->setNewUnit(docUnitIndex);
 	verticalAutoGapSpin->setNewUnit(docUnitIndex);
 
-	horizontalGroupBox->setTitle(horizontalGroupBox->title() + " ("+suffix.trimmed()+")");
-	verticalGroupBox->setTitle(verticalGroupBox->title() + " ("+suffix.trimmed()+")");
 	// models display
 	horizontalModel->unitChange(docUnitIndex, docUnitDecimals, m_doc->rulerYoffset);
 	verticalModel->unitChange(docUnitIndex, docUnitDecimals, m_doc->rulerXoffset);
Index: scribus/ui/guidemanager.h
===================================================================
--- scribus/ui/guidemanager.h	(revision 27816)
+++ scribus/ui/guidemanager.h	(working copy)
@@ -92,9 +92,6 @@
 	//! \brief Document measurements and metrics
 	int docUnitIndex { 0 };
 
-	//! \brief suffix of the unit [mm, ...]
-	QString suffix;
-
 	/*! \brief Copy guides from currentPage to all remaining.
 	All gudes are deleted before copying.
 	\param t a type to clear and copy.*/
Index: scribus/guidesmodel.cpp
===================================================================
--- scribus/guidesmodel.cpp	(revision 27816)
+++ scribus/guidesmodel.cpp	(working copy)
@@ -43,7 +43,7 @@
 		return QVariant(l.toString(pts2value(m_values.at(index.row()) - m_rule,
 											  m_docUnitIndex), 'f',
 											  m_docUnitDecimals)
-						);
+						+ unitGetSuffixFromIndex(m_docUnitIndex));
 	}
 	if (role == Qt::EditRole)
 		return pts2value(m_values.at(index.row()) - m_rule, m_docUnitIndex);
guidemanager-ui-v1.95.patch (37,874 bytes)   

Issue History

Date Modified Username Field Change
2026-09-01 06:35 qirat New Issue
2026-09-01 06:35 qirat Tag Attached: #please_test
2026-09-01 06:35 qirat File Added: guidemanager-ui-v1.93.patch
2026-09-01 06:35 qirat File Added: guides-manager-tab1-PROPOSED.png
2026-09-01 06:35 qirat File Added: guides-manager-tab2-PROPOSED.png
2026-09-01 11:20 utnik Note Added: 0054393
2026-09-01 12:23 qirat Note Added: 0054394
2026-09-01 12:23 qirat File Added: guidemanager-ui-v1.94.patch
2026-09-07 11:51 qirat Note Added: 0054434
2026-09-07 11:51 qirat File Added: guidemanager-ui-v1.95.patch