From e661da164cb8fb52dbaafe72bfdc901a8568266a Mon Sep 17 00:00:00 2001 From: SulfurNitride Date: Fri, 27 Feb 2026 18:24:05 -0600 Subject: Fix SVG icons and checkboxes: bundle qt6-svg-plugins The AppImage was missing libqsvg.so (Qt SVG imageformat plugin), causing SVG-based theme icons and checkboxes to render as blank squares. Add qt6-svg-dev and qt6-svg-plugins to the Docker image. Also add explicit unchecked checkbox images to all vs15 Dark themes for consistent rendering on Linux. Co-Authored-By: Claude Opus 4.6 --- src/src/stylesheets/vs15 Dark-Green.qss | 18 ++++++++++++++++++ src/src/stylesheets/vs15 Dark-Orange.qss | 18 ++++++++++++++++++ src/src/stylesheets/vs15 Dark-Pink.qss | 18 ++++++++++++++++++ src/src/stylesheets/vs15 Dark-Purple.qss | 18 ++++++++++++++++++ src/src/stylesheets/vs15 Dark-Red.qss | 18 ++++++++++++++++++ src/src/stylesheets/vs15 Dark-Yellow.qss | 18 ++++++++++++++++++ src/src/stylesheets/vs15 Dark.qss | 18 ++++++++++++++++++ src/src/stylesheets/vs15/checkbox-disabled.png | Bin 0 -> 98 bytes src/src/stylesheets/vs15/checkbox-hover.png | Bin 0 -> 96 bytes src/src/stylesheets/vs15/checkbox.png | Bin 0 -> 96 bytes 10 files changed, 126 insertions(+) create mode 100644 src/src/stylesheets/vs15/checkbox-disabled.png create mode 100644 src/src/stylesheets/vs15/checkbox-hover.png create mode 100644 src/src/stylesheets/vs15/checkbox.png (limited to 'src') diff --git a/src/src/stylesheets/vs15 Dark-Green.qss b/src/src/stylesheets/vs15 Dark-Green.qss index ae0390e..df22889 100644 --- a/src/src/stylesheets/vs15 Dark-Green.qss +++ b/src/src/stylesheets/vs15 Dark-Green.qss @@ -396,6 +396,24 @@ QRadioButton::indicator:hover { border-color: #009933; } +QGroupBox::indicator:unchecked, +QTreeView::indicator:unchecked, +QCheckBox::indicator:unchecked { + image: url(./vs15/checkbox.png); +} + +QGroupBox::indicator:unchecked:hover, +QTreeView::indicator:unchecked:hover, +QCheckBox::indicator:unchecked:hover { + image: url(./vs15/checkbox-hover.png); +} + +QGroupBox::indicator:unchecked:disabled, +QTreeView::indicator:unchecked:disabled, +QCheckBox::indicator:unchecked:disabled { + image: url(./vs15/checkbox-disabled.png); +} + QGroupBox::indicator:checked, QTreeView::indicator:checked, QCheckBox::indicator:checked { diff --git a/src/src/stylesheets/vs15 Dark-Orange.qss b/src/src/stylesheets/vs15 Dark-Orange.qss index 5e8a3a4..0b911fd 100644 --- a/src/src/stylesheets/vs15 Dark-Orange.qss +++ b/src/src/stylesheets/vs15 Dark-Orange.qss @@ -396,6 +396,24 @@ QRadioButton::indicator:hover { border-color: #cc6600; } +QGroupBox::indicator:unchecked, +QTreeView::indicator:unchecked, +QCheckBox::indicator:unchecked { + image: url(./vs15/checkbox.png); +} + +QGroupBox::indicator:unchecked:hover, +QTreeView::indicator:unchecked:hover, +QCheckBox::indicator:unchecked:hover { + image: url(./vs15/checkbox-hover.png); +} + +QGroupBox::indicator:unchecked:disabled, +QTreeView::indicator:unchecked:disabled, +QCheckBox::indicator:unchecked:disabled { + image: url(./vs15/checkbox-disabled.png); +} + QGroupBox::indicator:checked, QTreeView::indicator:checked, QCheckBox::indicator:checked { diff --git a/src/src/stylesheets/vs15 Dark-Pink.qss b/src/src/stylesheets/vs15 Dark-Pink.qss index 5bc3bbd..9ae437a 100644 --- a/src/src/stylesheets/vs15 Dark-Pink.qss +++ b/src/src/stylesheets/vs15 Dark-Pink.qss @@ -396,6 +396,24 @@ QRadioButton::indicator:hover { border-color: #bb4287; } +QGroupBox::indicator:unchecked, +QTreeView::indicator:unchecked, +QCheckBox::indicator:unchecked { + image: url(./vs15/checkbox.png); +} + +QGroupBox::indicator:unchecked:hover, +QTreeView::indicator:unchecked:hover, +QCheckBox::indicator:unchecked:hover { + image: url(./vs15/checkbox-hover.png); +} + +QGroupBox::indicator:unchecked:disabled, +QTreeView::indicator:unchecked:disabled, +QCheckBox::indicator:unchecked:disabled { + image: url(./vs15/checkbox-disabled.png); +} + QGroupBox::indicator:checked, QTreeView::indicator:checked, QCheckBox::indicator:checked { diff --git a/src/src/stylesheets/vs15 Dark-Purple.qss b/src/src/stylesheets/vs15 Dark-Purple.qss index afcf897..e9606f4 100644 --- a/src/src/stylesheets/vs15 Dark-Purple.qss +++ b/src/src/stylesheets/vs15 Dark-Purple.qss @@ -396,6 +396,24 @@ QRadioButton::indicator:hover { border-color: #7e2ad2; } +QGroupBox::indicator:unchecked, +QTreeView::indicator:unchecked, +QCheckBox::indicator:unchecked { + image: url(./vs15/checkbox.png); +} + +QGroupBox::indicator:unchecked:hover, +QTreeView::indicator:unchecked:hover, +QCheckBox::indicator:unchecked:hover { + image: url(./vs15/checkbox-hover.png); +} + +QGroupBox::indicator:unchecked:disabled, +QTreeView::indicator:unchecked:disabled, +QCheckBox::indicator:unchecked:disabled { + image: url(./vs15/checkbox-disabled.png); +} + QGroupBox::indicator:checked, QTreeView::indicator:checked, QCheckBox::indicator:checked { diff --git a/src/src/stylesheets/vs15 Dark-Red.qss b/src/src/stylesheets/vs15 Dark-Red.qss index d6f89f6..612ccdd 100644 --- a/src/src/stylesheets/vs15 Dark-Red.qss +++ b/src/src/stylesheets/vs15 Dark-Red.qss @@ -396,6 +396,24 @@ QRadioButton::indicator:hover { border-color: #990000; } +QGroupBox::indicator:unchecked, +QTreeView::indicator:unchecked, +QCheckBox::indicator:unchecked { + image: url(./vs15/checkbox.png); +} + +QGroupBox::indicator:unchecked:hover, +QTreeView::indicator:unchecked:hover, +QCheckBox::indicator:unchecked:hover { + image: url(./vs15/checkbox-hover.png); +} + +QGroupBox::indicator:unchecked:disabled, +QTreeView::indicator:unchecked:disabled, +QCheckBox::indicator:unchecked:disabled { + image: url(./vs15/checkbox-disabled.png); +} + QGroupBox::indicator:checked, QTreeView::indicator:checked, QCheckBox::indicator:checked { diff --git a/src/src/stylesheets/vs15 Dark-Yellow.qss b/src/src/stylesheets/vs15 Dark-Yellow.qss index b3d62d5..70340cb 100644 --- a/src/src/stylesheets/vs15 Dark-Yellow.qss +++ b/src/src/stylesheets/vs15 Dark-Yellow.qss @@ -396,6 +396,24 @@ QRadioButton::indicator:hover { border-color: #9a9a00; } +QGroupBox::indicator:unchecked, +QTreeView::indicator:unchecked, +QCheckBox::indicator:unchecked { + image: url(./vs15/checkbox.png); +} + +QGroupBox::indicator:unchecked:hover, +QTreeView::indicator:unchecked:hover, +QCheckBox::indicator:unchecked:hover { + image: url(./vs15/checkbox-hover.png); +} + +QGroupBox::indicator:unchecked:disabled, +QTreeView::indicator:unchecked:disabled, +QCheckBox::indicator:unchecked:disabled { + image: url(./vs15/checkbox-disabled.png); +} + QGroupBox::indicator:checked, QTreeView::indicator:checked, QCheckBox::indicator:checked { diff --git a/src/src/stylesheets/vs15 Dark.qss b/src/src/stylesheets/vs15 Dark.qss index 8bb2c77..61ecdd7 100644 --- a/src/src/stylesheets/vs15 Dark.qss +++ b/src/src/stylesheets/vs15 Dark.qss @@ -396,6 +396,24 @@ QRadioButton::indicator:hover { border-color: #007acc; } +QGroupBox::indicator:unchecked, +QTreeView::indicator:unchecked, +QCheckBox::indicator:unchecked { + image: url(./vs15/checkbox.png); +} + +QGroupBox::indicator:unchecked:hover, +QTreeView::indicator:unchecked:hover, +QCheckBox::indicator:unchecked:hover { + image: url(./vs15/checkbox-hover.png); +} + +QGroupBox::indicator:unchecked:disabled, +QTreeView::indicator:unchecked:disabled, +QCheckBox::indicator:unchecked:disabled { + image: url(./vs15/checkbox-disabled.png); +} + QGroupBox::indicator:checked, QTreeView::indicator:checked, QCheckBox::indicator:checked { diff --git a/src/src/stylesheets/vs15/checkbox-disabled.png b/src/src/stylesheets/vs15/checkbox-disabled.png new file mode 100644 index 0000000..f2ac87a Binary files /dev/null and b/src/src/stylesheets/vs15/checkbox-disabled.png differ diff --git a/src/src/stylesheets/vs15/checkbox-hover.png b/src/src/stylesheets/vs15/checkbox-hover.png new file mode 100644 index 0000000..14d1008 Binary files /dev/null and b/src/src/stylesheets/vs15/checkbox-hover.png differ diff --git a/src/src/stylesheets/vs15/checkbox.png b/src/src/stylesheets/vs15/checkbox.png new file mode 100644 index 0000000..a3a4e1c Binary files /dev/null and b/src/src/stylesheets/vs15/checkbox.png differ -- cgit v1.3.1