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