View Issue Details

IDProjectCategoryView StatusLast Update
0017949ScribusUser Interfacepublic2026-09-01 14:48
Reporterqirat Assigned To 
PrioritynormalSeverityminorReproducibilityN/A
Status newResolutionopen 
PlatformLinuxOSFedora WorkstationOS Version44
Product Version1.7.4.svn 
Summary0017949: [patch] Printer Preferences UI Polish
Description- Modernises and simplifies the Printer preferences layout.
- Groups related controls more clearly and improves overall visual balance.
- Aligns and content-sizes the printer/output combo boxes consistently.
- Cleans up wording for print mode, colour processing, page mirroring, marks, and custom print command controls.
- Improves tooltip wording and presentation.
- Reorganises Marks into a clearer checkbox/parameter layout.
- Refines Bleeds/Marks spinbox sizing, including recalculation for measurement-unit changes.
- Improves spacing, alignment, and tab order throughout.
- Keeps the work UI-only; printing behaviour is unchanged.
Additional Information+Screenshots showing current and proposed layout.
Tags#please_test
Attached Files
printer-preferences-layout-v1.16.patch (38,497 bytes)   
Index: scribus/ui/preferences/prefs_printerbase.ui
===================================================================
--- scribus/ui/preferences/prefs_printerbase.ui	(revision 27785)
+++ scribus/ui/preferences/prefs_printerbase.ui	(working copy)
@@ -47,543 +47,399 @@
     </widget>
    </item>
    <item>
-    <widget class="QScrollArea" name="scrollArea">
-     <property name="widgetResizable">
-      <bool>true</bool>
+    <layout class="QHBoxLayout" name="printerOptionsLayout" stretch="3,2">
+     <property name="spacing">
+      <number>12</number>
      </property>
-     <widget class="QWidget" name="scrollAreaWidgetContents_2">
-      <property name="geometry">
-       <rect>
-        <x>0</x>
-        <y>0</y>
-        <width>722</width>
-        <height>824</height>
-       </rect>
-      </property>
-      <layout class="QVBoxLayout" name="verticalLayout_2">
-       <item>
-        <widget class="QLabel" name="label">
-         <property name="font">
-          <font>
-           <weight>75</weight>
-           <bold>true</bold>
-          </font>
-         </property>
-         <property name="text">
-          <string>Destination</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="Line" name="line_2">
-         <property name="orientation">
-          <enum>Qt::Horizontal</enum>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QComboBox" name="destinationComboBox"/>
-       </item>
-       <item>
-        <widget class="QCheckBox" name="useAltPrinterCmdCheckBox">
-         <property name="text">
-          <string>Alternative Printer Command</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <layout class="QHBoxLayout" name="horizontalLayout">
-         <item>
-          <widget class="QLabel" name="label_2">
-           <property name="text">
-            <string>Command:</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QLineEdit" name="altPrinterCmdLineEdit"/>
-         </item>
-        </layout>
-       </item>
-       <item>
-        <spacer>
-         <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>
-       </item>
-       <item>
-        <widget class="QLabel" name="label_4">
-         <property name="font">
-          <font>
-           <weight>75</weight>
-           <bold>true</bold>
-          </font>
-         </property>
-         <property name="text">
-          <string>General Options</string>
-         </property>
+     <item>
+      <layout class="QVBoxLayout" name="leftColumnLayout">
+       <property name="spacing">
+        <number>8</number>
+       </property>
+       <item>
+        <widget class="QGroupBox" name="printerOutputGroupBox">
+         <property name="title">
+          <string>Printer &amp;&amp; &amp;Output</string>
+         </property>
+         <layout class="QVBoxLayout" name="printerOutputLayout">
+          <property name="spacing">
+           <number>8</number>
+          </property>
+          <item>
+           <layout class="QGridLayout" name="printerOutputGridLayout">
+            <property name="bottomMargin">
+             <number>4</number>
+            </property>
+            <property name="horizontalSpacing">
+             <number>12</number>
+            </property>
+            <property name="verticalSpacing">
+             <number>11</number>
+            </property>
+            <item row="0" column="0" alignment="Qt::AlignLeft">
+             <widget class="FormWidget" name="destinationFormWidget">
+              <property name="label" stdset="0">
+               <string>Destination</string>
+              </property>
+              <layout class="QHBoxLayout" name="destinationLayout">
+               <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 alignment="Qt::AlignLeft">
+                <widget class="QComboBox" name="destinationComboBox">
+                 <property name="sizePolicy">
+                  <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+                   <horstretch>0</horstretch>
+                   <verstretch>0</verstretch>
+                  </sizepolicy>
+                 </property>
+                </widget>
+               </item>
+              </layout>
+             </widget>
+            </item>
+            <item row="0" column="1" alignment="Qt::AlignLeft">
+             <widget class="FormWidget" name="printLanguageFormWidget">
+              <property name="label" stdset="0">
+               <string>Print Language</string>
+              </property>
+              <layout class="QHBoxLayout" name="printLanguageLayout">
+               <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 alignment="Qt::AlignLeft">
+                <widget class="PrintLanguageCombo" name="printLanguageComboBox">
+                 <property name="sizePolicy">
+                  <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+                   <horstretch>0</horstretch>
+                   <verstretch>0</verstretch>
+                  </sizepolicy>
+                 </property>
+                </widget>
+               </item>
+              </layout>
+             </widget>
+            </item>
+            <item row="1" column="0" alignment="Qt::AlignLeft">
+             <widget class="FormWidget" name="outputFormWidget">
+              <property name="label" stdset="0">
+               <string>Output Mode</string>
+              </property>
+              <layout class="QHBoxLayout" name="outputComboLayout">
+               <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 alignment="Qt::AlignLeft">
+                <widget class="QComboBox" name="outputComboBox">
+                 <property name="sizePolicy">
+                  <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+                   <horstretch>0</horstretch>
+                   <verstretch>0</verstretch>
+                  </sizepolicy>
+                 </property>
+                 <item>
+                  <property name="text">
+                   <string>Normal</string>
+                  </property>
+                 </item>
+                 <item>
+                  <property name="text">
+                   <string>Separations</string>
+                  </property>
+                 </item>
+                </widget>
+               </item>
+              </layout>
+             </widget>
+            </item>
+            <item row="1" column="1" alignment="Qt::AlignLeft">
+             <widget class="FormWidget" name="colorOutputModeFormWidget">
+              <property name="label" stdset="0">
+               <string>Color Mode</string>
+              </property>
+              <layout class="QHBoxLayout" name="colorOutputModeLayout">
+               <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 alignment="Qt::AlignLeft">
+                <widget class="QComboBox" name="colorOutputModeComboBox">
+                 <property name="sizePolicy">
+                  <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+                   <horstretch>0</horstretch>
+                   <verstretch>0</verstretch>
+                  </sizepolicy>
+                 </property>
+                 <item>
+                  <property name="text">
+                   <string>Color</string>
+                  </property>
+                 </item>
+                 <item>
+                  <property name="text">
+                   <string>Grayscale</string>
+                  </property>
+                 </item>
+                </widget>
+               </item>
+              </layout>
+             </widget>
+            </item>
+            <item row="0" column="2" rowspan="2">
+             <spacer name="printerOutputSpacer">
+              <property name="orientation">
+               <enum>Qt::Horizontal</enum>
+              </property>
+              <property name="sizeHint" stdset="0">
+               <size><width>0</width><height>20</height></size>
+              </property>
+             </spacer>
+            </item>
+           </layout>
+          </item>
+          <item>
+           <layout class="QHBoxLayout" name="alternativeCommandLayout">
+            <property name="spacing">
+             <number>5</number>
+            </property>
+            <item>
+             <widget class="QCheckBox" name="useAltPrinterCmdCheckBox">
+              <property name="text">
+               <string>Custom Print Command:</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QLineEdit" name="altPrinterCmdLineEdit"/>
+            </item>
+           </layout>
+          </item>
+          <item>
+           <widget class="QCheckBox" name="includePDFAnnotationsCheckBox">
+            <property name="text">
+             <string>Include PDF Annotations and Links</string>
+            </property>
+           </widget>
+          </item>
+         </layout>
         </widget>
        </item>
        <item>
-        <widget class="Line" name="line_3">
-         <property name="orientation">
-          <enum>Qt::Horizontal</enum>
+        <widget class="QGroupBox" name="pageGroupBox">
+         <property name="title">
+          <string>&amp;Page</string>
          </property>
-        </widget>
-       </item>
-       <item>
-        <layout class="QHBoxLayout" name="horizontalLayout_2">
-         <item>
-          <widget class="QLabel" name="label_3">
-           <property name="text">
-            <string>Output:</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QComboBox" name="outputComboBox">
-           <item>
+         <layout class="QVBoxLayout" name="pageLayout">
+          <item>
+           <widget class="QCheckBox" name="pageMirrorHorizontallyCheckBox">
             <property name="text">
-             <string>Normal</string>
+             <string>Mirror Horizontally</string>
             </property>
-           </item>
-           <item>
+           </widget>
+          </item>
+          <item>
+           <widget class="QCheckBox" name="pageMirrorVerticallyCheckBox">
             <property name="text">
-             <string>Separations</string>
+             <string>Mirror Vertically</string>
             </property>
-           </item>
-          </widget>
-         </item>
-         <item>
-          <spacer name="horizontalSpacer_4">
-           <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>
-        <widget class="QCheckBox" name="includePDFAnnotationsCheckBox">
-         <property name="text">
-          <string>Include PDF Annotations and Links</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <spacer name="verticalSpacer_3">
-         <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>
-       </item>
-       <item>
-        <widget class="QLabel" name="label_5">
-         <property name="font">
-          <font>
-           <weight>75</weight>
-           <bold>true</bold>
-          </font>
-         </property>
-         <property name="text">
-          <string>Page</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="Line" name="line_4">
-         <property name="orientation">
-          <enum>Qt::Horizontal</enum>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QCheckBox" name="pageMirrorHorizontallyCheckBox">
-         <property name="text">
-          <string>Mirror Page(s) Horizontally</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QCheckBox" name="pageMirrorVerticallyCheckBox">
-         <property name="text">
-          <string>Mirror Page(s) Vertically</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QCheckBox" name="setMediaSizeCheckBox">
-         <property name="text">
-          <string>Set Media Size</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QCheckBox" name="clipToPrinterMarginsCheckBox">
-         <property name="text">
-          <string>Clip to Printer Margins</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <spacer name="verticalSpacer">
-         <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>
-       </item>
-       <item>
-        <widget class="QLabel" name="label_6">
-         <property name="font">
-          <font>
-           <weight>75</weight>
-           <bold>true</bold>
-          </font>
-         </property>
-         <property name="text">
-          <string>Color</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="Line" name="line_5">
-         <property name="orientation">
-          <enum>Qt::Horizontal</enum>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <layout class="QHBoxLayout" name="horizontalLayout_4">
-         <item>
-          <widget class="QLabel" name="label_8">
-           <property name="text">
-            <string>Print In:</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QComboBox" name="colorOutputModeComboBox">
-           <item>
+           </widget>
+          </item>
+          <item>
+           <widget class="QCheckBox" name="setMediaSizeCheckBox">
             <property name="text">
-             <string>Color (If Available)</string>
+             <string>Set Media Size</string>
             </property>
-           </item>
-           <item>
+           </widget>
+          </item>
+          <item>
+           <widget class="QCheckBox" name="clipToPrinterMarginsCheckBox">
             <property name="text">
-             <string>Grayscale</string>
+             <string>Clip to Printer Margins</string>
             </property>
-           </item>
-          </widget>
-         </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>
-       </item>
-       <item>
-        <widget class="QCheckBox" name="applyUnderColorRemovalCheckBox">
-         <property name="text">
-          <string>Apply Under Color Removal</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QCheckBox" name="convertSpotsToProcessCheckBox">
-         <property name="text">
-          <string>Convert Spot Colors to Process Colors</string>
-         </property>
+           </widget>
+          </item>
+         </layout>
         </widget>
        </item>
        <item>
-        <spacer name="verticalSpacer_2">
+        <spacer name="leftColumnSpacer">
          <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>
+          <size><width>20</width><height>40</height></size>
          </property>
         </spacer>
        </item>
-       <item>
-        <widget class="QLabel" name="label_7">
-         <property name="font">
-          <font>
-           <weight>75</weight>
-           <bold>true</bold>
-          </font>
-         </property>
-         <property name="text">
-          <string>Printing Language</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="Line" name="line_6">
-         <property name="orientation">
-          <enum>Qt::Horizontal</enum>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <layout class="QHBoxLayout" name="horizontalLayout_3">
-         <item>
-          <widget class="PrintLanguageCombo" name="printLanguageComboBox">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-          </widget>
-         </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>
-       </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>
-       </item>
-       <item>
-        <widget class="QLabel" name="label_9">
-         <property name="font">
-          <font>
-           <weight>75</weight>
-           <bold>true</bold>
-          </font>
-         </property>
-         <property name="text">
-          <string>Marks and Bleeds</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="Line" name="line_7">
-         <property name="orientation">
-          <enum>Qt::Horizontal</enum>
-         </property>
+      </layout>
+     </item>
+     <item>
+      <layout class="QVBoxLayout" name="rightColumnLayout">
+       <property name="spacing">
+        <number>8</number>
+       </property>
+       <item>
+        <widget class="QGroupBox" name="colorGroupBox">
+         <property name="title">
+          <string>&amp;Color Processing</string>
+         </property>
+         <layout class="QVBoxLayout" name="colorLayout">
+          <item>
+           <widget class="QCheckBox" name="convertSpotsToProcessCheckBox">
+            <property name="text">
+             <string>Convert Spot Colors to Process</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QCheckBox" name="applyUnderColorRemovalCheckBox">
+            <property name="text">
+             <string>Apply Undercolor Removal (UCR)</string>
+            </property>
+           </widget>
+          </item>
+         </layout>
         </widget>
        </item>
        <item>
-        <layout class="QGridLayout" name="gridLayout">
-         <item row="0" column="0">
-          <widget class="QCheckBox" name="cropMarksCheckBox">
-           <property name="text">
-            <string>Crop Marks</string>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="0">
-          <widget class="QCheckBox" name="bleedMarksCheckBox">
-           <property name="text">
-            <string>Bleed Marks</string>
-           </property>
-          </widget>
-         </item>
-         <item row="2" column="0">
-          <widget class="QCheckBox" name="registrationMarksCheckBox">
-           <property name="text">
-            <string>Registration Marks</string>
-           </property>
-          </widget>
-         </item>
-         <item row="3" column="0">
-          <widget class="QCheckBox" name="colorBarsCheckBox">
-           <property name="text">
-            <string>Color Bars</string>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="1">
-          <layout class="QHBoxLayout" name="horizontalLayout_5">
-           <item>
-            <widget class="QLabel" name="label_10">
-             <property name="text">
-              <string>Offset:</string>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="ScrSpinBox" name="markOffsetSpinBox"/>
-           </item>
-          </layout>
-         </item>
-         <item row="0" column="1">
-          <layout class="QHBoxLayout" name="horizontalLayout_6">
-           <item>
-            <widget class="QLabel" name="label_12">
-             <property name="text">
-              <string>Length:</string>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="ScrSpinBox" name="markLengthSpinBox">
-             <property name="minimum">
-              <double>1.000000000000000</double>
-             </property>
-             <property name="maximum">
-              <double>100.000000000000000</double>
-             </property>
-             <property name="value">
-              <double>20.000000000000000</double>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </item>
-        </layout>
-       </item>
-       <item>
-        <spacer name="verticalSpacer_7">
-         <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>
-       </item>
-       <item>
-        <widget class="QLabel" name="label_11">
-         <property name="font">
-          <font>
-           <weight>75</weight>
-           <bold>true</bold>
-          </font>
-         </property>
-         <property name="text">
-          <string>Bleed Settings</string>
-         </property>
+        <widget class="QGroupBox" name="bleedsGroupBox">
+         <property name="title">
+          <string>&amp;Bleeds</string>
+         </property>
+         <layout class="QHBoxLayout" name="bleedsLayout">
+          <item>
+           <widget class="NewMarginWidget" name="bleedsWidget" native="true"/>
+          </item>
+          <item>
+           <spacer name="bleedsSpacer">
+            <property name="orientation">
+             <enum>Qt::Horizontal</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size><width>0</width><height>20</height></size>
+            </property>
+           </spacer>
+          </item>
+         </layout>
         </widget>
        </item>
        <item>
-        <widget class="Line" name="line_8">
-         <property name="orientation">
-          <enum>Qt::Horizontal</enum>
-         </property>
+        <widget class="QGroupBox" name="marksGroupBox">
+         <property name="title">
+          <string>&amp;Marks</string>
+         </property>
+         <layout class="QHBoxLayout" name="marksLayout">
+          <property name="spacing">
+           <number>12</number>
+          </property>
+          <item>
+           <layout class="QVBoxLayout" name="marksCheckBoxLayout">
+            <property name="spacing">
+             <number>6</number>
+            </property>
+            <item>
+             <widget class="QCheckBox" name="cropMarksCheckBox">
+              <property name="text">
+               <string>Crop Marks</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QCheckBox" name="bleedMarksCheckBox">
+              <property name="text">
+               <string>Bleed Marks</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QCheckBox" name="colorBarsCheckBox">
+              <property name="text">
+               <string>Color Bars</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QCheckBox" name="registrationMarksCheckBox">
+              <property name="text">
+               <string>Registration Marks</string>
+              </property>
+             </widget>
+            </item>
+           </layout>
+          </item>
+          <item>
+           <layout class="QVBoxLayout" name="marksSpinBoxLayout">
+            <property name="spacing">
+             <number>6</number>
+            </property>
+            <item alignment="Qt::AlignLeft|Qt::AlignTop">
+             <widget class="FormWidget" name="markLengthFormWidget">
+              <property name="label" stdset="0">
+               <string>Mark Length</string>
+              </property>
+              <layout class="QHBoxLayout" name="markLengthLayout">
+               <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 alignment="Qt::AlignLeft">
+                <widget class="ScrSpinBox" name="markLengthSpinBox">
+                 <property name="minimum"><double>1.000000000000000</double></property>
+                 <property name="maximum"><double>100.000000000000000</double></property>
+                 <property name="value"><double>20.000000000000000</double></property>
+                </widget>
+               </item>
+              </layout>
+             </widget>
+            </item>
+            <item alignment="Qt::AlignLeft|Qt::AlignTop">
+             <widget class="FormWidget" name="markOffsetFormWidget">
+              <property name="label" stdset="0">
+               <string>Mark Offset</string>
+              </property>
+              <layout class="QHBoxLayout" name="markOffsetLayout">
+               <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 alignment="Qt::AlignLeft">
+                <widget class="ScrSpinBox" name="markOffsetSpinBox"/>
+               </item>
+              </layout>
+             </widget>
+            </item>
+           </layout>
+          </item>
+         </layout>
         </widget>
        </item>
        <item>
-        <layout class="QHBoxLayout" name="horizontalLayout_7">
-         <item>
-          <widget class="NewMarginWidget" name="bleedsWidget" native="true"/>
-         </item>
-         <item>
-          <spacer name="horizontalSpacer_7">
-           <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_5">
+        <spacer name="rightColumnSpacer">
          <property name="orientation">
           <enum>Qt::Vertical</enum>
          </property>
          <property name="sizeHint" stdset="0">
-          <size>
-           <width>20</width>
-           <height>40</height>
-          </size>
+          <size><width>20</width><height>40</height></size>
          </property>
         </spacer>
        </item>
       </layout>
-     </widget>
-    </widget>
+     </item>
+    </layout>
    </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>
@@ -601,24 +457,23 @@
   </customwidget>
  </customwidgets>
  <tabstops>
-  <tabstop>scrollArea</tabstop>
   <tabstop>destinationComboBox</tabstop>
+  <tabstop>printLanguageComboBox</tabstop>
+  <tabstop>outputComboBox</tabstop>
+  <tabstop>colorOutputModeComboBox</tabstop>
   <tabstop>useAltPrinterCmdCheckBox</tabstop>
   <tabstop>altPrinterCmdLineEdit</tabstop>
-  <tabstop>outputComboBox</tabstop>
   <tabstop>includePDFAnnotationsCheckBox</tabstop>
   <tabstop>pageMirrorHorizontallyCheckBox</tabstop>
   <tabstop>pageMirrorVerticallyCheckBox</tabstop>
   <tabstop>setMediaSizeCheckBox</tabstop>
   <tabstop>clipToPrinterMarginsCheckBox</tabstop>
-  <tabstop>applyUnderColorRemovalCheckBox</tabstop>
   <tabstop>convertSpotsToProcessCheckBox</tabstop>
-  <tabstop>printLanguageComboBox</tabstop>
-  <tabstop>colorOutputModeComboBox</tabstop>
+  <tabstop>applyUnderColorRemovalCheckBox</tabstop>
   <tabstop>cropMarksCheckBox</tabstop>
   <tabstop>bleedMarksCheckBox</tabstop>
-  <tabstop>registrationMarksCheckBox</tabstop>
   <tabstop>colorBarsCheckBox</tabstop>
+  <tabstop>registrationMarksCheckBox</tabstop>
   <tabstop>markLengthSpinBox</tabstop>
   <tabstop>markOffsetSpinBox</tabstop>
  </tabstops>
Index: scribus/ui/preferences/prefs_printer.cpp
===================================================================
--- scribus/ui/preferences/prefs_printer.cpp	(revision 27785)
+++ scribus/ui/preferences/prefs_printer.cpp	(working copy)
@@ -5,6 +5,11 @@
 for which a new license (GPL+exception) is in place.
 */
 
+#include <QList>
+#include <QStyle>
+#include <QStyleOptionComboBox>
+
+#include "iconmanager.h"
 #include "prefscontext.h"
 #include "prefsfile.h"
 #include "prefsmanager.h"
@@ -18,6 +23,13 @@
 	         : Prefs_Pane(parent)
 {
 	setupUi(this);
+
+	IconManager& iconManager = IconManager::instance();
+	destinationFormWidget->setPixmap(iconManager.loadPixmap("document-print"));
+	printLanguageFormWidget->setPixmap(iconManager.loadPixmap("file-postscript"));
+	outputFormWidget->setPixmap(iconManager.loadPixmap("color-registration"));
+	colorOutputModeFormWidget->setPixmap(iconManager.loadPixmap("color-cmyk"));
+
 	languageChange();
 
 	m_caption = tr("Printer");
@@ -30,12 +42,64 @@
 
 void Prefs_Printer::languageChange()
 {
-	clipToPrinterMarginsCheckBox->setToolTip( "<qt>" + tr( "Do not show objects outside the margins on the printed page" ) + "</qt>" );
-	altPrinterCmdLineEdit->setToolTip("<qt>" + tr( "Use an alternative print manager, such as kprinter or gtklp, to utilize additional printing options") + "</qt>" );
-	printLanguageComboBox->setToolTip("<qt>" +  tr( "Sets the printing language to use.\n Setting to PostScript Level 1 or 2 can create huge files." ) + "</qt>" );
-	applyUnderColorRemovalCheckBox->setToolTip( "<qt>" + tr( "A way of switching off some of the gray shades which are composed of cyan, yellow and magenta and using black instead. UCR most affects parts of images which are neutral and/or dark tones which are close to the gray. Use of this may improve printing some images and some experimentation and testing is need on a case by case basis. UCR reduces the possibility of over saturation with CMY inks." ) + "</qt>");
-	convertSpotsToProcessCheckBox->setToolTip("<qt>" + tr( "Enables Spot Colors to be converted to composite colors. Unless you are planning to print spot colors at a commercial printer, this is probably best left enabled." ) + "</qt>");
-	setMediaSizeCheckBox->setToolTip( "<qt>" + tr( "This enables you to explicitly set the media size of the PostScript file. Not recommended unless requested by your printer." ) + "</qt>");
+	auto wideToolTip = [](const QString& text)
+	{
+		return QStringLiteral("<qt><table width=\"440\" cellspacing=\"0\" cellpadding=\"0\"><tr><td>%1</td></tr></table></qt>").arg(text.toHtmlEscaped());
+	};
+
+	clipToPrinterMarginsCheckBox->setToolTip(wideToolTip(tr("Hide objects outside the printer's printable margins.")));
+	altPrinterCmdLineEdit->setToolTip(wideToolTip(tr("Use another print manager, such as kprinter or gtklp, for additional printing options.")));
+	printLanguageComboBox->setToolTip(wideToolTip(tr("Choose the printing language. PostScript Level 1 or 2 can create very large files.")));
+	applyUnderColorRemovalCheckBox->setToolTip(wideToolTip(tr("Replace neutral and dark CMY mixtures with black to reduce ink coverage. Results depend on the image and printer; test output when using UCR.")));
+	convertSpotsToProcessCheckBox->setToolTip(wideToolTip(tr("Convert spot colors to process colors for composite printing. Leave enabled unless printing true spot-color separations.")));
+	setMediaSizeCheckBox->setToolTip(wideToolTip(tr("Set the media size explicitly in PostScript output. Use only when requested by your printer.")));
+}
+
+namespace
+{
+void setScaledSpinBoxWidth(const QList<ScrSpinBox*>& spinBoxes, double factor, int extraWidth = 0)
+{
+	int naturalWidth = 0;
+	for (ScrSpinBox* spinBox : spinBoxes)
+	{
+		spinBox->setMinimumWidth(0);
+		spinBox->setMaximumWidth(QWIDGETSIZE_MAX);
+		naturalWidth = qMax(naturalWidth, spinBox->sizeHint().width());
+	}
+
+	const int width = qRound(naturalWidth * factor) + extraWidth;
+	for (ScrSpinBox* spinBox : spinBoxes)
+		spinBox->setFixedWidth(width);
+}
+
+int comboBoxContentWidth(QComboBox* comboBox)
+{
+	comboBox->setMinimumWidth(0);
+	comboBox->setMaximumWidth(QWIDGETSIZE_MAX);
+
+	int textWidth = 0;
+	for (int i = 0; i < comboBox->count(); ++i)
+		textWidth = qMax(textWidth, comboBox->fontMetrics().horizontalAdvance(comboBox->itemText(i)));
+
+	QStyleOptionComboBox option;
+	option.initFrom(comboBox);
+	const QSize contentSize(textWidth, comboBox->fontMetrics().height());
+	return comboBox->style()->sizeFromContents(QStyle::CT_ComboBox, &option, contentSize, comboBox).width();
+}
+
+void setComboBoxWidthsFromContents(QComboBox* reference, QComboBox* target)
+{
+	const int width = comboBoxContentWidth(reference);
+	reference->setFixedWidth(width);
+	target->setFixedWidth(width);
+}
+
+void matchComboBoxWidthsFromContents(QComboBox* first, QComboBox* second)
+{
+	const int width = qMax(comboBoxContentWidth(first), comboBoxContentWidth(second));
+	first->setFixedWidth(width);
+	second->setFixedWidth(width);
+}
 }
 
 void Prefs_Printer::unitChange(int newIndex)
@@ -43,6 +107,9 @@
 	bleedsWidget->setNewUnit(newIndex);
 	markOffsetSpinBox->setNewUnit(newIndex);
 	markLengthSpinBox->setNewUnit(newIndex);
+
+	setScaledSpinBoxWidth(bleedsWidget->findChildren<ScrSpinBox*>(), 0.83, 6);
+	setScaledSpinBoxWidth({ markLengthSpinBox, markOffsetSpinBox }, 0.80, 13);
 }
 
 void Prefs_Printer::restoreDefaults(struct ApplicationPrefs *prefsData)
@@ -83,6 +150,8 @@
 	altPrinterCmdLineEdit->setText(prefs->get("Command", ""));
 	outputComboBox->setCurrentIndex(prefs->getInt("Separations", 0));
 	colorOutputModeComboBox->setCurrentIndex(prefs->getInt("PrintColor", 0));
+	setComboBoxWidthsFromContents(outputComboBox, destinationComboBox);
+	matchComboBoxWidthsFromContents(printLanguageComboBox, colorOutputModeComboBox);
 	pageMirrorHorizontallyCheckBox->setChecked(prefs->getBool("MirrorH", false));
 	pageMirrorVerticallyCheckBox->setChecked(prefs->getBool("MirrorV", false));
 	setMediaSizeCheckBox->setChecked(prefs->getBool("doDev", false));
@@ -98,6 +167,7 @@
 	bleedsWidget->setup(bleeds, 0, docUnitIndex, NewMarginWidget::BleedWidgetFlags);
 	bleedsWidget->setPageWidth(prefsData->docSetupPrefs.pageWidth);
 	bleedsWidget->setPageHeight(prefsData->docSetupPrefs.pageHeight);
+	setScaledSpinBoxWidth(bleedsWidget->findChildren<ScrSpinBox*>(), 0.83, 6);
 	markLengthSpinBox->setValue(prefs->getDouble("markLength", 20.0) * unitRatio);
 	markOffsetSpinBox->setValue(prefs->getDouble("markOffset", 0.0) * unitRatio);
 	cropMarksCheckBox->setChecked(prefs->getBool("cropMarks", false));
printer-prefs-ui-current.png (363,541 bytes)   
printer-prefs-ui-current.png (363,541 bytes)   
printer-prefs-ui-proposed.png (402,110 bytes)   
printer-prefs-ui-proposed.png (402,110 bytes)   
PatchYes

Activities

qirat

2026-09-01 14:47

reporter   ~0054395

Here. Single column, and few other minor polish.
printer-preferences-layout-v1.34.patch (41,948 bytes)   
Index: scribus/ui/preferences/prefs_printerbase.ui
===================================================================
--- scribus/ui/preferences/prefs_printerbase.ui	(revision 27810)
+++ scribus/ui/preferences/prefs_printerbase.ui	(working copy)
@@ -47,532 +47,470 @@
     </widget>
    </item>
    <item>
-    <widget class="QScrollArea" name="scrollArea">
+    <widget class="QScrollArea" name="printerScrollArea">
+     <property name="frameShape">
+      <enum>QFrame::NoFrame</enum>
+     </property>
      <property name="widgetResizable">
       <bool>true</bool>
      </property>
-     <widget class="QWidget" name="scrollAreaWidgetContents_2">
-      <property name="geometry">
-       <rect>
-        <x>0</x>
-        <y>0</y>
-        <width>722</width>
-        <height>824</height>
-       </rect>
-      </property>
-      <layout class="QVBoxLayout" name="verticalLayout_2">
-       <item>
-        <widget class="QLabel" name="label">
-         <property name="font">
-          <font>
-           <weight>75</weight>
-           <bold>true</bold>
-          </font>
-         </property>
-         <property name="text">
-          <string>Destination</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="Line" name="line_2">
-         <property name="orientation">
-          <enum>Qt::Horizontal</enum>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QComboBox" name="destinationComboBox"/>
-       </item>
-       <item>
-        <widget class="QCheckBox" name="useAltPrinterCmdCheckBox">
-         <property name="text">
-          <string>Alternative Printer Command</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <layout class="QHBoxLayout" name="horizontalLayout">
-         <item>
-          <widget class="QLabel" name="label_2">
-           <property name="text">
-            <string>Command:</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QLineEdit" name="altPrinterCmdLineEdit"/>
-         </item>
-        </layout>
-       </item>
-       <item>
-        <spacer>
-         <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>
-       </item>
+     <widget class="QWidget" name="printerScrollContents">
+      <layout class="QVBoxLayout" name="printerOptionsLayout">
+       <property name="leftMargin">
+        <number>0</number>
+       </property>
+       <property name="topMargin">
+        <number>6</number>
+       </property>
+       <property name="rightMargin">
+        <number>6</number>
+       </property>
+       <property name="bottomMargin">
+        <number>6</number>
+       </property>
+       <property name="spacing">
+        <number>6</number>
+       </property>
        <item>
-        <widget class="QLabel" name="label_4">
-         <property name="font">
-          <font>
-           <weight>75</weight>
-           <bold>true</bold>
-          </font>
-         </property>
-         <property name="text">
-          <string>General Options</string>
+        <widget class="QGroupBox" name="printerOutputGroupBox">
+         <property name="title">
+          <string>Printer &amp;&amp; &amp;output</string>
          </property>
+         <layout class="QVBoxLayout" name="printerOutputLayout">
+          <property name="topMargin">
+           <number>6</number>
+          </property>
+          <property name="bottomMargin">
+           <number>6</number>
+          </property>
+          <property name="spacing">
+           <number>12</number>
+          </property>
+          <item>
+           <layout class="QGridLayout" name="printerOutputGridLayout" columnstretch="1,1,1">
+            <property name="bottomMargin">
+             <number>0</number>
+            </property>
+            <property name="horizontalSpacing">
+             <number>12</number>
+            </property>
+            <property name="verticalSpacing">
+             <number>9</number>
+            </property>
+            <item row="0" column="0" alignment="Qt::AlignLeft">
+             <widget class="FormWidget" name="destinationFormWidget">
+              <property name="label" stdset="0">
+               <string>Destination</string>
+              </property>
+              <layout class="QHBoxLayout" name="destinationLayout">
+               <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 alignment="Qt::AlignLeft">
+                <widget class="QComboBox" name="destinationComboBox">
+                 <property name="sizePolicy">
+                  <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+                   <horstretch>0</horstretch>
+                   <verstretch>0</verstretch>
+                  </sizepolicy>
+                 </property>
+                </widget>
+               </item>
+              </layout>
+             </widget>
+            </item>
+            <item row="0" column="1" alignment="Qt::AlignLeft">
+             <widget class="FormWidget" name="printLanguageFormWidget">
+              <property name="label" stdset="0">
+               <string>Print Language</string>
+              </property>
+              <layout class="QHBoxLayout" name="printLanguageLayout">
+               <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 alignment="Qt::AlignLeft">
+                <widget class="PrintLanguageCombo" name="printLanguageComboBox">
+                 <property name="sizePolicy">
+                  <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+                   <horstretch>0</horstretch>
+                   <verstretch>0</verstretch>
+                  </sizepolicy>
+                 </property>
+                </widget>
+               </item>
+              </layout>
+             </widget>
+            </item>
+            <item row="1" column="0" alignment="Qt::AlignLeft">
+             <widget class="FormWidget" name="outputFormWidget">
+              <property name="label" stdset="0">
+               <string>Output Mode</string>
+              </property>
+              <layout class="QHBoxLayout" name="outputComboLayout">
+               <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 alignment="Qt::AlignLeft">
+                <widget class="QComboBox" name="outputComboBox">
+                 <property name="sizePolicy">
+                  <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+                   <horstretch>0</horstretch>
+                   <verstretch>0</verstretch>
+                  </sizepolicy>
+                 </property>
+                 <item>
+                  <property name="text">
+                   <string>Normal</string>
+                  </property>
+                 </item>
+                 <item>
+                  <property name="text">
+                   <string>Separations</string>
+                  </property>
+                 </item>
+                </widget>
+               </item>
+              </layout>
+             </widget>
+            </item>
+            <item row="1" column="1" alignment="Qt::AlignLeft">
+             <widget class="FormWidget" name="colorOutputModeFormWidget">
+              <property name="label" stdset="0">
+               <string>Color Mode</string>
+              </property>
+              <layout class="QHBoxLayout" name="colorOutputModeLayout">
+               <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 alignment="Qt::AlignLeft">
+                <widget class="QComboBox" name="colorOutputModeComboBox">
+                 <property name="sizePolicy">
+                  <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+                   <horstretch>0</horstretch>
+                   <verstretch>0</verstretch>
+                  </sizepolicy>
+                 </property>
+                 <item>
+                  <property name="text">
+                   <string>Color</string>
+                  </property>
+                 </item>
+                 <item>
+                  <property name="text">
+                   <string>Grayscale</string>
+                  </property>
+                 </item>
+                </widget>
+               </item>
+              </layout>
+             </widget>
+            </item>
+            <item row="0" column="2" rowspan="2">
+             <spacer name="printerOutputSpacer">
+              <property name="orientation">
+               <enum>Qt::Horizontal</enum>
+              </property>
+              <property name="sizeHint" stdset="0">
+               <size><width>0</width><height>20</height></size>
+              </property>
+             </spacer>
+            </item>
+           </layout>
+          </item>
+          <item>
+           <layout class="QVBoxLayout" name="printCommandOptionsLayout">
+            <property name="spacing">
+             <number>6</number>
+            </property>
+            <item>
+             <layout class="QGridLayout" name="alternativeCommandGridLayout" columnstretch="1,1,1">
+              <property name="horizontalSpacing">
+               <number>12</number>
+              </property>
+              <item row="0" column="0" colspan="2">
+               <layout class="QHBoxLayout" name="alternativeCommandLayout">
+                <property name="spacing">
+                 <number>5</number>
+                </property>
+                <item>
+                 <widget class="QCheckBox" name="useAltPrinterCmdCheckBox">
+                  <property name="text">
+                   <string>Custom print command:</string>
+                  </property>
+                 </widget>
+                </item>
+                <item>
+                 <widget class="QLineEdit" name="altPrinterCmdLineEdit"/>
+                </item>
+                <item>
+                 <spacer name="alternativeCommandRightSpacer">
+                  <property name="orientation">
+                   <enum>Qt::Horizontal</enum>
+                  </property>
+                  <property name="sizeType">
+                   <enum>QSizePolicy::Fixed</enum>
+                  </property>
+                  <property name="sizeHint" stdset="0">
+                   <size>
+                    <width>65</width>
+                    <height>20</height>
+                   </size>
+                  </property>
+                 </spacer>
+                </item>
+               </layout>
+              </item>
+              <item row="0" column="2">
+               <spacer name="alternativeCommandSpacer">
+                <property name="orientation">
+                 <enum>Qt::Horizontal</enum>
+                </property>
+                <property name="sizeHint" stdset="0">
+                 <size><width>0</width><height>20</height></size>
+                </property>
+               </spacer>
+              </item>
+             </layout>
+            </item>
+            <item>
+             <widget class="QCheckBox" name="includePDFAnnotationsCheckBox">
+              <property name="text">
+               <string>Include PDF annotations and links</string>
+              </property>
+             </widget>
+            </item>
+           </layout>
+          </item>
+         </layout>
         </widget>
        </item>
        <item>
-        <widget class="Line" name="line_3">
-         <property name="orientation">
-          <enum>Qt::Horizontal</enum>
+        <widget class="QGroupBox" name="pageGroupBox">
+         <property name="title">
+          <string>&amp;Page</string>
          </property>
-        </widget>
-       </item>
-       <item>
-        <layout class="QHBoxLayout" name="horizontalLayout_2">
-         <item>
-          <widget class="QLabel" name="label_3">
-           <property name="text">
-            <string>Output:</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QComboBox" name="outputComboBox">
-           <item>
+         <layout class="QVBoxLayout" name="pageLayout">
+          <property name="topMargin">
+           <number>6</number>
+          </property>
+          <property name="bottomMargin">
+           <number>6</number>
+          </property>
+          <property name="spacing">
+           <number>6</number>
+          </property>
+          <item>
+           <widget class="QCheckBox" name="pageMirrorHorizontallyCheckBox">
             <property name="text">
-             <string>Normal</string>
+             <string>Mirror horizontally</string>
             </property>
-           </item>
-           <item>
+           </widget>
+          </item>
+          <item>
+           <widget class="QCheckBox" name="pageMirrorVerticallyCheckBox">
             <property name="text">
-             <string>Separations</string>
+             <string>Mirror vertically</string>
             </property>
-           </item>
-          </widget>
-         </item>
-         <item>
-          <spacer name="horizontalSpacer_4">
-           <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>
-        <widget class="QCheckBox" name="includePDFAnnotationsCheckBox">
-         <property name="text">
-          <string>Include PDF Annotations and Links</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <spacer name="verticalSpacer_3">
-         <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>
-       </item>
-       <item>
-        <widget class="QLabel" name="label_5">
-         <property name="font">
-          <font>
-           <weight>75</weight>
-           <bold>true</bold>
-          </font>
-         </property>
-         <property name="text">
-          <string>Page</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="Line" name="line_4">
-         <property name="orientation">
-          <enum>Qt::Horizontal</enum>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QCheckBox" name="pageMirrorHorizontallyCheckBox">
-         <property name="text">
-          <string>Mirror Page(s) Horizontally</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QCheckBox" name="pageMirrorVerticallyCheckBox">
-         <property name="text">
-          <string>Mirror Page(s) Vertically</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QCheckBox" name="setMediaSizeCheckBox">
-         <property name="text">
-          <string>Set Media Size</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QCheckBox" name="clipToPrinterMarginsCheckBox">
-         <property name="text">
-          <string>Clip to Printer Margins</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <spacer name="verticalSpacer">
-         <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>
-       </item>
-       <item>
-        <widget class="QLabel" name="label_6">
-         <property name="font">
-          <font>
-           <weight>75</weight>
-           <bold>true</bold>
-          </font>
-         </property>
-         <property name="text">
-          <string>Color</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="Line" name="line_5">
-         <property name="orientation">
-          <enum>Qt::Horizontal</enum>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <layout class="QHBoxLayout" name="horizontalLayout_4">
-         <item>
-          <widget class="QLabel" name="label_8">
-           <property name="text">
-            <string>Print In:</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QComboBox" name="colorOutputModeComboBox">
-           <item>
+           </widget>
+          </item>
+          <item>
+           <widget class="QCheckBox" name="setMediaSizeCheckBox">
             <property name="text">
-             <string>Color (If Available)</string>
+             <string>Set media size</string>
             </property>
-           </item>
-           <item>
+           </widget>
+          </item>
+          <item>
+           <widget class="QCheckBox" name="clipToPrinterMarginsCheckBox">
             <property name="text">
-             <string>Grayscale</string>
+             <string>Clip to printer margins</string>
             </property>
-           </item>
-          </widget>
-         </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>
-       </item>
-       <item>
-        <widget class="QCheckBox" name="applyUnderColorRemovalCheckBox">
-         <property name="text">
-          <string>Apply Under Color Removal</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QCheckBox" name="convertSpotsToProcessCheckBox">
-         <property name="text">
-          <string>Convert Spot Colors to Process Colors</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <spacer name="verticalSpacer_2">
-         <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>
-       </item>
-       <item>
-        <widget class="QLabel" name="label_7">
-         <property name="font">
-          <font>
-           <weight>75</weight>
-           <bold>true</bold>
-          </font>
-         </property>
-         <property name="text">
-          <string>Printing Language</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="Line" name="line_6">
-         <property name="orientation">
-          <enum>Qt::Horizontal</enum>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <layout class="QHBoxLayout" name="horizontalLayout_3">
-         <item>
-          <widget class="PrintLanguageCombo" name="printLanguageComboBox">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-          </widget>
-         </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>
-       </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>
-       </item>
-       <item>
-        <widget class="QLabel" name="label_9">
-         <property name="font">
-          <font>
-           <weight>75</weight>
-           <bold>true</bold>
-          </font>
-         </property>
-         <property name="text">
-          <string>Marks and Bleeds</string>
-         </property>
+           </widget>
+          </item>
+         </layout>
         </widget>
        </item>
        <item>
-        <widget class="Line" name="line_7">
-         <property name="orientation">
-          <enum>Qt::Horizontal</enum>
+        <widget class="QGroupBox" name="colorGroupBox">
+         <property name="title">
+          <string>&amp;Color processing</string>
          </property>
+         <layout class="QVBoxLayout" name="colorLayout">
+          <property name="topMargin">
+           <number>6</number>
+          </property>
+          <property name="bottomMargin">
+           <number>6</number>
+          </property>
+          <item>
+           <widget class="QCheckBox" name="convertSpotsToProcessCheckBox">
+            <property name="text">
+             <string>Convert spot colors to process</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QCheckBox" name="applyUnderColorRemovalCheckBox">
+            <property name="text">
+             <string>Apply undercolor removal (UCR)</string>
+            </property>
+           </widget>
+          </item>
+         </layout>
         </widget>
        </item>
        <item>
-        <layout class="QGridLayout" name="gridLayout">
-         <item row="0" column="0">
-          <widget class="QCheckBox" name="cropMarksCheckBox">
-           <property name="text">
-            <string>Crop Marks</string>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="0">
-          <widget class="QCheckBox" name="bleedMarksCheckBox">
-           <property name="text">
-            <string>Bleed Marks</string>
-           </property>
-          </widget>
-         </item>
-         <item row="2" column="0">
-          <widget class="QCheckBox" name="registrationMarksCheckBox">
-           <property name="text">
-            <string>Registration Marks</string>
-           </property>
-          </widget>
-         </item>
-         <item row="3" column="0">
-          <widget class="QCheckBox" name="colorBarsCheckBox">
-           <property name="text">
-            <string>Color Bars</string>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="1">
-          <layout class="QHBoxLayout" name="horizontalLayout_5">
-           <item>
-            <widget class="QLabel" name="label_10">
-             <property name="text">
-              <string>Offset:</string>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="ScrSpinBox" name="markOffsetSpinBox"/>
-           </item>
-          </layout>
-         </item>
-         <item row="0" column="1">
-          <layout class="QHBoxLayout" name="horizontalLayout_6">
-           <item>
-            <widget class="QLabel" name="label_12">
-             <property name="text">
-              <string>Length:</string>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="ScrSpinBox" name="markLengthSpinBox">
-             <property name="minimum">
-              <double>1.000000000000000</double>
-             </property>
-             <property name="maximum">
-              <double>100.000000000000000</double>
-             </property>
-             <property name="value">
-              <double>20.000000000000000</double>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </item>
-        </layout>
-       </item>
-       <item>
-        <spacer name="verticalSpacer_7">
-         <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>
-       </item>
-       <item>
-        <widget class="QLabel" name="label_11">
-         <property name="font">
-          <font>
-           <weight>75</weight>
-           <bold>true</bold>
-          </font>
-         </property>
-         <property name="text">
-          <string>Bleed Settings</string>
+        <widget class="QGroupBox" name="bleedsGroupBox">
+         <property name="title">
+          <string>&amp;Bleeds</string>
          </property>
+         <layout class="QHBoxLayout" name="bleedsLayout">
+          <property name="topMargin">
+           <number>6</number>
+          </property>
+          <property name="bottomMargin">
+           <number>6</number>
+          </property>
+          <item alignment="Qt::AlignLeft|Qt::AlignTop">
+           <widget class="NewMarginWidget" name="bleedsWidget" native="true">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <spacer name="bleedsSpacer">
+            <property name="orientation">
+             <enum>Qt::Horizontal</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size><width>0</width><height>20</height></size>
+            </property>
+           </spacer>
+          </item>
+         </layout>
         </widget>
        </item>
        <item>
-        <widget class="Line" name="line_8">
-         <property name="orientation">
-          <enum>Qt::Horizontal</enum>
+        <widget class="QGroupBox" name="marksGroupBox">
+         <property name="title">
+          <string>&amp;Marks</string>
          </property>
+         <layout class="QHBoxLayout" name="marksLayout">
+          <property name="topMargin">
+           <number>6</number>
+          </property>
+          <property name="bottomMargin">
+           <number>6</number>
+          </property>
+          <property name="spacing">
+           <number>12</number>
+          </property>
+          <item>
+           <layout class="QVBoxLayout" name="marksCheckBoxLayout">
+            <property name="spacing">
+             <number>6</number>
+            </property>
+            <item>
+             <widget class="QCheckBox" name="cropMarksCheckBox">
+              <property name="text">
+               <string>Crop marks</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QCheckBox" name="bleedMarksCheckBox">
+              <property name="text">
+               <string>Bleed marks</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QCheckBox" name="colorBarsCheckBox">
+              <property name="text">
+               <string>Color bars</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QCheckBox" name="registrationMarksCheckBox">
+              <property name="text">
+               <string>Registration marks</string>
+              </property>
+             </widget>
+            </item>
+           </layout>
+          </item>
+          <item>
+           <layout class="QVBoxLayout" name="marksSpinBoxLayout">
+            <property name="spacing">
+             <number>6</number>
+            </property>
+            <item alignment="Qt::AlignLeft|Qt::AlignTop">
+             <widget class="FormWidget" name="markLengthFormWidget">
+              <property name="label" stdset="0">
+               <string>Mark Length</string>
+              </property>
+              <layout class="QHBoxLayout" name="markLengthLayout">
+               <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 alignment="Qt::AlignLeft">
+                <widget class="ScrSpinBox" name="markLengthSpinBox">
+                 <property name="minimum"><double>1.000000000000000</double></property>
+                 <property name="maximum"><double>100.000000000000000</double></property>
+                 <property name="value"><double>20.000000000000000</double></property>
+                </widget>
+               </item>
+              </layout>
+             </widget>
+            </item>
+            <item alignment="Qt::AlignLeft|Qt::AlignTop">
+             <widget class="FormWidget" name="markOffsetFormWidget">
+              <property name="label" stdset="0">
+               <string>Mark Offset</string>
+              </property>
+              <layout class="QHBoxLayout" name="markOffsetLayout">
+               <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 alignment="Qt::AlignLeft">
+                <widget class="ScrSpinBox" name="markOffsetSpinBox"/>
+               </item>
+              </layout>
+             </widget>
+            </item>
+           </layout>
+          </item>
+          <item>
+           <spacer name="marksSpacer">
+            <property name="orientation">
+             <enum>Qt::Horizontal</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size><width>0</width><height>20</height></size>
+            </property>
+           </spacer>
+          </item>
+         </layout>
         </widget>
        </item>
        <item>
-        <layout class="QHBoxLayout" name="horizontalLayout_7">
-         <item>
-          <widget class="NewMarginWidget" name="bleedsWidget" native="true"/>
-         </item>
-         <item>
-          <spacer name="horizontalSpacer_7">
-           <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_5">
+        <spacer name="printerOptionsSpacer">
          <property name="orientation">
           <enum>Qt::Vertical</enum>
          </property>
          <property name="sizeHint" stdset="0">
-          <size>
-           <width>20</width>
-           <height>40</height>
-          </size>
+          <size><width>20</width><height>40</height></size>
          </property>
         </spacer>
        </item>
@@ -584,6 +522,12 @@
  </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>
@@ -601,24 +545,23 @@
   </customwidget>
  </customwidgets>
  <tabstops>
-  <tabstop>scrollArea</tabstop>
   <tabstop>destinationComboBox</tabstop>
+  <tabstop>printLanguageComboBox</tabstop>
+  <tabstop>outputComboBox</tabstop>
+  <tabstop>colorOutputModeComboBox</tabstop>
   <tabstop>useAltPrinterCmdCheckBox</tabstop>
   <tabstop>altPrinterCmdLineEdit</tabstop>
-  <tabstop>outputComboBox</tabstop>
   <tabstop>includePDFAnnotationsCheckBox</tabstop>
   <tabstop>pageMirrorHorizontallyCheckBox</tabstop>
   <tabstop>pageMirrorVerticallyCheckBox</tabstop>
   <tabstop>setMediaSizeCheckBox</tabstop>
   <tabstop>clipToPrinterMarginsCheckBox</tabstop>
-  <tabstop>applyUnderColorRemovalCheckBox</tabstop>
   <tabstop>convertSpotsToProcessCheckBox</tabstop>
-  <tabstop>printLanguageComboBox</tabstop>
-  <tabstop>colorOutputModeComboBox</tabstop>
+  <tabstop>applyUnderColorRemovalCheckBox</tabstop>
   <tabstop>cropMarksCheckBox</tabstop>
   <tabstop>bleedMarksCheckBox</tabstop>
-  <tabstop>registrationMarksCheckBox</tabstop>
   <tabstop>colorBarsCheckBox</tabstop>
+  <tabstop>registrationMarksCheckBox</tabstop>
   <tabstop>markLengthSpinBox</tabstop>
   <tabstop>markOffsetSpinBox</tabstop>
  </tabstops>
Index: scribus/ui/preferences/prefs_printer.cpp
===================================================================
--- scribus/ui/preferences/prefs_printer.cpp	(revision 27810)
+++ scribus/ui/preferences/prefs_printer.cpp	(working copy)
@@ -5,6 +5,12 @@
 for which a new license (GPL+exception) is in place.
 */
 
+#include <QGridLayout>
+#include <QList>
+#include <QStyle>
+#include <QStyleOptionComboBox>
+
+#include "iconmanager.h"
 #include "prefscontext.h"
 #include "prefsfile.h"
 #include "prefsmanager.h"
@@ -18,6 +24,16 @@
 	         : Prefs_Pane(parent)
 {
 	setupUi(this);
+
+	if (auto* bleedsGridLayout = qobject_cast<QGridLayout*>(bleedsWidget->layout()))
+		bleedsGridLayout->setVerticalSpacing(9);
+
+	IconManager& iconManager = IconManager::instance();
+	destinationFormWidget->setPixmap(iconManager.loadPixmap("document-print"));
+	printLanguageFormWidget->setPixmap(iconManager.loadPixmap("file-postscript"));
+	outputFormWidget->setPixmap(iconManager.loadPixmap("color-registration"));
+	colorOutputModeFormWidget->setPixmap(iconManager.loadPixmap("color-cmyk"));
+
 	languageChange();
 
 	m_caption = tr("Printer");
@@ -30,12 +46,64 @@
 
 void Prefs_Printer::languageChange()
 {
-	clipToPrinterMarginsCheckBox->setToolTip( "<qt>" + tr( "Do not show objects outside the margins on the printed page" ) + "</qt>" );
-	altPrinterCmdLineEdit->setToolTip("<qt>" + tr( "Use an alternative print manager, such as kprinter or gtklp, to utilize additional printing options") + "</qt>" );
-	printLanguageComboBox->setToolTip("<qt>" +  tr( "Sets the printing language to use.\n Setting to PostScript Level 1 or 2 can create huge files." ) + "</qt>" );
-	applyUnderColorRemovalCheckBox->setToolTip( "<qt>" + tr( "A way of switching off some of the gray shades which are composed of cyan, yellow and magenta and using black instead. UCR most affects parts of images which are neutral and/or dark tones which are close to the gray. Use of this may improve printing some images and some experimentation and testing is need on a case by case basis. UCR reduces the possibility of over saturation with CMY inks." ) + "</qt>");
-	convertSpotsToProcessCheckBox->setToolTip("<qt>" + tr( "Enables Spot Colors to be converted to composite colors. Unless you are planning to print spot colors at a commercial printer, this is probably best left enabled." ) + "</qt>");
-	setMediaSizeCheckBox->setToolTip( "<qt>" + tr( "This enables you to explicitly set the media size of the PostScript file. Not recommended unless requested by your printer." ) + "</qt>");
+	auto wideToolTip = [](const QString& text)
+	{
+		return QStringLiteral("<qt><table width=\"440\" cellspacing=\"0\" cellpadding=\"0\"><tr><td>%1</td></tr></table></qt>").arg(text.toHtmlEscaped());
+	};
+
+	clipToPrinterMarginsCheckBox->setToolTip(wideToolTip(tr("Hide objects outside the printer's printable margins.")));
+	altPrinterCmdLineEdit->setToolTip(wideToolTip(tr("Use another print manager, such as kprinter or gtklp, for additional printing options.")));
+	printLanguageComboBox->setToolTip(wideToolTip(tr("Choose the printing language. PostScript Level 1 or 2 can create very large files.")));
+	applyUnderColorRemovalCheckBox->setToolTip(wideToolTip(tr("Replace neutral and dark CMY mixtures with black to reduce ink coverage. Results depend on the image and printer; test output when using UCR.")));
+	convertSpotsToProcessCheckBox->setToolTip(wideToolTip(tr("Convert spot colors to process colors for composite printing. Leave enabled unless printing true spot-color separations.")));
+	setMediaSizeCheckBox->setToolTip(wideToolTip(tr("Set the media size explicitly in PostScript output. Use only when requested by your printer.")));
+}
+
+namespace
+{
+void setScaledSpinBoxWidth(const QList<ScrSpinBox*>& spinBoxes, double factor, int extraWidth = 0)
+{
+	int naturalWidth = 0;
+	for (ScrSpinBox* spinBox : spinBoxes)
+	{
+		spinBox->setMinimumWidth(0);
+		spinBox->setMaximumWidth(QWIDGETSIZE_MAX);
+		naturalWidth = qMax(naturalWidth, spinBox->sizeHint().width());
+	}
+
+	const int width = qRound(naturalWidth * factor) + extraWidth;
+	for (ScrSpinBox* spinBox : spinBoxes)
+		spinBox->setFixedWidth(width);
+}
+
+int comboBoxContentWidth(QComboBox* comboBox)
+{
+	comboBox->setMinimumWidth(0);
+	comboBox->setMaximumWidth(QWIDGETSIZE_MAX);
+
+	int textWidth = 0;
+	for (int i = 0; i < comboBox->count(); ++i)
+		textWidth = qMax(textWidth, comboBox->fontMetrics().horizontalAdvance(comboBox->itemText(i)));
+
+	QStyleOptionComboBox option;
+	option.initFrom(comboBox);
+	const QSize contentSize(textWidth, comboBox->fontMetrics().height());
+	return comboBox->style()->sizeFromContents(QStyle::CT_ComboBox, &option, contentSize, comboBox).width();
+}
+
+void setComboBoxWidthsFromContents(QComboBox* reference, QComboBox* target)
+{
+	const int width = comboBoxContentWidth(reference);
+	reference->setFixedWidth(width);
+	target->setFixedWidth(width);
+}
+
+void matchComboBoxWidthsFromContents(QComboBox* first, QComboBox* second)
+{
+	const int width = qMax(comboBoxContentWidth(first), comboBoxContentWidth(second));
+	first->setFixedWidth(width);
+	second->setFixedWidth(width);
+}
 }
 
 void Prefs_Printer::unitChange(int newIndex)
@@ -43,6 +111,9 @@
 	bleedsWidget->setNewUnit(newIndex);
 	markOffsetSpinBox->setNewUnit(newIndex);
 	markLengthSpinBox->setNewUnit(newIndex);
+
+	setScaledSpinBoxWidth(bleedsWidget->findChildren<ScrSpinBox*>(), 0.83, 6);
+	setScaledSpinBoxWidth({ markLengthSpinBox, markOffsetSpinBox }, 0.80, 13);
 }
 
 void Prefs_Printer::restoreDefaults(struct ApplicationPrefs *prefsData)
@@ -83,6 +154,8 @@
 	altPrinterCmdLineEdit->setText(prefs->get("Command", ""));
 	outputComboBox->setCurrentIndex(prefs->getInt("Separations", 0));
 	colorOutputModeComboBox->setCurrentIndex(prefs->getInt("PrintColor", 0));
+	setComboBoxWidthsFromContents(outputComboBox, destinationComboBox);
+	matchComboBoxWidthsFromContents(printLanguageComboBox, colorOutputModeComboBox);
 	pageMirrorHorizontallyCheckBox->setChecked(prefs->getBool("MirrorH", false));
 	pageMirrorVerticallyCheckBox->setChecked(prefs->getBool("MirrorV", false));
 	setMediaSizeCheckBox->setChecked(prefs->getBool("doDev", false));
@@ -98,6 +171,7 @@
 	bleedsWidget->setup(bleeds, 0, docUnitIndex, NewMarginWidget::BleedWidgetFlags);
 	bleedsWidget->setPageWidth(prefsData->docSetupPrefs.pageWidth);
 	bleedsWidget->setPageHeight(prefsData->docSetupPrefs.pageHeight);
+	setScaledSpinBoxWidth(bleedsWidget->findChildren<ScrSpinBox*>(), 0.83, 6);
 	markLengthSpinBox->setValue(prefs->getDouble("markLength", 20.0) * unitRatio);
 	markOffsetSpinBox->setValue(prefs->getDouble("markOffset", 0.0) * unitRatio);
 	cropMarksCheckBox->setChecked(prefs->getBool("cropMarks", false));

qirat

2026-09-01 14:48

reporter   ~0054396

Issue History

Date Modified Username Field Change
2026-08-28 09:41 qirat New Issue
2026-08-28 09:41 qirat File Added: printer-preferences-layout-v1.16.patch
2026-08-28 09:41 qirat File Added: printer-prefs-ui-current.png
2026-08-28 09:41 qirat File Added: printer-prefs-ui-proposed.png
2026-08-28 09:42 qirat Tag Attached: #please_test
2026-09-01 14:47 qirat Note Added: 0054395
2026-09-01 14:47 qirat File Added: printer-preferences-layout-v1.34.patch
2026-09-01 14:48 qirat Note Added: 0054396
2026-09-01 14:48 qirat File Added: printer-prefs-ui-PROPOSED-v1.34.png