View Issue Details

IDProjectCategoryView StatusLast Update
0017959ScribusUser Interfacepublic2026-08-31 14:08
Reporterbuttar Assigned To 
PrioritynormalSeverityminorReproducibilityN/A
Status newResolutionopen 
PlatformLinuxOSFedora WorkstationOS Version44
Product Version1.7.4.svn 
Summary0017959: [patch] Guides Preferences UI polish
Description- Reworks `prefs_guidesbase.ui` from a tabbed layout into a single-column, scrollable preferences flow.
- Groups controls into General, Page grid, Baseline grid, Stacking order, and Colours.
- Uses Scribus `FormWidget` for compact below-control captions on grid/interactions fields, matching existing Style Manager UI patterns.
- Aligns the General and Page-grid field columns so Snap Distance / Grab Radius line up with Major Spacing / Minor Spacing.
- Keeps the Page-grid type field wide enough for longer options without clipping.
- Moves all colour controls into a dedicated Colours group and retains compact swatches.
- Makes the Stacking-order list compact and keeps Up/Down controls close to the list.
- Converts stacking controls to icon-only `QToolButton`s with tooltips and accessible names.
- Revises tooltip wording for accuracy and removes stale restart language.
- Adds explicit TAB order matching the final visual flow and resolves mnemonic conflicts.
- No preference schema/storage changes and no unrelated behaviour changes.
Additional Information+Screenshots with current and proposed UIs.
Tags#please_test
Attached Files
guides-prefs-ui-CURRENT.png (323,327 bytes)   
guides-prefs-ui-CURRENT.png (323,327 bytes)   
guides-prefs-ui-PROPOSED.png (346,792 bytes)   
guides-prefs-ui-PROPOSED.png (346,792 bytes)   
guides-ui-preferences-r27798-v1.91.patch (49,959 bytes)   
Index: scribus/ui/preferences/prefs_guidesbase.ui
===================================================================
--- scribus/ui/preferences/prefs_guidesbase.ui	(revision 27798)
+++ scribus/ui/preferences/prefs_guidesbase.ui	(working copy)
@@ -10,7 +10,7 @@
     <height>603</height>
    </rect>
   </property>
-  <layout class="QVBoxLayout" name="verticalLayout_2">
+  <layout class="QVBoxLayout" name="mainLayout">
    <property name="leftMargin">
     <number>0</number>
    </property>
@@ -24,7 +24,7 @@
     <number>0</number>
    </property>
    <item>
-    <widget class="QLabel" name="label">
+    <widget class="QLabel" name="titleLabel">
      <property name="font">
       <font>
        <pointsize>14</pointsize>
@@ -38,141 +38,108 @@
     </widget>
    </item>
    <item>
-    <widget class="Line" name="line">
+    <widget class="Line" name="titleLine">
      <property name="orientation">
       <enum>Qt::Horizontal</enum>
      </property>
     </widget>
    </item>
    <item>
-    <widget class="QTabWidget" name="tabWidget">
-     <property name="currentIndex">
-      <number>0</number>
+    <widget class="QScrollArea" name="scrollArea">
+     <property name="frameShape">
+      <enum>QFrame::NoFrame</enum>
      </property>
-     <widget class="QWidget" name="tab">
-      <attribute name="title">
-       <string>Placement</string>
-      </attribute>
-      <layout class="QVBoxLayout" name="verticalLayout_7">
-       <item>
-        <widget class="QLabel" name="label_2">
-         <property name="font">
-          <font>
-           <weight>75</weight>
-           <bold>true</bold>
-          </font>
-         </property>
-         <property name="text">
-          <string>Placement</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="Line" name="line_3">
-         <property name="orientation">
-          <enum>Qt::Horizontal</enum>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <layout class="QHBoxLayout" name="horizontalLayout">
-         <item>
-          <widget class="QListWidget" name="guidePlacementListBox">
-           <property name="maximumSize">
-            <size>
-             <width>16777215</width>
-             <height>200</height>
-            </size>
-           </property>
-           <property name="dragDropMode">
-            <enum>QAbstractItemView::NoDragDrop</enum>
-           </property>
-           <property name="layoutMode">
-            <enum>QListView::SinglePass</enum>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <layout class="QVBoxLayout" name="verticalLayout_6">
-           <item>
-            <spacer name="verticalSpacer_5">
-             <property name="orientation">
-              <enum>Qt::Vertical</enum>
-             </property>
-             <property name="sizeHint" stdset="0">
-              <size>
-               <width>20</width>
-               <height>18</height>
-              </size>
-             </property>
-            </spacer>
-           </item>
-           <item>
-            <layout class="QVBoxLayout" name="verticalLayout">
-             <property name="sizeConstraint">
-              <enum>QLayout::SetMinimumSize</enum>
+     <property name="horizontalScrollBarPolicy">
+      <enum>Qt::ScrollBarAlwaysOff</enum>
+     </property>
+     <property name="widgetResizable">
+      <bool>true</bool>
+     </property>
+     <widget class="QWidget" name="scrollAreaWidgetContents">
+      <property name="geometry">
+       <rect>
+        <x>0</x>
+        <y>0</y>
+        <width>745</width>
+        <height>720</height>
+       </rect>
+      </property>
+      <layout class="QVBoxLayout" name="contentLayout">
+       <property name="sizeConstraint">
+        <enum>QLayout::SetMinimumSize</enum>
+       </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="QGroupBox" name="generalGroupBox">
+         <property name="title">
+          <string>&amp;General</string>
+         </property>
+         <layout class="QHBoxLayout" name="generalLayout">
+          <property name="spacing">
+           <number>8</number>
+          </property>
+          <item>
+           <widget class="QWidget" name="generalVisibilityWidget" native="true">
+            <layout class="QVBoxLayout" name="generalVisibilityLayout">
+             <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="QPushButton" name="buttonUp">
-               <property name="enabled">
-                <bool>false</bool>
-               </property>
-               <property name="sizePolicy">
-                <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
-                 <horstretch>0</horstretch>
-                 <verstretch>0</verstretch>
-                </sizepolicy>
-               </property>
+              <widget class="QCheckBox" name="visibilityGuidesCheckBox">
                <property name="text">
-                <string/>
+                <string>Show guides</string>
                </property>
               </widget>
              </item>
              <item>
-              <widget class="QPushButton" name="buttonDown">
-               <property name="enabled">
-                <bool>false</bool>
-               </property>
-               <property name="sizePolicy">
-                <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
-                 <horstretch>0</horstretch>
-                 <verstretch>0</verstretch>
-                </sizepolicy>
-               </property>
+              <widget class="QCheckBox" name="visibilityMarginsCheckBox">
                <property name="text">
-                <string/>
+                <string>Show margins</string>
                </property>
               </widget>
              </item>
             </layout>
-           </item>
-           <item>
-            <spacer name="verticalSpacer_6">
-             <property name="orientation">
-              <enum>Qt::Vertical</enum>
-             </property>
-             <property name="sizeHint" stdset="0">
-              <size>
-               <width>20</width>
-               <height>40</height>
-              </size>
-             </property>
-            </spacer>
-           </item>
-          </layout>
-         </item>
-         <item>
-          <layout class="QVBoxLayout" name="verticalLayout_5">
-           <item>
-            <layout class="QGridLayout" name="gridLayout">
-             <item row="0" column="0">
-              <widget class="QLabel" name="label_4">
-               <property name="text">
-                <string>Snap Distance:</string>
-               </property>
-              </widget>
-             </item>
-             <item row="0" column="1">
+           </widget>
+          </item>
+          <item>
+           <widget class="FormWidget" name="guideSnapDistanceFormWidget">
+            <property name="label" stdset="0">
+             <string>Snap Distance</string>
+            </property>
+            <layout class="QHBoxLayout" name="snapDistanceLayout">
+             <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="guideSnapDistanceSpinBox">
                <property name="suffix">
                 <string> px</string>
@@ -185,14 +152,28 @@
                </property>
               </widget>
              </item>
-             <item row="1" column="0">
-              <widget class="QLabel" name="label_3">
-               <property name="text">
-                <string>Grab Radius:</string>
-               </property>
-              </widget>
-             </item>
-             <item row="1" column="1">
+            </layout>
+           </widget>
+          </item>
+          <item>
+           <widget class="FormWidget" name="guideGrabRadiusFormWidget">
+            <property name="label" stdset="0">
+             <string>Grab Radius</string>
+            </property>
+            <layout class="QHBoxLayout" name="grabRadiusLayout">
+             <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="guideGrabRadiusSpinBox">
                <property name="suffix">
                 <string> px</string>
@@ -206,349 +187,575 @@
               </widget>
              </item>
             </layout>
-           </item>
-           <item>
-            <spacer name="verticalSpacer_3">
-             <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>20</height>
-              </size>
-             </property>
-            </spacer>
-           </item>
-          </layout>
-         </item>
-         <item>
-          <spacer name="horizontalSpacer">
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>40</width>
-             <height>20</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
-        </layout>
+           </widget>
+          </item>
+          <item>
+           <spacer name="generalSpacer">
+            <property name="orientation">
+             <enum>Qt::Horizontal</enum>
+            </property>
+            <property name="sizeType">
+             <enum>QSizePolicy::Expanding</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>40</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+         </layout>
+        </widget>
        </item>
        <item>
-        <spacer name="verticalSpacer_4">
-         <property name="orientation">
-          <enum>Qt::Vertical</enum>
-         </property>
-         <property name="sizeType">
-          <enum>QSizePolicy::Fixed</enum>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>20</width>
-           <height>20</height>
-          </size>
-         </property>
-        </spacer>
+        <widget class="QGroupBox" name="pageGridGroupBox">
+         <property name="title">
+          <string>&amp;Page grid</string>
+         </property>
+         <layout class="QVBoxLayout" name="pageGridLayout">
+          <item>
+           <widget class="QCheckBox" name="visibilityGridCheckBox">
+            <property name="text">
+             <string>Show page grid</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <layout class="QHBoxLayout" name="pageGridFieldsLayout">
+            <property name="spacing">
+             <number>8</number>
+            </property>
+            <item>
+             <widget class="FormWidget" name="gridTypeFormWidget">
+              <property name="label" stdset="0">
+               <string>Type</string>
+              </property>
+              <layout class="QHBoxLayout" name="gridTypeLayout">
+               <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="QComboBox" name="gridTypeCombo">
+                 <property name="enabled">
+                  <bool>false</bool>
+                 </property>
+                </widget>
+               </item>
+              </layout>
+             </widget>
+            </item>
+            <item>
+             <widget class="FormWidget" name="majorGridSpacingFormWidget">
+              <property name="label" stdset="0">
+               <string>Major Spacing</string>
+              </property>
+              <layout class="QHBoxLayout" name="majorGridSpacingLayout">
+               <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="majorGridSpacingSpinBox"/>
+               </item>
+              </layout>
+             </widget>
+            </item>
+            <item>
+             <widget class="FormWidget" name="minorGridSpacingFormWidget">
+              <property name="label" stdset="0">
+               <string>Minor Spacing</string>
+              </property>
+              <layout class="QHBoxLayout" name="minorGridSpacingLayout">
+               <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="minorGridSpacingSpinBox"/>
+               </item>
+              </layout>
+             </widget>
+            </item>
+            <item>
+             <spacer name="pageGridSpacer">
+              <property name="orientation">
+               <enum>Qt::Horizontal</enum>
+              </property>
+              <property name="sizeType">
+               <enum>QSizePolicy::Expanding</enum>
+              </property>
+              <property name="sizeHint" stdset="0">
+               <size>
+                <width>40</width>
+                <height>20</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+           </layout>
+          </item>
+         </layout>
+        </widget>
        </item>
        <item>
-        <widget class="QLabel" name="label_7">
-         <property name="font">
-          <font>
-           <weight>75</weight>
-           <bold>true</bold>
-          </font>
-         </property>
-         <property name="text">
-          <string>Distances</string>
-         </property>
+        <widget class="QGroupBox" name="baselineGridGroupBox">
+         <property name="title">
+          <string>&amp;Baseline grid</string>
+         </property>
+         <layout class="QVBoxLayout" name="baselineGridLayout">
+          <item>
+           <widget class="QCheckBox" name="visibilityBaselineGridCheckBox">
+            <property name="text">
+             <string>Show baseline grid</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <layout class="QHBoxLayout" name="baselineGridFieldsLayout">
+            <property name="spacing">
+             <number>8</number>
+            </property>
+            <item>
+             <widget class="FormWidget" name="baselineGridSpacingFormWidget">
+              <property name="label" stdset="0">
+               <string>Spacing</string>
+              </property>
+              <layout class="QHBoxLayout" name="baselineGridSpacingLayout">
+               <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="baselineGridSpacingSpinBox">
+                 <property name="minimum">
+                  <double>1.000000000000000</double>
+                 </property>
+                </widget>
+               </item>
+              </layout>
+             </widget>
+            </item>
+            <item>
+             <widget class="FormWidget" name="baselineGridOffsetFormWidget">
+              <property name="label" stdset="0">
+               <string>Offset from Top</string>
+              </property>
+              <layout class="QHBoxLayout" name="baselineGridOffsetLayout">
+               <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="baselineGridOffsetSpinBox"/>
+               </item>
+              </layout>
+             </widget>
+            </item>
+            <item>
+             <spacer name="baselineGridSpacer">
+              <property name="orientation">
+               <enum>Qt::Horizontal</enum>
+              </property>
+              <property name="sizeType">
+               <enum>QSizePolicy::Expanding</enum>
+              </property>
+              <property name="sizeHint" stdset="0">
+               <size>
+                <width>40</width>
+                <height>20</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+           </layout>
+          </item>
+         </layout>
         </widget>
        </item>
        <item>
-        <widget class="Line" name="line_2">
-         <property name="orientation">
-          <enum>Qt::Horizontal</enum>
-         </property>
+        <widget class="QGroupBox" name="stackingOrderGroupBox">
+         <property name="title">
+          <string>&amp;Stacking order</string>
+         </property>
+         <layout class="QHBoxLayout" name="stackingOrderLayout">
+          <property name="spacing">
+           <number>5</number>
+          </property>
+          <item>
+           <widget class="QListWidget" name="guidePlacementListBox">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="minimumSize">
+             <size>
+              <width>180</width>
+              <height>112</height>
+             </size>
+            </property>
+            <property name="maximumSize">
+             <size>
+              <width>260</width>
+              <height>132</height>
+             </size>
+            </property>
+            <property name="sizeAdjustPolicy">
+             <enum>QAbstractScrollArea::AdjustToContents</enum>
+            </property>
+            <property name="dragDropMode">
+             <enum>QAbstractItemView::NoDragDrop</enum>
+            </property>
+            <property name="layoutMode">
+             <enum>QListView::SinglePass</enum>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <layout class="QVBoxLayout" name="stackingButtonsLayout">
+            <item>
+             <widget class="QToolButton" name="buttonUp">
+              <property name="enabled">
+               <bool>false</bool>
+              </property>
+              <property name="text">
+               <string/>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QToolButton" name="buttonDown">
+              <property name="enabled">
+               <bool>false</bool>
+              </property>
+              <property name="text">
+               <string/>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <spacer name="stackingButtonsSpacer">
+              <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>
+          </item>
+          <item>
+           <spacer name="stackingHorizontalSpacer">
+            <property name="orientation">
+             <enum>Qt::Horizontal</enum>
+            </property>
+            <property name="sizeType">
+             <enum>QSizePolicy::Expanding</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>40</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+         </layout>
         </widget>
        </item>
        <item>
-        <layout class="QHBoxLayout" name="horizontalLayout_2">
-         <item>
-          <layout class="QGridLayout" name="gridLayout_2">
-           <item row="0" column="0">
-            <widget class="QLabel" name="majorGridSpacingLabel">
-             <property name="text">
-              <string>Major Grid Spacing:</string>
-             </property>
-            </widget>
-           </item>
-           <item row="0" column="1">
-            <widget class="ScrSpinBox" name="majorGridSpacingSpinBox"/>
-           </item>
-           <item row="1" column="0">
-            <widget class="QLabel" name="minorGridSpacingLabel">
-             <property name="text">
-              <string>Minor Grid Spacing:</string>
-             </property>
-            </widget>
-           </item>
-           <item row="1" column="1">
-            <widget class="ScrSpinBox" name="minorGridSpacingSpinBox"/>
-           </item>
-           <item row="2" column="0">
-            <widget class="QLabel" name="baselineGridSpacingLabel">
-             <property name="text">
-              <string>Baseline Grid Spacing:</string>
-             </property>
-            </widget>
-           </item>
-           <item row="2" column="1">
-            <widget class="ScrSpinBox" name="baselineGridSpacingSpinBox">
-             <property name="minimum">
-              <double>1.000000000000000</double>
-             </property>
-            </widget>
-           </item>
-           <item row="3" column="0">
-            <widget class="QLabel" name="baselineGridOffsetLabel">
-             <property name="text">
-              <string>Baseline Grid Offset:</string>
-             </property>
-            </widget>
-           </item>
-           <item row="3" column="1">
-            <widget class="ScrSpinBox" name="baselineGridOffsetSpinBox"/>
-           </item>
-          </layout>
-         </item>
-         <item>
-          <spacer name="horizontalSpacer_2">
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>40</width>
-             <height>20</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
-        </layout>
+        <widget class="QGroupBox" name="colorsGroupBox">
+         <property name="title">
+          <string>Co&amp;lors</string>
+         </property>
+         <layout class="QFormLayout" name="colorsLayout">
+          <property name="fieldGrowthPolicy">
+           <enum>QFormLayout::FieldsStayAtSizeHint</enum>
+          </property>
+          <item row="0" column="0">
+           <widget class="QLabel" name="guideColorLabel">
+            <property name="text">
+             <string>Guides:</string>
+            </property>
+            <property name="buddy">
+             <cstring>guideColorPushButton</cstring>
+            </property>
+           </widget>
+          </item>
+          <item row="0" column="1">
+           <widget class="QPushButton" name="guideColorPushButton">
+            <property name="minimumSize">
+             <size>
+              <width>40</width>
+              <height>22</height>
+             </size>
+            </property>
+            <property name="maximumSize">
+             <size>
+              <width>40</width>
+              <height>22</height>
+             </size>
+            </property>
+            <property name="iconSize">
+             <size>
+              <width>30</width>
+              <height>12</height>
+             </size>
+            </property>
+            <property name="text">
+             <string/>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="0">
+           <widget class="QLabel" name="marginColorLabel">
+            <property name="text">
+             <string>Margins:</string>
+            </property>
+            <property name="buddy">
+             <cstring>marginColorPushButton</cstring>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="1">
+           <widget class="QPushButton" name="marginColorPushButton">
+            <property name="minimumSize">
+             <size>
+              <width>40</width>
+              <height>22</height>
+             </size>
+            </property>
+            <property name="maximumSize">
+             <size>
+              <width>40</width>
+              <height>22</height>
+             </size>
+            </property>
+            <property name="iconSize">
+             <size>
+              <width>30</width>
+              <height>12</height>
+             </size>
+            </property>
+            <property name="text">
+             <string/>
+            </property>
+           </widget>
+          </item>
+          <item row="2" column="0">
+           <widget class="QLabel" name="majorGridColorLabel">
+            <property name="text">
+             <string>Major grid:</string>
+            </property>
+            <property name="buddy">
+             <cstring>majorGridColorPushButton</cstring>
+            </property>
+           </widget>
+          </item>
+          <item row="2" column="1">
+           <widget class="QPushButton" name="majorGridColorPushButton">
+            <property name="minimumSize">
+             <size>
+              <width>40</width>
+              <height>22</height>
+             </size>
+            </property>
+            <property name="maximumSize">
+             <size>
+              <width>40</width>
+              <height>22</height>
+             </size>
+            </property>
+            <property name="iconSize">
+             <size>
+              <width>30</width>
+              <height>12</height>
+             </size>
+            </property>
+            <property name="text">
+             <string/>
+            </property>
+           </widget>
+          </item>
+          <item row="3" column="0">
+           <widget class="QLabel" name="minorGridColorLabel">
+            <property name="text">
+             <string>Minor grid:</string>
+            </property>
+            <property name="buddy">
+             <cstring>minorGridColorPushButton</cstring>
+            </property>
+           </widget>
+          </item>
+          <item row="3" column="1">
+           <widget class="QPushButton" name="minorGridColorPushButton">
+            <property name="minimumSize">
+             <size>
+              <width>40</width>
+              <height>22</height>
+             </size>
+            </property>
+            <property name="maximumSize">
+             <size>
+              <width>40</width>
+              <height>22</height>
+             </size>
+            </property>
+            <property name="iconSize">
+             <size>
+              <width>30</width>
+              <height>12</height>
+             </size>
+            </property>
+            <property name="text">
+             <string/>
+            </property>
+           </widget>
+          </item>
+          <item row="4" column="0">
+           <widget class="QLabel" name="baselineGridColorLabel">
+            <property name="text">
+             <string>Baseline grid:</string>
+            </property>
+            <property name="buddy">
+             <cstring>baselineGridColorPushButton</cstring>
+            </property>
+           </widget>
+          </item>
+          <item row="4" column="1">
+           <widget class="QPushButton" name="baselineGridColorPushButton">
+            <property name="minimumSize">
+             <size>
+              <width>40</width>
+              <height>22</height>
+             </size>
+            </property>
+            <property name="maximumSize">
+             <size>
+              <width>40</width>
+              <height>22</height>
+             </size>
+            </property>
+            <property name="iconSize">
+             <size>
+              <width>30</width>
+              <height>12</height>
+             </size>
+            </property>
+            <property name="text">
+             <string/>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </widget>
        </item>
        <item>
-        <spacer name="verticalSpacer">
+        <spacer name="bottomSpacer">
          <property name="orientation">
           <enum>Qt::Vertical</enum>
          </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>20</width>
-           <height>31</height>
-          </size>
-         </property>
-        </spacer>
-       </item>
-      </layout>
-     </widget>
-     <widget class="QWidget" name="tab_2">
-      <attribute name="title">
-       <string>Visibility</string>
-      </attribute>
-      <layout class="QVBoxLayout" name="verticalLayout_3">
-       <item>
-        <layout class="QHBoxLayout" name="horizontalLayout_3">
-         <item>
-          <layout class="QGridLayout" name="gridLayout_3" rowminimumheight="20,20,20,20">
-           <item row="0" column="0">
-            <widget class="QCheckBox" name="visibilityGuidesCheckBox">
-             <property name="text">
-              <string>Guides</string>
-             </property>
-            </widget>
-           </item>
-           <item row="1" column="0">
-            <widget class="QCheckBox" name="visibilityMarginsCheckBox">
-             <property name="sizePolicy">
-              <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
-               <horstretch>0</horstretch>
-               <verstretch>0</verstretch>
-              </sizepolicy>
-             </property>
-             <property name="text">
-              <string>Margins</string>
-             </property>
-             <property name="iconSize">
-              <size>
-               <width>16</width>
-               <height>16</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-           <item row="2" column="0">
-            <widget class="QCheckBox" name="visibilityGridCheckBox">
-             <property name="text">
-              <string>Page Grid</string>
-             </property>
-            </widget>
-           </item>
-           <item row="2" column="1">
-            <widget class="QLabel" name="label_8">
-             <property name="text">
-              <string>Type:</string>
-             </property>
-            </widget>
-           </item>
-           <item row="2" column="2">
-            <widget class="QComboBox" name="gridTypeCombo">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-             <property name="frame">
-              <bool>true</bool>
-             </property>
-            </widget>
-           </item>
-           <item row="3" column="0">
-            <widget class="QCheckBox" name="visibilityBaselineGridCheckBox">
-             <property name="text">
-              <string>Baseline Grid</string>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </item>
-         <item>
-          <spacer name="horizontalSpacer_3">
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>40</width>
-             <height>20</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
-        </layout>
-       </item>
-       <item>
-        <spacer name="verticalSpacer_2">
-         <property name="orientation">
-          <enum>Qt::Vertical</enum>
+         <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>
        </item>
       </layout>
      </widget>
-     <widget class="QWidget" name="tabColors">
-      <attribute name="title">
-       <string>Colors</string>
-      </attribute>
-      <layout class="QVBoxLayout" name="verticalLayout_4">
-       <item>
-        <layout class="QFormLayout" name="formLayout_2">
-         <property name="fieldGrowthPolicy">
-          <enum>QFormLayout::FieldsStayAtSizeHint</enum>
-         </property>
-         <item row="0" column="0">
-          <widget class="QLabel" name="label_15">
-           <property name="text">
-            <string>Guides:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="1">
-          <widget class="QPushButton" name="guideColorPushButton">
-           <property name="text">
-            <string/>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="0">
-          <widget class="QLabel" name="label_12">
-           <property name="text">
-            <string>Margins:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="1">
-          <widget class="QPushButton" name="marginColorPushButton">
-           <property name="text">
-            <string/>
-           </property>
-          </widget>
-         </item>
-         <item row="2" column="0">
-          <widget class="QLabel" name="label_13">
-           <property name="text">
-            <string>Major Grid:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="2" column="1">
-          <widget class="QPushButton" name="majorGridColorPushButton">
-           <property name="text">
-            <string/>
-           </property>
-          </widget>
-         </item>
-         <item row="3" column="0">
-          <widget class="QLabel" name="label_16">
-           <property name="text">
-            <string>Minor Grid:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="3" column="1">
-          <widget class="QPushButton" name="minorGridColorPushButton">
-           <property name="text">
-            <string/>
-           </property>
-          </widget>
-         </item>
-         <item row="4" column="0">
-          <widget class="QLabel" name="label_14">
-           <property name="text">
-            <string>Baseline Grid:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="4" column="1">
-          <widget class="QPushButton" name="baselineGridColorPushButton">
-           <property name="text">
-            <string/>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </item>
-      </layout>
-     </widget>
     </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>ui/scrspinbox.h</header>
   </customwidget>
  </customwidgets>
+ <tabstops>
+  <tabstop>visibilityGuidesCheckBox</tabstop>
+  <tabstop>visibilityMarginsCheckBox</tabstop>
+  <tabstop>guideSnapDistanceSpinBox</tabstop>
+  <tabstop>guideGrabRadiusSpinBox</tabstop>
+  <tabstop>visibilityGridCheckBox</tabstop>
+  <tabstop>gridTypeCombo</tabstop>
+  <tabstop>majorGridSpacingSpinBox</tabstop>
+  <tabstop>minorGridSpacingSpinBox</tabstop>
+  <tabstop>visibilityBaselineGridCheckBox</tabstop>
+  <tabstop>baselineGridSpacingSpinBox</tabstop>
+  <tabstop>baselineGridOffsetSpinBox</tabstop>
+  <tabstop>guidePlacementListBox</tabstop>
+  <tabstop>buttonUp</tabstop>
+  <tabstop>buttonDown</tabstop>
+  <tabstop>guideColorPushButton</tabstop>
+  <tabstop>marginColorPushButton</tabstop>
+  <tabstop>majorGridColorPushButton</tabstop>
+  <tabstop>minorGridColorPushButton</tabstop>
+  <tabstop>baselineGridColorPushButton</tabstop>
+ </tabstops>
  <resources/>
  <connections/>
-</ui>
+</ui>
\ No newline at end of file
Index: scribus/ui/preferences/prefs_guides.cpp
===================================================================
--- scribus/ui/preferences/prefs_guides.cpp	(revision 27798)
+++ scribus/ui/preferences/prefs_guides.cpp	(working copy)
@@ -15,6 +15,39 @@
 #include "ui/preferences/prefs_guides.h"
 #include "units.h"
 
+namespace
+{
+void alignGuideFieldColumns(QWidget* visibilityWidget, QWidget* typeWidget,
+                            QWidget* snapWidget, QWidget* majorSpacingWidget,
+                            QWidget* grabWidget, QWidget* minorSpacingWidget)
+{
+	visibilityWidget->setMinimumWidth(0);
+	visibilityWidget->setMaximumWidth(QWIDGETSIZE_MAX);
+	typeWidget->setMinimumWidth(0);
+	typeWidget->setMaximumWidth(QWIDGETSIZE_MAX);
+	snapWidget->setMinimumWidth(0);
+	snapWidget->setMaximumWidth(QWIDGETSIZE_MAX);
+	majorSpacingWidget->setMinimumWidth(0);
+	majorSpacingWidget->setMaximumWidth(QWIDGETSIZE_MAX);
+	grabWidget->setMinimumWidth(0);
+	grabWidget->setMaximumWidth(QWIDGETSIZE_MAX);
+	minorSpacingWidget->setMinimumWidth(0);
+	minorSpacingWidget->setMaximumWidth(QWIDGETSIZE_MAX);
+
+	constexpr int firstColumnExtraWidth = 40;
+	const int firstColumnWidth = qMax(visibilityWidget->sizeHint().width(), typeWidget->sizeHint().width()) + firstColumnExtraWidth;
+	const int secondColumnWidth = qMax(snapWidget->sizeHint().width(), majorSpacingWidget->sizeHint().width());
+	const int thirdColumnWidth = qMax(grabWidget->sizeHint().width(), minorSpacingWidget->sizeHint().width());
+
+	visibilityWidget->setFixedWidth(firstColumnWidth);
+	typeWidget->setFixedWidth(firstColumnWidth);
+	snapWidget->setFixedWidth(secondColumnWidth);
+	majorSpacingWidget->setFixedWidth(secondColumnWidth);
+	grabWidget->setFixedWidth(thirdColumnWidth);
+	minorSpacingWidget->setFixedWidth(thirdColumnWidth);
+}
+}
+
 Prefs_Guides::Prefs_Guides(QWidget* parent, ScribusDoc* doc)
 	: Prefs_Pane(parent)
 {
@@ -58,13 +91,13 @@
 		QListWidgetItem *item(nullptr);
 		int it = renderStackOrder.at(r);
 		if (it == 4)
-			item = new QListWidgetItem( tr("Content Objects"), guidePlacementListBox);
+			item = new QListWidgetItem( tr("Content objects"), guidePlacementListBox);
 		else if (it == 3)
 			item = new QListWidgetItem( tr("Guides"), guidePlacementListBox);
 		else if (it == 2)
-			item = new QListWidgetItem( tr("Grid"), guidePlacementListBox);
+			item = new QListWidgetItem( tr("Page grid"), guidePlacementListBox);
 		else if (it == 1)
-			item = new QListWidgetItem( tr("Baseline Grid"), guidePlacementListBox);
+			item = new QListWidgetItem( tr("Baseline grid"), guidePlacementListBox);
 		else if (it == 0)
 			item = new QListWidgetItem( tr("Margins"), guidePlacementListBox);
 		if (item)
@@ -76,29 +109,49 @@
 	int grTy = gridTypeCombo->currentIndex();
 	gridTypeCombo->clear();
 	gridTypeCombo->addItem( tr("Lines"));
-	gridTypeCombo->addItem( tr("Crosses and Dots"));
+	gridTypeCombo->addItem( tr("Crosses and dots"));
 	gridTypeCombo->setCurrentIndex(grTy);
 
 	QString pxSuffix = QString(" %1").arg(CommonStrings::trStrPX);
 	guideSnapDistanceSpinBox->setSuffix(pxSuffix);
 	guideGrabRadiusSpinBox->setSuffix(pxSuffix);
 
-	guidePlacementListBox->setToolTip( tr( "Place guides in front of or behind objects on the page" ) );
-	minorGridSpacingSpinBox->setToolTip( tr( "Distance between the minor grid lines" ) );
-	majorGridSpacingSpinBox->setToolTip( tr( "Distance between the major grid lines" ) );
-	guideSnapDistanceSpinBox->setToolTip(  "<qt>" + tr( "Distance within which an object will snap to your placed guides. After setting this you will need to restart Scribus to set this setting." ) + "</qt>");
-	guideGrabRadiusSpinBox->setToolTip( "<qt>" + tr( "Radius of the area where Scribus will allow you to grab an objects handles. After setting this you will need to restart Scribus to set this setting." ) + "</qt>");
-	minorGridColorPushButton->setToolTip( tr( "Color of the minor grid lines" ) );
-	majorGridColorPushButton->setToolTip( tr( "Color of the major grid lines" ) );
-	guideColorPushButton->setToolTip( tr( "Color of the guide lines you insert" ) );
-	marginColorPushButton->setToolTip( tr( "Color for the margin lines" ) );
-	baselineGridColorPushButton->setToolTip( tr( "Color for the baseline grid" ) );
-	visibilityBaselineGridCheckBox->setToolTip( tr("Turns the basegrid on or off"));
-	baselineGridSpacingSpinBox->setToolTip( tr("Distance between the lines of the baseline grid"));
-	baselineGridOffsetSpinBox->setToolTip( tr("Distance from the top of the page for the first baseline"));
-	visibilityGridCheckBox->setToolTip( tr("Turns the gridlines on or off"));
-	visibilityGuidesCheckBox->setToolTip( tr("Turns the guides on or off"));
-	visibilityMarginsCheckBox->setToolTip( tr("Turns the margins on or off"));
+	guidePlacementListBox->setToolTip(tr("Set the front-to-back stacking order of guides, grids, margins, and page content."));
+	guidePlacementListBox->setAccessibleName(tr("Stacking order"));
+	buttonUp->setToolTip(tr("Move the selected item forward in the stacking order."));
+	buttonUp->setAccessibleName(tr("Move selected item forward"));
+	buttonDown->setToolTip(tr("Move the selected item backward in the stacking order."));
+	buttonDown->setAccessibleName(tr("Move selected item backward"));
+
+	gridTypeCombo->setToolTip(tr("Choose how the page grid is displayed."));
+	gridTypeCombo->setAccessibleName(tr("Page grid type"));
+	majorGridSpacingSpinBox->setToolTip(tr("Set the distance between major grid lines."));
+	majorGridSpacingSpinBox->setAccessibleName(tr("Major grid spacing"));
+	minorGridSpacingSpinBox->setToolTip(tr("Set the distance between minor grid lines."));
+	minorGridSpacingSpinBox->setAccessibleName(tr("Minor grid spacing"));
+	baselineGridSpacingSpinBox->setToolTip(tr("Set the distance between baseline grid lines."));
+	baselineGridSpacingSpinBox->setAccessibleName(tr("Baseline grid spacing"));
+	baselineGridOffsetSpinBox->setToolTip(tr("Set the distance from the top of the page to the first baseline."));
+	baselineGridOffsetSpinBox->setAccessibleName(tr("Baseline grid offset"));
+	guideSnapDistanceSpinBox->setToolTip(tr("Maximum distance used when snapping to guides, grids, page boundaries, and other objects."));
+	guideSnapDistanceSpinBox->setAccessibleName(tr("Snap distance"));
+	guideGrabRadiusSpinBox->setToolTip(tr("Radius used to detect nearby handles, guides, and other interactive points."));
+	guideGrabRadiusSpinBox->setAccessibleName(tr("Grab radius"));
+
+	guideColorPushButton->setToolTip(tr("Choose the color used for guides."));
+	guideColorPushButton->setAccessibleName(tr("Guide color"));
+	marginColorPushButton->setToolTip(tr("Choose the color used for margins."));
+	marginColorPushButton->setAccessibleName(tr("Margin color"));
+	majorGridColorPushButton->setToolTip(tr("Choose the color used for major grid lines."));
+	majorGridColorPushButton->setAccessibleName(tr("Major grid color"));
+	minorGridColorPushButton->setToolTip(tr("Choose the color used for minor grid lines."));
+	minorGridColorPushButton->setAccessibleName(tr("Minor grid color"));
+	baselineGridColorPushButton->setToolTip(tr("Choose the color used for baseline grid lines."));
+	baselineGridColorPushButton->setAccessibleName(tr("Baseline grid color"));
+
+	alignGuideFieldColumns(generalVisibilityWidget, gridTypeFormWidget,
+	                       guideSnapDistanceFormWidget, majorGridSpacingFormWidget,
+	                       guideGrabRadiusFormWidget, minorGridSpacingFormWidget);
 }
 
 void Prefs_Guides::unitChange(int unitIndex)
@@ -111,6 +164,10 @@
 	minorGridSpacingSpinBox->setMinimum(unitRatio);
 	majorGridSpacingSpinBox->setMaximum(1000 * unitRatio);
 	minorGridSpacingSpinBox->setMaximum(1000 * unitRatio);
+
+	alignGuideFieldColumns(generalVisibilityWidget, gridTypeFormWidget,
+	                       guideSnapDistanceFormWidget, majorGridSpacingFormWidget,
+	                       guideGrabRadiusFormWidget, minorGridSpacingFormWidget);
 }
 
 void Prefs_Guides::restoreDefaults(struct ApplicationPrefs *prefsData)
@@ -126,13 +183,13 @@
 		QListWidgetItem *item(nullptr);
 		int it = renderStackOrder.at(r);
 		if (it == 4)
-			item = new QListWidgetItem( tr("Content Objects"), guidePlacementListBox);
+			item = new QListWidgetItem( tr("Content objects"), guidePlacementListBox);
 		else if (it == 3)
 			item = new QListWidgetItem( tr("Guides"), guidePlacementListBox);
 		else if (it == 2)
-			item = new QListWidgetItem( tr("Grid"), guidePlacementListBox);
+			item = new QListWidgetItem( tr("Page grid"), guidePlacementListBox);
 		else if (it == 1)
-			item = new QListWidgetItem( tr("Baseline Grid"), guidePlacementListBox);
+			item = new QListWidgetItem( tr("Baseline grid"), guidePlacementListBox);
 		else if (it == 0)
 			item = new QListWidgetItem( tr("Margins"), guidePlacementListBox);
 		if (item)
@@ -181,6 +238,10 @@
 	baselineGridColorPushButton->setText( QString() );
 	baselineGridColorPushButton->setIcon(pm);
 	gridTypeCombo->setEnabled(visibilityGridCheckBox->isChecked());
+
+	alignGuideFieldColumns(generalVisibilityWidget, gridTypeFormWidget,
+	                       guideSnapDistanceFormWidget, majorGridSpacingFormWidget,
+	                       guideGrabRadiusFormWidget, minorGridSpacingFormWidget);
 }
 
 void Prefs_Guides::saveGuiToPrefs(struct ApplicationPrefs *prefsData) const
PatchYes

Activities

Issue History

Date Modified Username Field Change
2026-08-31 14:08 buttar New Issue
2026-08-31 14:08 buttar Tag Attached: #please_test
2026-08-31 14:08 buttar File Added: guides-prefs-ui-CURRENT.png
2026-08-31 14:08 buttar File Added: guides-prefs-ui-PROPOSED.png
2026-08-31 14:08 buttar File Added: guides-ui-preferences-r27798-v1.91.patch