View Issue Details

IDProjectCategoryView StatusLast Update
0017950ScribusUser Interfacepublic2026-08-29 23:14
Reporterqirat Assigned To 
PrioritynormalSeverityminorReproducibilityN/A
Status newResolutionopen 
PlatformLinuxOSFedora WorkstationOS Version44
Product Version1.7.4.svn 
Summary0017950: [patch] User Interface Preferences UI Polish
Description* Reorganises User Interface Preferences into a clearer grouped, two-column layout.
* Keeps related options together under Appearance, Workspace, Story Editor, Interaction, Font Sizes, Language & Region, and Startup.
* Preserves the existing preference controls and storage behaviour.
* Improves consistency of control sizing, alignment, labels, and tooltips.
* Shows the default theme explicitly as System Default.
* Updates the Story Editor font button to show both font family and size.
* Adjusts keyboard tab order to follow the new visual layout.
* No preference schema or functional behaviour changes intended.
Additional Information+Screenshots showing current and proposed layouts.
Tags#please_test
Attached Files
user-interface-preferences-layout-v1.94.patch (40,764 bytes)   
Index: scribus/ui/preferences/prefs_userinterfacebase.ui
===================================================================
--- scribus/ui/preferences/prefs_userinterfacebase.ui	(revision 27785)
+++ scribus/ui/preferences/prefs_userinterfacebase.ui	(working copy)
@@ -44,449 +44,388 @@
     </widget>
    </item>
    <item>
-    <widget class="QTabWidget" name="tabWidget">
-     <property name="currentIndex">
-      <number>0</number>
+    <layout class="QHBoxLayout" name="userInterfaceLayout">
+     <property name="spacing">
+      <number>12</number>
      </property>
-     <widget class="QWidget" name="tab_3">
-      <attribute name="title">
-       <string>Main Window</string>
-      </attribute>
-      <layout class="QVBoxLayout" name="verticalLayout_3">
-       <item>
-        <widget class="QLabel" name="label">
-         <property name="font">
-          <font>
-           <bold>true</bold>
-          </font>
-         </property>
-         <property name="text">
-          <string>Appearance</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="Line" name="line_3">
-         <property name="orientation">
-          <enum>Qt::Orientation::Horizontal</enum>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <layout class="QFormLayout" name="formLayout">
-         <property name="fieldGrowthPolicy">
-          <enum>QFormLayout::FieldGrowthPolicy::FieldsStayAtSizeHint</enum>
-         </property>
-         <item row="0" column="0">
-          <widget class="QLabel" name="themeLabel">
-           <property name="text">
-            <string>&amp;Theme:</string>
-           </property>
-           <property name="buddy">
-            <cstring>themeComboBox</cstring>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="1">
-          <widget class="QComboBox" name="themeComboBox"/>
-         </item>
-         <item row="2" column="0">
-          <widget class="QLabel" name="label_3">
-           <property name="text">
-            <string>Icon Set:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="2" column="1">
-          <widget class="QComboBox" name="iconSetComboBox"/>
-         </item>
-         <item row="3" column="1">
-          <widget class="QCheckBox" name="useSmallWidgetsCheckBox">
-           <property name="text">
-            <string>Use Small Widgets on Palettes</string>
-           </property>
-          </widget>
-         </item>
-         <item row="6" column="1">
-          <widget class="QCheckBox" name="useTabsForDocumentsCheckBox">
-           <property name="text">
-            <string>Use Tabs for Documents</string>
-           </property>
-          </widget>
-         </item>
-         <item row="8" column="0">
-          <widget class="QLabel" name="recentDocumentsLabel">
-           <property name="text">
-            <string>&amp;Recent Documents:</string>
-           </property>
-           <property name="buddy">
-            <cstring>recentDocumentsSpinBox</cstring>
-           </property>
-          </widget>
-         </item>
-         <item row="8" column="1">
-          <widget class="QSpinBox" name="recentDocumentsSpinBox"/>
-         </item>
-         <item row="4" column="1">
-          <widget class="QCheckBox" name="showLabels">
-           <property name="text">
-            <string>Show Informational Labels</string>
-           </property>
-          </widget>
-         </item>
-         <item row="5" column="1">
-          <widget class="QCheckBox" name="showLabelsOfInactiveTabs">
-           <property name="text">
-            <string>Show Labels of Inactive Palette Tabs</string>
-           </property>
-          </widget>
-         </item>
-         <item row="7" column="1">
-          <widget class="QCheckBox" name="forceFloatingContainerTitleBarCheckBox">
-           <property name="text">
-            <string>Force Title Bars on Floating Palettes</string>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="0">
-          <widget class="QLabel" name="themePaletteLabel">
-           <property name="text">
-            <string>Appearance:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="1">
-          <widget class="QComboBox" name="themePaletteComboBox"/>
-         </item>
-        </layout>
-       </item>
-       <item>
-        <spacer name="verticalSpacer_6">
-         <property name="orientation">
-          <enum>Qt::Orientation::Vertical</enum>
-         </property>
-         <property name="sizeType">
-          <enum>QSizePolicy::Policy::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>
-           <bold>true</bold>
-          </font>
-         </property>
-         <property name="text">
-          <string>Language and Regionalization</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="Line" name="line_4">
-         <property name="orientation">
-          <enum>Qt::Orientation::Horizontal</enum>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <layout class="QFormLayout" name="formLayout_6">
-         <item row="0" column="0">
-          <widget class="QLabel" name="languageLabel">
-           <property name="text">
-            <string>&amp;Language:</string>
-           </property>
-           <property name="buddy">
-            <cstring>languageComboBox</cstring>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="1">
-          <widget class="QComboBox" name="languageComboBox"/>
-         </item>
-         <item row="1" column="0">
-          <widget class="QLabel" name="numberFormatLabel">
-           <property name="text">
-            <string>Number Format:</string>
-           </property>
-           <property name="buddy">
-            <cstring>numberFormatComboBox</cstring>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="1">
-          <widget class="QComboBox" name="numberFormatComboBox"/>
-         </item>
-        </layout>
-       </item>
-       <item>
-        <spacer name="verticalSpacer_4">
-         <property name="orientation">
-          <enum>Qt::Orientation::Vertical</enum>
-         </property>
-         <property name="sizeType">
-          <enum>QSizePolicy::Policy::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_2">
-         <property name="font">
-          <font>
-           <bold>true</bold>
-          </font>
-         </property>
-         <property name="text">
-          <string>Font Sizes</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="Line" name="line_2">
-         <property name="orientation">
-          <enum>Qt::Orientation::Horizontal</enum>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <layout class="QFormLayout" name="formLayout_2">
-         <item row="0" column="0">
-          <widget class="QLabel" name="fontSizeMenusLabel">
-           <property name="text">
-            <string>&amp;Menus:</string>
-           </property>
-           <property name="buddy">
-            <cstring>fontSizeMenuSpinBox</cstring>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="1">
-          <widget class="QSpinBox" name="fontSizeMenuSpinBox">
-           <property name="suffix">
-            <string> pt</string>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="0">
-          <widget class="QLabel" name="fontSizePalettesLabel">
-           <property name="text">
-            <string>&amp;Palettes:</string>
-           </property>
-           <property name="buddy">
-            <cstring>fontSizePaletteSpinBox</cstring>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="1">
-          <widget class="QSpinBox" name="fontSizePaletteSpinBox">
-           <property name="suffix">
-            <string> pt</string>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </item>
-       <item>
-        <spacer name="verticalSpacer_3">
-         <property name="orientation">
-          <enum>Qt::Orientation::Vertical</enum>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>20</width>
-           <height>40</height>
-          </size>
-         </property>
-        </spacer>
-       </item>
-      </layout>
-     </widget>
-     <widget class="QWidget" name="tab_4">
-      <attribute name="title">
-       <string>Story Editor</string>
-      </attribute>
-      <layout class="QVBoxLayout" name="verticalLayout_5">
-       <item>
-        <layout class="QFormLayout" name="formLayout_3">
-         <property name="fieldGrowthPolicy">
-          <enum>QFormLayout::FieldGrowthPolicy::FieldsStayAtSizeHint</enum>
-         </property>
-         <item row="0" column="0">
-          <widget class="QLabel" name="storyEditorFontLabel">
-           <property name="text">
-            <string>Font:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="1">
-          <widget class="QPushButton" name="storyEditorFontPushButton">
-           <property name="text">
-            <string/>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="1">
-          <widget class="QCheckBox" name="storyEditorUseSmartSelectionCheckBox">
-           <property name="text">
-            <string>Use Smart Text Selection</string>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </item>
-       <item>
-        <spacer name="verticalSpacer_5">
-         <property name="orientation">
-          <enum>Qt::Orientation::Vertical</enum>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>20</width>
-           <height>251</height>
-          </size>
-         </property>
-        </spacer>
-       </item>
-      </layout>
-     </widget>
-     <widget class="QWidget" name="tab">
-      <attribute name="title">
-       <string>Interactivity</string>
-      </attribute>
-      <layout class="QVBoxLayout" name="verticalLayout_4">
-       <item>
-        <layout class="QFormLayout" name="formLayout_4">
-         <property name="fieldGrowthPolicy">
-          <enum>QFormLayout::FieldGrowthPolicy::FieldsStayAtSizeHint</enum>
-         </property>
-         <item row="0" column="0">
-          <widget class="QLabel" name="resizeMoveDelayLabel">
-           <property name="text">
-            <string>Time before resize or move starts:</string>
-           </property>
-           <property name="buddy">
-            <cstring>resizeMoveDelaySpinBox</cstring>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="1">
-          <widget class="QSpinBox" name="resizeMoveDelaySpinBox">
-           <property name="suffix">
-            <string> ms</string>
-           </property>
-           <property name="maximum">
-            <number>9999</number>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="0">
-          <widget class="QLabel" name="wheelJumpLabel">
-           <property name="text">
-            <string>&amp;Wheel Jump:</string>
-           </property>
-           <property name="buddy">
-            <cstring>wheelJumpSpinBox</cstring>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="1">
-          <widget class="QSpinBox" name="wheelJumpSpinBox">
-           <property name="suffix">
-            <string> lines</string>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </item>
-       <item>
-        <spacer name="verticalSpacer_2">
-         <property name="orientation">
-          <enum>Qt::Orientation::Vertical</enum>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>20</width>
-           <height>266</height>
-          </size>
-         </property>
-        </spacer>
-       </item>
-      </layout>
-     </widget>
-     <widget class="QWidget" name="tab_5">
-      <attribute name="title">
-       <string>Start Up</string>
-      </attribute>
-      <layout class="QVBoxLayout" name="verticalLayout">
-       <item>
-        <layout class="QFormLayout" name="formLayout_5">
-         <item row="2" column="1">
-          <widget class="QCheckBox" name="showStartupDialogCheckBox">
-           <property name="text">
-            <string>Show Startup Dialog</string>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="1">
-          <widget class="QCheckBox" name="showSplashCheckBox">
-           <property name="text">
-            <string>Show Splashscreen</string>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </item>
-       <item>
-        <spacer name="verticalSpacer">
-         <property name="orientation">
-          <enum>Qt::Orientation::Vertical</enum>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>20</width>
-           <height>296</height>
-          </size>
-         </property>
-        </spacer>
-       </item>
-      </layout>
-     </widget>
-    </widget>
+     <item>
+      <widget class="QWidget" name="leftColumnWidget" native="true">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <layout class="QVBoxLayout" name="leftColumnLayout">
+        <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>
+        <property name="spacing">
+         <number>8</number>
+        </property>
+        <item>
+         <widget class="QGroupBox" name="appearanceGroupBox">
+          <property name="title"><string>&amp;Appearance</string></property>
+          <layout class="QVBoxLayout" name="appearanceLayout">
+           <item>
+            <layout class="QHBoxLayout" name="appearanceControlsLayout">
+             <item>
+              <widget class="FormWidget" name="themeFormWidget">
+               <property name="label" stdset="0"><string>Theme</string></property>
+               <layout class="QHBoxLayout" name="themeLayout">
+                <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="themeComboBox"/></item>
+               </layout>
+              </widget>
+             </item>
+             <item>
+              <widget class="FormWidget" name="themePaletteFormWidget">
+               <property name="label" stdset="0"><string>Appearance</string></property>
+               <layout class="QHBoxLayout" name="themePaletteLayout">
+                <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="themePaletteComboBox"/></item>
+               </layout>
+              </widget>
+             </item>
+             <item>
+              <widget class="FormWidget" name="iconSetFormWidget">
+               <property name="label" stdset="0"><string>Icon Set</string></property>
+               <layout class="QHBoxLayout" name="iconSetLayout">
+                <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="iconSetComboBox"/></item>
+               </layout>
+              </widget>
+             </item>
+             <item>
+              <spacer name="appearanceControlsSpacer">
+               <property name="orientation"><enum>Qt::Orientation::Horizontal</enum></property>
+               <property name="sizeHint" stdset="0"><size><width>0</width><height>20</height></size></property>
+              </spacer>
+             </item>
+            </layout>
+           </item>
+          </layout>
+         </widget>
+        </item>
+        <item>
+         <widget class="QGroupBox" name="workspaceGroupBox">
+          <property name="title"><string>&amp;Workspace</string></property>
+          <layout class="QVBoxLayout" name="workspaceLayout">
+           <item>
+            <layout class="QHBoxLayout" name="recentDocumentsRowLayout">
+             <item>
+              <widget class="QLabel" name="recentDocumentsLabel">
+               <property name="text"><string>Recent Documents:</string></property>
+               <property name="buddy"><cstring>recentDocumentsSpinBox</cstring></property>
+              </widget>
+             </item>
+             <item>
+              <widget class="QSpinBox" name="recentDocumentsSpinBox"/>
+             </item>
+             <item>
+              <spacer name="recentDocumentsSpacer">
+               <property name="orientation"><enum>Qt::Orientation::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="useTabsForDocumentsCheckBox">
+             <property name="text"><string>Use Tabs for Documents</string></property>
+            </widget>
+           </item>
+           <item>
+            <widget class="QCheckBox" name="showLabels">
+             <property name="text"><string>Show Informational Labels</string></property>
+            </widget>
+           </item>
+           <item>
+            <widget class="QCheckBox" name="showLabelsOfInactiveTabs">
+             <property name="text"><string>Show Labels on Inactive Palette Tabs</string></property>
+            </widget>
+           </item>
+           <item>
+            <widget class="QCheckBox" name="useSmallWidgetsCheckBox">
+             <property name="text"><string>Use Compact Controls in Palettes</string></property>
+            </widget>
+           </item>
+           <item>
+            <widget class="QCheckBox" name="forceFloatingContainerTitleBarCheckBox">
+             <property name="text"><string>Force Title Bars on Floating Palettes</string></property>
+            </widget>
+           </item>
+          </layout>
+         </widget>
+        </item>
+        <item>
+         <widget class="QGroupBox" name="storyEditorGroupBox">
+          <property name="title"><string>&amp;Story Editor</string></property>
+          <layout class="QVBoxLayout" name="storyEditorLayout">
+           <property name="spacing"><number>8</number></property>
+           <item>
+            <layout class="QHBoxLayout" name="storyEditorFontRowLayout">
+             <item>
+              <widget class="FormWidget" name="storyEditorFontFormWidget">
+               <property name="label" stdset="0"><string>Font &amp;&amp; Size</string></property>
+               <layout class="QHBoxLayout" name="storyEditorFontLayout">
+                <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="storyEditorFontPushButton">
+                  <property name="text"><string/></property>
+                 </widget>
+                </item>
+               </layout>
+              </widget>
+             </item>
+             <item>
+              <spacer name="storyEditorFontSpacer">
+               <property name="orientation"><enum>Qt::Orientation::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="storyEditorUseSmartSelectionCheckBox">
+             <property name="text"><string>Use Smart Text Selection</string></property>
+            </widget>
+           </item>
+          </layout>
+         </widget>
+        </item>
+        <item>
+         <widget class="QGroupBox" name="interactionGroupBox">
+          <property name="title"><string>I&amp;nteraction</string></property>
+          <layout class="QFormLayout" name="interactionLayout">
+           <property name="fieldGrowthPolicy"><enum>QFormLayout::FieldGrowthPolicy::FieldsStayAtSizeHint</enum></property>
+           <item row="0" column="0">
+            <widget class="QLabel" name="resizeMoveDelayLabel">
+             <property name="text"><string>Move/resize delay:</string></property>
+             <property name="buddy"><cstring>resizeMoveDelaySpinBox</cstring></property>
+            </widget>
+           </item>
+           <item row="0" column="1">
+            <widget class="QSpinBox" name="resizeMoveDelaySpinBox">
+             <property name="suffix"><string> ms</string></property>
+             <property name="maximum"><number>9999</number></property>
+            </widget>
+           </item>
+           <item row="1" column="0">
+            <widget class="QLabel" name="wheelJumpLabel">
+             <property name="text"><string>Mouse-wheel scroll step:</string></property>
+             <property name="buddy"><cstring>wheelJumpSpinBox</cstring></property>
+            </widget>
+           </item>
+           <item row="1" column="1">
+            <widget class="QSpinBox" name="wheelJumpSpinBox">
+             <property name="suffix"><string> px</string></property>
+            </widget>
+           </item>
+          </layout>
+         </widget>
+        </item>
+        <item>
+         <spacer name="leftColumnSpacer">
+          <property name="orientation"><enum>Qt::Orientation::Vertical</enum></property>
+          <property name="sizeHint" stdset="0">
+           <size><width>20</width><height>40</height></size>
+          </property>
+         </spacer>
+        </item>
+       </layout>
+      </widget>
+     </item>
+     <item>
+      <widget class="QWidget" name="rightColumnWidget" native="true">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <layout class="QVBoxLayout" name="rightColumnLayout">
+        <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>
+        <property name="spacing"><number>8</number></property>
+        <item>
+         <widget class="QGroupBox" name="fontSizesGroupBox">
+          <property name="title"><string>&amp;Font Sizes</string></property>
+          <layout class="QHBoxLayout" name="fontSizesLayout">
+           <property name="spacing"><number>9</number></property>
+           <item>
+            <widget class="FormWidget" name="fontSizeMenuFormWidget">
+             <property name="label" stdset="0"><string>Menus</string></property>
+             <layout class="QHBoxLayout" name="fontSizeMenuLayout">
+              <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="QSpinBox" name="fontSizeMenuSpinBox">
+                <property name="suffix"><string> pt</string></property>
+               </widget>
+              </item>
+             </layout>
+            </widget>
+           </item>
+           <item>
+            <widget class="FormWidget" name="fontSizePaletteFormWidget">
+             <property name="label" stdset="0"><string>Palettes</string></property>
+             <layout class="QHBoxLayout" name="fontSizePaletteLayout">
+              <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="QSpinBox" name="fontSizePaletteSpinBox">
+                <property name="suffix"><string> pt</string></property>
+               </widget>
+              </item>
+             </layout>
+            </widget>
+           </item>
+           <item>
+            <spacer name="fontSizesSpacer">
+             <property name="orientation"><enum>Qt::Orientation::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="QGroupBox" name="languageRegionGroupBox">
+          <property name="title"><string>&amp;Language &amp;&amp; Region</string></property>
+          <layout class="QVBoxLayout" name="languageRegionLayout">
+           <property name="spacing"><number>10</number></property>
+           <item>
+            <widget class="FormWidget" name="languageFormWidget">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="label" stdset="0"><string>Interface Language</string></property>
+             <layout class="QHBoxLayout" name="languageLayout">
+              <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="languageComboBox"/></item>
+             </layout>
+            </widget>
+           </item>
+           <item>
+            <widget class="FormWidget" name="numberFormatFormWidget">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="label" stdset="0"><string>Number Format</string></property>
+             <layout class="QHBoxLayout" name="numberFormatLayout">
+              <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="numberFormatComboBox"/></item>
+             </layout>
+            </widget>
+           </item>
+          </layout>
+         </widget>
+        </item>
+        <item>
+         <widget class="QGroupBox" name="startupGroupBox">
+          <property name="title"><string>Start&amp;up</string></property>
+          <layout class="QVBoxLayout" name="startupLayout">
+           <item>
+            <widget class="QCheckBox" name="showStartupDialogCheckBox">
+             <property name="text"><string>Show Startup Dialog</string></property>
+            </widget>
+           </item>
+           <item>
+            <widget class="QCheckBox" name="showSplashCheckBox">
+             <property name="text"><string>Show Splash Screen</string></property>
+            </widget>
+           </item>
+          </layout>
+         </widget>
+        </item>
+        <item>
+         <spacer name="rightColumnSpacer">
+          <property name="orientation"><enum>Qt::Orientation::Vertical</enum></property>
+          <property name="sizeHint" stdset="0"><size><width>20</width><height>40</height></size></property>
+         </spacer>
+        </item>
+       </layout>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer">
+       <property name="orientation"><enum>Qt::Orientation::Horizontal</enum></property>
+       <property name="sizeHint" stdset="0"><size><width>40</width><height>20</height></size></property>
+      </spacer>
+     </item>
+    </layout>
    </item>
   </layout>
  </widget>
  <tabstops>
-  <tabstop>tabWidget</tabstop>
   <tabstop>themeComboBox</tabstop>
+  <tabstop>themePaletteComboBox</tabstop>
   <tabstop>iconSetComboBox</tabstop>
-  <tabstop>useSmallWidgetsCheckBox</tabstop>
+  <tabstop>recentDocumentsSpinBox</tabstop>
+  <tabstop>useTabsForDocumentsCheckBox</tabstop>
   <tabstop>showLabels</tabstop>
   <tabstop>showLabelsOfInactiveTabs</tabstop>
-  <tabstop>useTabsForDocumentsCheckBox</tabstop>
-  <tabstop>recentDocumentsSpinBox</tabstop>
-  <tabstop>languageComboBox</tabstop>
-  <tabstop>numberFormatComboBox</tabstop>
+  <tabstop>useSmallWidgetsCheckBox</tabstop>
+  <tabstop>forceFloatingContainerTitleBarCheckBox</tabstop>
+  <tabstop>storyEditorFontPushButton</tabstop>
+  <tabstop>storyEditorUseSmartSelectionCheckBox</tabstop>
+  <tabstop>resizeMoveDelaySpinBox</tabstop>
+  <tabstop>wheelJumpSpinBox</tabstop>
   <tabstop>fontSizeMenuSpinBox</tabstop>
   <tabstop>fontSizePaletteSpinBox</tabstop>
-  <tabstop>wheelJumpSpinBox</tabstop>
-  <tabstop>showSplashCheckBox</tabstop>
+  <tabstop>languageComboBox</tabstop>
+  <tabstop>numberFormatComboBox</tabstop>
   <tabstop>showStartupDialogCheckBox</tabstop>
-  <tabstop>storyEditorUseSmartSelectionCheckBox</tabstop>
-  <tabstop>resizeMoveDelaySpinBox</tabstop>
-  <tabstop>storyEditorFontPushButton</tabstop>
+  <tabstop>showSplashCheckBox</tabstop>
  </tabstops>
+ <customwidgets>
+  <customwidget>
+   <class>FormWidget</class>
+   <extends>QWidget</extends>
+   <header>ui/widgets/form_widget.h</header>
+   <container>1</container>
+  </customwidget>
+ </customwidgets>
  <resources/>
  <connections/>
 </ui>
Index: scribus/ui/preferences/prefs_userinterface.cpp
===================================================================
--- scribus/ui/preferences/prefs_userinterface.cpp	(revision 27785)
+++ scribus/ui/preferences/prefs_userinterface.cpp	(working copy)
@@ -24,14 +24,18 @@
 	: Prefs_Pane(parent)
 {
 	setupUi(this);
+	constexpr int interactionSpinBoxWidth = 76;
+	resizeMoveDelaySpinBox->setFixedWidth(interactionSpinBoxWidth);
+	wheelJumpSpinBox->setFixedWidth(interactionSpinBoxWidth);
 	languageChange();
 	m_caption = tr("User Interface");
 	m_icon = "pref-ui";
 
 	// qt styles
 	QStringList styleList = QStyleFactory::keys();
-	themeComboBox->addItem("");
-	themeComboBox->addItems(styleList);
+	themeComboBox->addItem(tr("System Default"), QString());
+	for (const QString& style : std::as_const(styleList))
+		themeComboBox->addItem(style, style);
 	QStringList iconSetList;
 	iconSetList = IconManager::instance().nameList(ScQApp->currGUILanguage());
 	iconSetComboBox->addItems(iconSetList);
@@ -40,10 +44,11 @@
 
 	numberFormatComboBox->addItem(tr("Use System Format"),"System");
 	numberFormatComboBox->addItem(tr("Use Interface Language Format"),"Language");
+	rightColumnWidget->setMinimumWidth(rightColumnWidget->sizeHint().width() + 4);
 
 #if (QT_VERSION < QT_VERSION_CHECK(6, 8, 0))
 	themePaletteComboBox->setVisible(false);
-	themePaletteLabel->setVisible(false);
+	themePaletteFormWidget->setVisible(false);
 #endif
 
 	connect(languageComboBox, SIGNAL(currentTextChanged(QString)), this, SLOT(setSelectedGUILang(QString)));
@@ -58,24 +63,22 @@
 	themePaletteComboBox->addItem(tr("Auto"), "auto");
 	themePaletteComboBox->addItem(tr("Light"), "light");
 	themePaletteComboBox->addItem(tr("Dark"), "dark");
-	themePaletteComboBox->setToolTip( "<qt>" + tr( "Choose the default theme palette. Auto uses the systems default." ) + "</qt>");
-
-	themeComboBox->setToolTip( "<qt>" + tr( "Choose the default window decoration and looks. Scribus inherits any available KDE or Qt themes, if Qt is configured to search KDE plugins." ) + "</qt>");
-	iconSetComboBox->setToolTip( "<qt>" + tr( "Choose the default icon set" ) + "</qt>");
-	useSmallWidgetsCheckBox->setToolTip( "<qt>" + tr( "Palette windows will use smaller (space savvy) widgets. Requires application restart." ) + "</qt>");
-	recentDocumentsSpinBox->setToolTip( "<qt>" + tr( "Number of recently edited documents to show in the File menu" ) + "</qt>");
-	languageComboBox->setToolTip( "<qt>" + tr( "Select your default language for Scribus to run with. Leave this blank to choose based on environment variables. You can still override this by passing a command line option when starting Scribus." )+"</qt>");
-	numberFormatComboBox->setToolTip( "<qt>" + tr( "Use either the system or selected language related definition for number formats for decimals for numbers in the interface" ) + "</qt>");
-	fontSizeMenuSpinBox->setToolTip( "<qt>" + tr( "Default font size for the menus and windows" ) + "</qt>");
-	fontSizePaletteSpinBox->setToolTip( "<qt>" + tr( "Default font size for the tool windows" ) + "</qt>");
-	resizeMoveDelaySpinBox->setToolTip( "<qt>" + tr( "Time before resize or move starts allows for a slight delay between when you click and the operation happens to avoid unintended moves. This can be helpful when dealing with mouse sensitivity settings or accessibility issues related to ergonomic mice, touch pads or moveability of the wrists and hands." ) + "</qt>");
-	wheelJumpSpinBox->setToolTip( "<qt>" + tr( "Number of lines Scribus will scroll for each \"notch\" of the mouse wheel" ) + "</qt>");
-	//showSplashCheckBox->setToolTip( "<qt>" + tr( "" ) + "</qt>");
-	//showStartupDialogCheckBox->setToolTip( "<qt>" + tr( "" ) + "</qt>");
-	storyEditorUseSmartSelectionCheckBox->setToolTip( "<qt>" + tr( "The default behavior when double-clicking on a word is to select the word and the first following space. Smart selection will select only the word, without the following space." ) + "</qt>");
-	showLabels->setToolTip("<qt>" + tr( "Shows informational labels on palettes." ) + "</qt>");
-	showLabelsOfInactiveTabs->setToolTip("<qt>" + tr( "Shows labels of inactive palette tabs." ) + "</qt>");
-	forceFloatingContainerTitleBarCheckBox->setToolTip("<qt>" + tr( "Forces a title bar on floating palette windows. Useful on desktop environments that do not draw one, which can otherwise make palettes hard to move. Requires application restart." ) + "</qt>");
+	themePaletteComboBox->setToolTip("<qt>" + tr("Choose the application appearance.") + "<br/>" + tr("Auto follows the system.") + "</qt>");
+	themeComboBox->setToolTip("<qt>" + tr("Choose the Qt widget theme used by Scribus.") + "</qt>");
+	iconSetComboBox->setToolTip("<qt>" + tr("Choose the icon set used by Scribus.") + "</qt>");
+	useSmallWidgetsCheckBox->setToolTip("<qt>" + tr("Use smaller controls in palettes to save space.") + "<br/>" + tr("Requires application restart.") + "</qt>");
+	recentDocumentsSpinBox->setToolTip("<qt>" + tr("Number of recent documents shown in the File menu.") + "</qt>");
+	languageComboBox->setToolTip("<qt>" + tr("Choose the interface language used by Scribus.") + "</qt>");
+	numberFormatComboBox->setToolTip("<qt>" + tr("Use the system number format") + "<br/>" + tr("or the interface language format.") + "</qt>");
+	fontSizeMenuSpinBox->setToolTip("<qt>" + tr("Font size for menus and application windows.") + "</qt>");
+	fontSizePaletteSpinBox->setToolTip("<qt>" + tr("Font size for palette windows.") + "</qt>");
+	resizeMoveDelaySpinBox->setToolTip("<qt>" + tr("Delay before dragging begins.") + "<br/>" + tr("Helps prevent accidental moves.") + "</qt>");
+	wheelJumpSpinBox->setToolTip("<qt>" + tr("Distance the canvas scrolls") + "<br/>" + tr("for each mouse-wheel step.") + "</qt>");
+	storyEditorFontPushButton->setToolTip("<qt>" + tr("Choose the font and size used in the Story Editor.") + "</qt>");
+	storyEditorUseSmartSelectionCheckBox->setToolTip("<qt>" + tr("Select only the word when double-clicking in the Story Editor.") + "<br/>" + tr("The following space is excluded.") + "</qt>");
+	showLabels->setToolTip("<qt>" + tr("Show informational labels in palettes.") + "</qt>");
+	showLabelsOfInactiveTabs->setToolTip("<qt>" + tr("Show text labels on inactive palette tabs.") + "<br/>" + tr("Requires application restart.") + "</qt>");
+	forceFloatingContainerTitleBarCheckBox->setToolTip("<qt>" + tr("Show title bars on floating palettes.") + "<br/>" + tr("Useful when the desktop environment does not provide them.") + "<br/>" + tr("Requires application restart.") + "</qt>");
 }
 
 void Prefs_UserInterface::restoreDefaults(struct ApplicationPrefs *prefsData)
@@ -98,7 +101,8 @@
 	if (langIdx >= 0)
 		languageComboBox->setCurrentIndex(langIdx);
 	numberFormatComboBox->setCurrentIndex(prefsData->uiPrefs.userPreferredLocale == "System" ? 0 : 1);
-	setCurrentComboItem(themeComboBox, prefsData->uiPrefs.style);
+	int themeIndex = themeComboBox->findData(prefsData->uiPrefs.style);
+	themeComboBox->setCurrentIndex(themeIndex >= 0 ? themeIndex : 0);
 	setCurrentComboItem(iconSetComboBox, prefsData->uiPrefs.iconSet);
 	fontSizeMenuSpinBox->setValue( prefsData->uiPrefs.applicationFontSize );
 	fontSizePaletteSpinBox->setValue( prefsData->uiPrefs.paletteFontSize);
@@ -115,14 +119,14 @@
 
 	storyEditorUseSmartSelectionCheckBox->setChecked(prefsData->storyEditorPrefs.smartTextSelection);
 	seFont.fromString(prefsData->storyEditorPrefs.guiFont);
-	storyEditorFontPushButton->setText(seFont.family());
+	storyEditorFontPushButton->setText(tr("%1, %2 pt").arg(seFont.family()).arg(seFont.pointSize()));
 }
 
 void Prefs_UserInterface::saveGuiToPrefs(struct ApplicationPrefs *prefsData) const
 {
 	prefsData->uiPrefs.language = selectedGUILang;
 	prefsData->uiPrefs.userPreferredLocale = numberFormatComboBox->currentData().toString();
-	prefsData->uiPrefs.style = themeComboBox->currentText();
+	prefsData->uiPrefs.style = themeComboBox->currentData().toString();
 	prefsData->uiPrefs.stylePalette = themePaletteComboBox->currentData().toString();
 	prefsData->uiPrefs.iconSet = IconManager::instance().baseNameForTranslation(iconSetComboBox->currentText());
 	prefsData->uiPrefs.applicationFontSize = fontSizeMenuSpinBox->value();
@@ -155,7 +159,7 @@
 	if (!ok)
 		return;
 	seFont = newFont;
-	storyEditorFontPushButton->setText(seFont.family());
+	storyEditorFontPushButton->setText(tr("%1, %2 pt").arg(seFont.family()).arg(seFont.pointSize()));
 }
 
 void Prefs_UserInterface::addLanguages()
user-interface-ui-current.png (387,616 bytes)   
user-interface-ui-current.png (387,616 bytes)   
user-interface-ui-proposed.png (434,171 bytes)   
user-interface-ui-proposed.png (434,171 bytes)   
PatchYes

Activities

ale

2026-08-28 16:16

manager   ~0054358

I'm not a fan of the two columns for making the preferences more compact.

Otherwise, it looks fine.

qirat

2026-08-28 16:24

reporter   ~0054359

Two columns is the only way to see all at once, @ale. Especially for people who don't like to scroll for something that should be just there.

qirat

2026-08-28 16:30

reporter   ~0054360

I appreciate your quick feedback, and willing to discuss more if you have a better idea.

jghali

2026-08-29 16:42

administrator   ~0054373

I am not a fan of the two columns presentation either, that increase the visual clutter.

qirat

2026-08-29 23:14

reporter   ~0054376

Ok, @ale and @jghali. I see your point. So, one column that scrolls? Or, Tabs?

Issue History

Date Modified Username Field Change
2026-08-28 10:12 qirat New Issue
2026-08-28 10:12 qirat File Added: user-interface-preferences-layout-v1.94.patch
2026-08-28 10:12 qirat File Added: user-interface-ui-current.png
2026-08-28 10:12 qirat File Added: user-interface-ui-proposed.png
2026-08-28 10:13 qirat Tag Attached: #please_test
2026-08-28 16:16 ale Note Added: 0054358
2026-08-28 16:24 qirat Note Added: 0054359
2026-08-28 16:30 qirat Note Added: 0054360
2026-08-29 16:42 jghali Note Added: 0054373
2026-08-29 23:14 qirat Note Added: 0054376