View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0017956 | Scribus | User Interface | public | 2026-08-30 09:39 | 2026-08-30 09:39 |
| Reporter | qirat | 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 | 0017956: [patch] External Tools Preferences UI Polish | ||||
| Description | - Reworks `prefs_externaltoolsbase.ui` from a scroll-area layout to a compact single-column layout. - Groups controls into PostScript Interpreter, External Applications, and Render Frames. - Consolidates external application paths into one aligned grid and replaces repeated text browse buttons with icon-only `QToolButton`s using `IconManager`. - Reorganizes Render Frame configuration actions as Up / Down / Edit / Add / Delete beside the list, with tooltips and accessible names. - Removes the unused `latexEmbeddedEditorCheckBox` / Use Embedded Editor UI. - Places Render Frame DPI directly after Force DPI: and connects `latexForceDPICheckBox::toggled(bool)` to `latexResolutionSpinBox::setEnabled(bool)`. - Sets both DPI spinboxes to a consistent 90 px width. - Renames the pane-wide action to Rescan Tools and keeps the existing reload icon. - Reorders TAB navigation to match the new visual layout. - No preference schema/storage changes; external-tool behavior is otherwise unchanged. - Files touched: `prefs_externaltoolsbase.ui`, `prefs_externaltools.cpp`. | ||||
| Additional Information | +Screenshots for current and proposed UI | ||||
| Tags | #please_test | ||||
| Attached Files | external-tools-preferences-layout-r27797-v1.8.patch (48,216 bytes)
Index: scribus/ui/preferences/prefs_externaltoolsbase.ui
===================================================================
--- scribus/ui/preferences/prefs_externaltoolsbase.ui (revision 27797)
+++ scribus/ui/preferences/prefs_externaltoolsbase.ui (working copy)
@@ -48,715 +48,557 @@
</widget>
</item>
<item>
- <widget class="QScrollArea" name="scrollArea">
- <property name="widgetResizable">
- <bool>true</bool>
+ <widget class="QGroupBox" name="postScriptGroupBox">
+ <property name="title">
+ <string>&PostScript Interpreter (Ghostscript)</string>
</property>
- <widget class="QWidget" name="scrollAreaWidgetContents">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>732</width>
- <height>969</height>
- </rect>
+ <layout class="QGridLayout" name="postScriptLayout">
+ <property name="horizontalSpacing">
+ <number>6</number>
</property>
- <layout class="QVBoxLayout" name="verticalLayout_3">
- <item>
- <widget class="QLabel" name="label_2">
- <property name="font">
- <font>
- <weight>75</weight>
- <bold>true</bold>
- </font>
- </property>
- <property name="text">
- <string>PostScript Interpreter</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="Line" name="line">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- </widget>
- </item>
- <item>
- <layout class="QHBoxLayout">
- <item>
- <widget class="QLabel" name="psToolLabel">
- <property name="text">
- <string>&Name of Executable:</string>
- </property>
- <property name="wordWrap">
- <bool>false</bool>
- </property>
- <property name="buddy">
- <cstring>psToolLineEdit</cstring>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLineEdit" name="psToolLineEdit">
- <property name="toolTip">
- <string><qt>Add the path for the Ghostscript interpreter. On Windows, please note it is important to note you need to use the program named gswin32c.exe - NOT gswin32.exe. Otherwise, this maybe cause a hang when starting Scribus.</qt></string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="psToolChangeButton">
- <property name="text">
- <string>&Change...</string>
- </property>
- <property name="shortcut">
- <string>Alt+C</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout">
- <item>
- <widget class="QCheckBox" name="psAntialiasTextCheckBox">
- <property name="toolTip">
- <string>Antialias text for EPS and PDF onscreen rendering</string>
- </property>
- <property name="text">
- <string>Antialias &Text</string>
- </property>
- <property name="shortcut">
- <string>Alt+T</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer>
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>QSizePolicy::Minimum</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QCheckBox" name="psAntialiasGraphicsCheckBox">
- <property name="toolTip">
- <string>Antialias graphics for EPS and PDF onscreen rendering</string>
- </property>
- <property name="text">
- <string>Antialias &Graphics</string>
- </property>
- <property name="shortcut">
- <string>Alt+G</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer>
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>QSizePolicy::Minimum</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QLabel" name="psResolutionLabel">
- <property name="text">
- <string>Resolution:</string>
- </property>
- <property name="wordWrap">
- <bool>false</bool>
- </property>
- <property name="buddy">
- <cstring>psResolutionSpinBox</cstring>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QSpinBox" name="psResolutionSpinBox">
- <property name="suffix">
- <string> dpi</string>
- </property>
- <property name="minimum">
- <number>10</number>
- </property>
- <property name="maximum">
- <number>2400</number>
- </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">
- <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_3">
- <property name="font">
- <font>
- <weight>75</weight>
- <bold>true</bold>
- </font>
- </property>
- <property name="text">
- <string>Image Processing Tool</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_3">
- <item>
- <widget class="QLabel" name="imageToolLabel">
- <property name="text">
- <string>Name of &Executable:</string>
- </property>
- <property name="wordWrap">
- <bool>false</bool>
- </property>
- <property name="buddy">
- <cstring>imageToolLineEdit</cstring>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLineEdit" name="imageToolLineEdit">
- <property name="toolTip">
- <string><qt>File system location for graphics editor</qt></string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="imageToolChangeButton">
- <property name="text">
- <string>&Change...</string>
- </property>
- <property name="shortcut">
- <string>Alt+C</string>
- </property>
- </widget>
- </item>
- </layout>
- </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_4">
- <property name="font">
- <font>
- <weight>75</weight>
- <bold>true</bold>
- </font>
- </property>
- <property name="text">
- <string>Web Browser</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="Line" name="line_4">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- </widget>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_4">
- <item>
- <widget class="QLabel" name="webBrowserLabel">
- <property name="text">
- <string>Name of &Executable:</string>
- </property>
- <property name="wordWrap">
- <bool>false</bool>
- </property>
- <property name="buddy">
- <cstring>imageToolLineEdit</cstring>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLineEdit" name="webBrowserLineEdit">
- <property name="toolTip">
- <string><qt>File system location for web browser</qt></string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="webBrowserChangeButton">
- <property name="text">
- <string>&Change...</string>
- </property>
- <property name="shortcut">
- <string>Alt+C</string>
- </property>
- </widget>
- </item>
- </layout>
- </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_8">
- <property name="font">
- <font>
- <weight>75</weight>
- <bold>true</bold>
- </font>
- </property>
- <property name="text">
- <string>PDF Viewer</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_2">
- <item>
- <widget class="QLabel" name="pdfViewerLabel">
- <property name="text">
- <string>Name of &Executable:</string>
- </property>
- <property name="buddy">
- <cstring>pdfViewerLineEdit</cstring>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLineEdit" name="pdfViewerLineEdit">
- <property name="toolTip">
- <string><qt>File system location for PDF viewer</qt></string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="pdfViewerChangeButton">
- <property name="text">
- <string>&Change...</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <spacer name="verticalSpacer_6">
- <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>Uniconvertor</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="Line" name="line_7">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- </widget>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_5">
- <item>
- <widget class="QLabel" name="uniconverterLabel">
- <property name="text">
- <string>Name of &Executable:</string>
- </property>
- <property name="wordWrap">
- <bool>false</bool>
- </property>
- <property name="buddy">
- <cstring>imageToolLineEdit</cstring>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLineEdit" name="uniconvertorLineEdit">
- <property name="toolTip">
- <string><qt>File system location for Uniconvertor</qt></string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="uniconvertorChangeButton">
- <property name="text">
- <string>&Change...</string>
- </property>
- <property name="shortcut">
- <string>Alt+C</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <spacer name="verticalSpacer_5">
- <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>Render Frames</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="Line" name="line_2">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLabel" name="label">
- <property name="text">
- <string>Configurations:</string>
- </property>
- </widget>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout">
- <item>
- <widget class="QListWidget" name="latexConfigsListWidget"/>
- </item>
- <item>
- <layout class="QVBoxLayout" name="verticalLayout_2">
- <item>
- <widget class="QPushButton" name="latexConfigUpButton">
- <property name="text">
- <string>Up</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="latexConfigDownButton">
- <property name="text">
- <string>Down</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="latexConfigAddButton">
- <property name="text">
- <string>Add</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="latexConfigDeleteButton">
- <property name="text">
- <string>Delete</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="latexConfigChangeCommandButton">
- <property name="text">
- <string>Change...</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout">
- <item>
- <widget class="QLabel" name="latexEditorLabel">
- <property name="text">
- <string>External Editor:</string>
- </property>
- <property name="wordWrap">
- <bool>false</bool>
- </property>
- <property name="buddy">
- <cstring>latexEditorLineEdit</cstring>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLineEdit" name="latexEditorLineEdit">
- <property name="toolTip">
- <string><qt>Path to the editor executable</qt></string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="latexEditorChangeButton">
- <property name="text">
- <string>&Change...</string>
- </property>
- <property name="shortcut">
- <string>Alt+C</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout">
- <item>
- <widget class="QCheckBox" name="latexEmptyFrameCheckBox">
- <property name="text">
- <string>Start with empty frame</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer>
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>QSizePolicy::Minimum</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QCheckBox" name="latexEmbeddedEditorCheckBox">
- <property name="enabled">
- <bool>true</bool>
- </property>
- <property name="text">
- <string>Use Embedded Editor</string>
- </property>
- </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>
- <layout class="QHBoxLayout">
- <item>
- <widget class="QCheckBox" name="latexForceDPICheckBox">
- <property name="toolTip">
- <string>Always use the configured DPI setting for calculating the size, even if the image file reports something different</string>
- </property>
- <property name="text">
- <string>Force DPI</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer>
- <property name="orientation">
- <enum>Qt::Horizontal</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="latexResolutionLabel">
- <property name="text">
- <string>Resolution:</string>
- </property>
- <property name="wordWrap">
- <bool>false</bool>
- </property>
- <property name="buddy">
- <cstring>latexResolutionSpinBox</cstring>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QSpinBox" name="latexResolutionSpinBox">
- <property name="suffix">
- <string> dpi</string>
- </property>
- <property name="minimum">
- <number>10</number>
- </property>
- <property name="maximum">
- <number>2400</number>
- </property>
- </widget>
- </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_4">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeType">
- <enum>QSizePolicy::MinimumExpanding</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>0</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </widget>
+ <property name="verticalSpacing">
+ <number>4</number>
+ </property>
+ <item row="0" column="0">
+ <widget class="QLabel" name="psToolLabel">
+ <property name="text">
+ <string>Executable:</string>
+ </property>
+ <property name="buddy">
+ <cstring>psToolLineEdit</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLineEdit" name="psToolLineEdit">
+ <property name="toolTip">
+ <string><qt>Path to the Ghostscript interpreter. On Windows, use the console executable (gswin32c.exe) rather than gswin32.exe to avoid startup hangs.</qt></string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2">
+ <widget class="QToolButton" name="psToolChangeButton">
+ <property name="toolTip">
+ <string>Choose the Ghostscript executable.</string>
+ </property>
+ <property name="accessibleName">
+ <string>Choose Ghostscript executable</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="toolButtonStyle">
+ <enum>Qt::ToolButtonIconOnly</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="3">
+ <layout class="QHBoxLayout" name="postScriptOptionsLayout">
+ <property name="spacing">
+ <number>12</number>
+ </property>
+ <item>
+ <widget class="QCheckBox" name="psAntialiasTextCheckBox">
+ <property name="toolTip">
+ <string>Antialias text for EPS and PDF onscreen rendering</string>
+ </property>
+ <property name="text">
+ <string>Antialias Text</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="psAntialiasGraphicsCheckBox">
+ <property name="toolTip">
+ <string>Antialias graphics for EPS and PDF onscreen rendering</string>
+ </property>
+ <property name="text">
+ <string>Antialias Graphics</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="postScriptOptionsSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</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>
+ <item>
+ <widget class="QLabel" name="psResolutionLabel">
+ <property name="text">
+ <string>Resolution:</string>
+ </property>
+ <property name="buddy">
+ <cstring>psResolutionSpinBox</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="psResolutionSpinBox">
+ <property name="minimumSize">
+ <size>
+ <width>90</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>90</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="toolTip">
+ <string>Set the resolution used by the PostScript interpreter for rendering.</string>
+ </property>
+ <property name="suffix">
+ <string> DPI</string>
+ </property>
+ <property name="minimum">
+ <number>10</number>
+ </property>
+ <property name="maximum">
+ <number>2400</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="externalApplicationsGroupBox">
+ <property name="title">
+ <string>External &Applications</string>
+ </property>
+ <layout class="QGridLayout" name="externalApplicationsLayout">
+ <property name="horizontalSpacing">
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing">
+ <number>4</number>
+ </property>
+ <item row="0" column="0">
+ <widget class="QLabel" name="imageToolLabel">
+ <property name="text">
+ <string>Image Editor:</string>
+ </property>
+ <property name="buddy">
+ <cstring>imageToolLineEdit</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLineEdit" name="imageToolLineEdit">
+ <property name="toolTip">
+ <string>Executable used for external image editing.</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2">
+ <widget class="QToolButton" name="imageToolChangeButton">
+ <property name="toolTip">
+ <string>Choose the image editor executable.</string>
+ </property>
+ <property name="accessibleName">
+ <string>Choose image editor executable</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="toolButtonStyle">
+ <enum>Qt::ToolButtonIconOnly</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="pdfViewerLabel">
+ <property name="text">
+ <string>PDF Viewer:</string>
+ </property>
+ <property name="buddy">
+ <cstring>pdfViewerLineEdit</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QLineEdit" name="pdfViewerLineEdit">
+ <property name="toolTip">
+ <string>Executable used to open PDF files.</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2">
+ <widget class="QToolButton" name="pdfViewerChangeButton">
+ <property name="toolTip">
+ <string>Choose the PDF viewer executable.</string>
+ </property>
+ <property name="accessibleName">
+ <string>Choose PDF viewer executable</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="toolButtonStyle">
+ <enum>Qt::ToolButtonIconOnly</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="webBrowserLabel">
+ <property name="text">
+ <string>Web Browser:</string>
+ </property>
+ <property name="buddy">
+ <cstring>webBrowserLineEdit</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QLineEdit" name="webBrowserLineEdit">
+ <property name="toolTip">
+ <string>Executable used to open web links.</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2">
+ <widget class="QToolButton" name="webBrowserChangeButton">
+ <property name="toolTip">
+ <string>Choose the web browser executable.</string>
+ </property>
+ <property name="accessibleName">
+ <string>Choose web browser executable</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="toolButtonStyle">
+ <enum>Qt::ToolButtonIconOnly</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="uniconverterLabel">
+ <property name="text">
+ <string>UniConvertor:</string>
+ </property>
+ <property name="buddy">
+ <cstring>uniconvertorLineEdit</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1">
+ <widget class="QLineEdit" name="uniconvertorLineEdit">
+ <property name="toolTip">
+ <string>UniConvertor executable used for vector-file conversion.</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="2">
+ <widget class="QToolButton" name="uniconvertorChangeButton">
+ <property name="toolTip">
+ <string>Choose the UniConvertor executable.</string>
+ </property>
+ <property name="accessibleName">
+ <string>Choose UniConvertor executable</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="toolButtonStyle">
+ <enum>Qt::ToolButtonIconOnly</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="renderFramesGroupBox">
+ <property name="title">
+ <string>&Render Frames</string>
+ </property>
+ <layout class="QVBoxLayout" name="renderFramesLayout">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Configurations:</string>
+ </property>
+ <property name="buddy">
+ <cstring>latexConfigsListWidget</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="latexConfigsLayout">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <item>
+ <widget class="QListWidget" name="latexConfigsListWidget">
+ <property name="toolTip">
+ <string>Select a render-frame configuration to reorder, remove, or edit its command.</string>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>104</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="latexConfigActionsLayout">
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QToolButton" name="latexConfigUpButton">
+ <property name="toolTip">
+ <string>Move the selected configuration up in the list.</string>
+ </property>
+ <property name="accessibleName">
+ <string>Move configuration up</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="toolButtonStyle">
+ <enum>Qt::ToolButtonIconOnly</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="latexConfigDownButton">
+ <property name="toolTip">
+ <string>Move the selected configuration down in the list.</string>
+ </property>
+ <property name="accessibleName">
+ <string>Move configuration down</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="toolButtonStyle">
+ <enum>Qt::ToolButtonIconOnly</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="latexConfigChangeCommandButton">
+ <property name="toolTip">
+ <string>Edit the selected configuration command.</string>
+ </property>
+ <property name="accessibleName">
+ <string>Edit render-frame command</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="toolButtonStyle">
+ <enum>Qt::ToolButtonIconOnly</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="latexConfigAddButton">
+ <property name="toolTip">
+ <string>Add a render-frame configuration.</string>
+ </property>
+ <property name="accessibleName">
+ <string>Add render-frame configuration</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="toolButtonStyle">
+ <enum>Qt::ToolButtonIconOnly</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="latexConfigDeleteButton">
+ <property name="toolTip">
+ <string>Remove the selected configuration.</string>
+ </property>
+ <property name="accessibleName">
+ <string>Remove render-frame configuration</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="toolButtonStyle">
+ <enum>Qt::ToolButtonIconOnly</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="latexConfigActionsSpacer">
+ <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>
+ </layout>
+ </item>
+ <item>
+ <layout class="QGridLayout" name="latexEditorLayout">
+ <property name="horizontalSpacing">
+ <number>6</number>
+ </property>
+ <property name="verticalSpacing">
+ <number>4</number>
+ </property>
+ <item row="0" column="0">
+ <widget class="QLabel" name="latexEditorLabel">
+ <property name="text">
+ <string>External Editor:</string>
+ </property>
+ <property name="buddy">
+ <cstring>latexEditorLineEdit</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLineEdit" name="latexEditorLineEdit">
+ <property name="toolTip">
+ <string>Executable used to edit Render Frame source files externally.</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2">
+ <widget class="QToolButton" name="latexEditorChangeButton">
+ <property name="toolTip">
+ <string>Choose the external editor executable.</string>
+ </property>
+ <property name="accessibleName">
+ <string>Choose external editor executable</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="toolButtonStyle">
+ <enum>Qt::ToolButtonIconOnly</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="latexOptionsLayout">
+ <property name="spacing">
+ <number>8</number>
+ </property>
+ <item>
+ <widget class="QCheckBox" name="latexEmptyFrameCheckBox">
+ <property name="text">
+ <string>Start with an empty frame</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="latexOptionsSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</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>
+ <item>
+ <widget class="QCheckBox" name="latexForceDPICheckBox">
+ <property name="toolTip">
+ <string>Always use the configured resolution when calculating the rendered size, even if the image reports a different value.</string>
+ </property>
+ <property name="text">
+ <string>Force DPI:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="latexResolutionSpinBox">
+ <property name="minimumSize">
+ <size>
+ <width>90</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>90</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="toolTip">
+ <string>Set the rendering resolution used when Force DPI is enabled.</string>
+ </property>
+ <property name="suffix">
+ <string> DPI</string>
+ </property>
+ <property name="minimum">
+ <number>10</number>
+ </property>
+ <property name="maximum">
+ <number>2400</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
</widget>
</item>
<item>
- <layout class="QHBoxLayout">
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>0</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="bottomActionsLayout">
<item>
- <spacer>
+ <spacer name="bottomActionsSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@@ -765,8 +607,8 @@
</property>
<property name="sizeHint" stdset="0">
<size>
- <width>161</width>
- <height>21</height>
+ <width>20</width>
+ <height>20</height>
</size>
</property>
</spacer>
@@ -774,13 +616,10 @@
<item>
<widget class="QPushButton" name="rescanButton">
<property name="toolTip">
- <string>Rescan for the external tools if they do not exist in the already specified location</string>
+ <string>Rescan configured external tools and replace missing or invalid executable paths.</string>
</property>
<property name="text">
- <string>&Rescan</string>
- </property>
- <property name="shortcut">
- <string>Alt+R</string>
+ <string>Rescan Tools</string>
</property>
</widget>
</item>
@@ -789,7 +628,6 @@
</layout>
</widget>
<tabstops>
- <tabstop>scrollArea</tabstop>
<tabstop>psToolLineEdit</tabstop>
<tabstop>psToolChangeButton</tabstop>
<tabstop>psAntialiasTextCheckBox</tabstop>
@@ -797,24 +635,23 @@
<tabstop>psResolutionSpinBox</tabstop>
<tabstop>imageToolLineEdit</tabstop>
<tabstop>imageToolChangeButton</tabstop>
- <tabstop>webBrowserLineEdit</tabstop>
- <tabstop>webBrowserChangeButton</tabstop>
<tabstop>pdfViewerLineEdit</tabstop>
<tabstop>pdfViewerChangeButton</tabstop>
+ <tabstop>webBrowserLineEdit</tabstop>
+ <tabstop>webBrowserChangeButton</tabstop>
<tabstop>uniconvertorLineEdit</tabstop>
<tabstop>uniconvertorChangeButton</tabstop>
<tabstop>latexConfigsListWidget</tabstop>
- <tabstop>latexEditorLineEdit</tabstop>
- <tabstop>latexEmptyFrameCheckBox</tabstop>
- <tabstop>latexEmbeddedEditorCheckBox</tabstop>
- <tabstop>latexForceDPICheckBox</tabstop>
- <tabstop>latexResolutionSpinBox</tabstop>
<tabstop>latexConfigUpButton</tabstop>
<tabstop>latexConfigDownButton</tabstop>
+ <tabstop>latexConfigChangeCommandButton</tabstop>
<tabstop>latexConfigAddButton</tabstop>
<tabstop>latexConfigDeleteButton</tabstop>
- <tabstop>latexConfigChangeCommandButton</tabstop>
+ <tabstop>latexEditorLineEdit</tabstop>
<tabstop>latexEditorChangeButton</tabstop>
+ <tabstop>latexEmptyFrameCheckBox</tabstop>
+ <tabstop>latexForceDPICheckBox</tabstop>
+ <tabstop>latexResolutionSpinBox</tabstop>
<tabstop>rescanButton</tabstop>
</tabstops>
<resources/>
Index: scribus/ui/preferences/prefs_externaltools.cpp
===================================================================
--- scribus/ui/preferences/prefs_externaltools.cpp (revision 27797)
+++ scribus/ui/preferences/prefs_externaltools.cpp (working copy)
@@ -13,6 +13,7 @@
#include "prefsstructs.h"
#include "latexhelpers.h"
#include "commonstrings.h"
+#include "iconmanager.h"
#include "ui/scmessagebox.h"
#include "util.h"
#include "util_file.h"
@@ -30,6 +31,21 @@
m_caption = tr("External Tools");
m_icon = "pref-external-tools";
+ IconManager& iconManager = IconManager::instance();
+ const auto browseIcon = iconManager.loadIcon("document-open");
+ psToolChangeButton->setIcon(browseIcon);
+ imageToolChangeButton->setIcon(browseIcon);
+ webBrowserChangeButton->setIcon(browseIcon);
+ pdfViewerChangeButton->setIcon(browseIcon);
+ uniconvertorChangeButton->setIcon(browseIcon);
+ latexEditorChangeButton->setIcon(browseIcon);
+ latexConfigUpButton->setIcon(iconManager.loadIcon("go-up"));
+ latexConfigDownButton->setIcon(iconManager.loadIcon("go-down"));
+ latexConfigAddButton->setIcon(iconManager.loadIcon("list-add"));
+ latexConfigDeleteButton->setIcon(iconManager.loadIcon("delete"));
+ latexConfigChangeCommandButton->setIcon(iconManager.loadIcon("stroke-style-edit"));
+ rescanButton->setIcon(iconManager.loadIcon("reload"));
+
connect(psToolChangeButton, SIGNAL(clicked()), this, SLOT(changePostScriptTool()));
connect(imageToolChangeButton, SIGNAL(clicked()), this, SLOT(changeImageTool()));
connect(webBrowserChangeButton, SIGNAL(clicked()), this, SLOT(changeWebBrowser()));
@@ -42,6 +58,7 @@
connect(latexConfigDeleteButton, SIGNAL(clicked()), this, SLOT(deleteConfig()));
connect(latexEditorChangeButton, SIGNAL(clicked()), this, SLOT(changeLatexEditor()));
connect(latexConfigChangeCommandButton, SIGNAL(clicked()), this, SLOT(changeLatexPath()));
+ connect(latexForceDPICheckBox, SIGNAL(toggled(bool)), latexResolutionSpinBox, SLOT(setEnabled(bool)));
}
void Prefs_ExternalTools::languageChange()
@@ -61,6 +78,7 @@
latexResolutionSpinBox->setValue(prefsData->extToolPrefs.latexResolution);
latexEditorLineEdit->setText(prefsData->extToolPrefs.latexEditorExecutable);
latexForceDPICheckBox->setCheckState(prefsData->extToolPrefs.latexForceDpi?Qt::Checked:Qt::Unchecked);
+ latexResolutionSpinBox->setEnabled(latexForceDPICheckBox->isChecked());
latexEmptyFrameCheckBox->setCheckState(prefsData->extToolPrefs.latexStartWithEmptyFrames?Qt::Checked:Qt::Unchecked);
latexConfigsListWidget->clear();
const QStringList configs = prefsData->extToolPrefs.latexConfigs;
@@ -129,7 +147,7 @@
void Prefs_ExternalTools::changeUniconvertor()
{
QFileInfo fi(uniconvertorLineEdit->text());
- QString s = QFileDialog::getOpenFileName(this, tr("Locate the uniconvertor executable"), fi.path());
+ QString s = QFileDialog::getOpenFileName(this, tr("Locate the UniConvertor executable"), fi.path());
if (!s.isEmpty())
uniconvertorLineEdit->setText( QDir::toNativeSeparators(s) );
}
@@ -166,7 +184,7 @@
uniconvertorLineEdit->setText("uniconv");
else
{
- ScMessageBox::warning(nullptr, CommonStrings::trWarning, tr("Uniconvertor executable not found!"));
+ ScMessageBox::warning(nullptr, CommonStrings::trWarning, tr("UniConvertor executable not found!"));
uniconvertorLineEdit->setText("");
}
}
| ||||
| Patch | Yes | ||||
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2026-08-30 09:39 | qirat | New Issue | |
| 2026-08-30 09:39 | qirat | Tag Attached: #please_test | |
| 2026-08-30 09:39 | qirat | File Added: external-tools-preferences-layout-r27797-v1.8.patch | |
| 2026-08-30 09:39 | qirat | File Added: external-tools-prefs-CURRENT.png | |
| 2026-08-30 09:39 | qirat | File Added: external-tools-prefs-PROPOSED.png |