diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5ee1ff1..c60c01e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,11 @@
# Changelog
+## 1.1.x
+### 1.1.0: New Function in Preview Window
+- Added a new feature to the preview window: **Hold a button to temporarily view the original (unedited) image.** This makes it easier to compare changes.
+- Minor UI adjustments.
+
+
## 1.0.x
### 1.0.1: Fixed spelling
- Fixes spelling some places
diff --git a/src/OptimaLab35/gui.py b/src/OptimaLab35/gui.py
index a69a452..cf40df3 100644
--- a/src/OptimaLab35/gui.py
+++ b/src/OptimaLab35/gui.py
@@ -861,6 +861,8 @@ class PreviewWindow(QMainWindow, Ui_Preview_Window):
self.ui.contrast_Slider.valueChanged.connect(self.on_ui_change)
self.ui.grayscale_checkBox.stateChanged.connect(self.on_ui_change)
self.ui_elements(False)
+ self.ui.show_OG_Button.pressed.connect(self.show_OG_image)
+ self.ui.show_OG_Button.released.connect(self.update_preview)
def on_ui_change(self):
"""Triggers update only if live update is enabled."""
@@ -874,11 +876,26 @@ class PreviewWindow(QMainWindow, Ui_Preview_Window):
self.update_preview()
self.ui_elements(True)
- def ui_elements(self, state):
+ def show_OG_image(self):
+ """Handles loading and displaying the image in a separate thread."""
+ path = self.ui.image_path_lineEdit.text()
+ worker = ImageProcessorWorker(
+ path = path,
+ optima_manager = self.o,
+ brightness = 0,
+ contrast = 0,
+ grayscale = False,
+ resize = self.ui.scale_Slider.value(),
+ callback = self.display_image # Callback to update UI
+ )
+ self.threadpool.start(worker)
+
+ def ui_elements(self, state):
self.ui.groupBox_2.setEnabled(state)
self.ui.groupBox.setEnabled(state)
self.ui.groupBox_5.setEnabled(state)
+ self.ui.show_OG_Button.setEnabled(state)
def update_preview(self):
"""Handles loading and displaying the image in a separate thread."""
diff --git a/src/OptimaLab35/ui/main_window.py b/src/OptimaLab35/ui/main_window.py
index 0db0bd8..38191e5 100644
--- a/src/OptimaLab35/ui/main_window.py
+++ b/src/OptimaLab35/ui/main_window.py
@@ -3,7 +3,7 @@
################################################################################
## Form generated from reading UI file 'main_window.ui'
##
-## Created by: Qt User Interface Compiler version 6.8.1
+## Created by: Qt User Interface Compiler version 6.8.2
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
@@ -116,6 +116,7 @@ class Ui_MainWindow(object):
self.png_quality_Slider.setPageStep(1)
self.png_quality_Slider.setSliderPosition(6)
self.png_quality_Slider.setOrientation(Qt.Orientation.Horizontal)
+ self.png_quality_Slider.setTickPosition(QSlider.TickPosition.TicksBothSides)
self.gridLayout_4.addWidget(self.png_quality_Slider, 4, 2, 1, 1)
@@ -147,6 +148,7 @@ class Ui_MainWindow(object):
self.jpg_quality_Slider.setMaximum(100)
self.jpg_quality_Slider.setSliderPosition(90)
self.jpg_quality_Slider.setOrientation(Qt.Orientation.Horizontal)
+ self.jpg_quality_Slider.setTickPosition(QSlider.TickPosition.TicksBothSides)
self.gridLayout_4.addWidget(self.jpg_quality_Slider, 3, 2, 1, 1)
@@ -161,6 +163,7 @@ class Ui_MainWindow(object):
self.resize_Slider.setMaximum(200)
self.resize_Slider.setValue(100)
self.resize_Slider.setOrientation(Qt.Orientation.Horizontal)
+ self.resize_Slider.setTickPosition(QSlider.TickPosition.TicksBothSides)
self.gridLayout_4.addWidget(self.resize_Slider, 5, 2, 1, 1)
@@ -193,6 +196,7 @@ class Ui_MainWindow(object):
self.brightness_horizontalSlider.setMinimum(-100)
self.brightness_horizontalSlider.setMaximum(100)
self.brightness_horizontalSlider.setOrientation(Qt.Orientation.Horizontal)
+ self.brightness_horizontalSlider.setTickPosition(QSlider.TickPosition.TicksBothSides)
self.gridLayout_3.addWidget(self.brightness_horizontalSlider, 1, 1, 1, 1)
@@ -224,6 +228,7 @@ class Ui_MainWindow(object):
self.contrast_horizontalSlider.setMinimum(-100)
self.contrast_horizontalSlider.setMaximum(100)
self.contrast_horizontalSlider.setOrientation(Qt.Orientation.Horizontal)
+ self.contrast_horizontalSlider.setTickPosition(QSlider.TickPosition.TicksBelow)
self.gridLayout_3.addWidget(self.contrast_horizontalSlider, 4, 1, 1, 1)
@@ -538,7 +543,7 @@ class Ui_MainWindow(object):
self.dateEdit = QDateEdit(self.date_groupBox)
self.dateEdit.setObjectName(u"dateEdit")
self.dateEdit.setEnabled(False)
- self.dateEdit.setDateTime(QDateTime(QDate(2024, 12, 31), QTime(23, 0, 0)))
+ self.dateEdit.setDateTime(QDateTime(QDate(2024, 12, 31), QTime(22, 0, 0)))
self.dateEdit.setMaximumDate(QDate(2038, 12, 31))
self.dateEdit.setMinimumDate(QDate(1970, 1, 1))
self.dateEdit.setCalendarPopup(True)
@@ -558,7 +563,7 @@ class Ui_MainWindow(object):
MainWindow.setStatusBar(self.statusBar)
self.menuBar = QMenuBar(MainWindow)
self.menuBar.setObjectName(u"menuBar")
- self.menuBar.setGeometry(QRect(0, 0, 450, 22))
+ self.menuBar.setGeometry(QRect(0, 0, 450, 19))
self.menuHelp = QMenu(self.menuBar)
self.menuHelp.setObjectName(u"menuHelp")
self.menuSettings = QMenu(self.menuBar)
diff --git a/src/OptimaLab35/ui/main_window.ui b/src/OptimaLab35/ui/main_window.ui
index 4da4787..6b87b83 100644
--- a/src/OptimaLab35/ui/main_window.ui
+++ b/src/OptimaLab35/ui/main_window.ui
@@ -188,6 +188,9 @@
Qt::Orientation::Horizontal
+
+ QSlider::TickPosition::TicksBothSides
+
-
@@ -249,6 +252,9 @@
Qt::Orientation::Horizontal
+
+ QSlider::TickPosition::TicksBothSides
+
-
@@ -278,6 +284,9 @@
Qt::Orientation::Horizontal
+
+ QSlider::TickPosition::TicksBothSides
+
-
@@ -338,6 +347,9 @@
Qt::Orientation::Horizontal
+
+ QSlider::TickPosition::TicksBothSides
+
-
@@ -390,6 +402,9 @@
Qt::Orientation::Horizontal
+
+ QSlider::TickPosition::TicksBelow
+
-
@@ -881,7 +896,7 @@
- 23
+ 22
0
0
2024
@@ -924,7 +939,7 @@
0
0
450
- 22
+ 19
-
@@ -197,6 +206,32 @@
+ -
+
+
+ Qt::LayoutDirection::LeftToRight
+
+
+ false
+
+
+ Hold button to show original image
+
+
+ Qt::AlignmentFlag::AlignCenter
+
+
+ true
+
+
+
+ -
+
+
+ Show
+
+
+
-
@@ -268,11 +303,14 @@
10
- 25
+ 50
Qt::Orientation::Horizontal
+
+ QSlider::TickPosition::TicksBothSides
+
-
@@ -302,7 +340,7 @@
Sets the resize value for the preview image. A high value may cause the application to freeze.
- 25
+ 50
@@ -320,7 +358,7 @@
0
0
875
- 26
+ 19
diff --git a/src/OptimaLab35/ui/settings_window.py b/src/OptimaLab35/ui/settings_window.py
index 1841a94..e3d7823 100644
--- a/src/OptimaLab35/ui/settings_window.py
+++ b/src/OptimaLab35/ui/settings_window.py
@@ -3,7 +3,7 @@
################################################################################
## Form generated from reading UI file 'settings_window.ui'
##
-## Created by: Qt User Interface Compiler version 6.8.1
+## Created by: Qt User Interface Compiler version 6.8.2
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
@@ -36,79 +36,6 @@ class Ui_Settings_Window(object):
self.tabWidget = QTabWidget(self.centralwidget)
self.tabWidget.setObjectName(u"tabWidget")
self.tabWidget.setMaximumSize(QSize(500, 500))
- self.tabWidgetPage1 = QWidget()
- self.tabWidgetPage1.setObjectName(u"tabWidgetPage1")
- self.verticalLayout_2 = QVBoxLayout(self.tabWidgetPage1)
- self.verticalLayout_2.setObjectName(u"verticalLayout_2")
- self.groupBox_4 = QGroupBox(self.tabWidgetPage1)
- self.groupBox_4.setObjectName(u"groupBox_4")
- self.horizontalLayout_3 = QHBoxLayout(self.groupBox_4)
- self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
- self.label_4 = QLabel(self.groupBox_4)
- self.label_4.setObjectName(u"label_4")
- self.label_4.setWordWrap(True)
-
- self.horizontalLayout_3.addWidget(self.label_4)
-
- self.reset_exif_Button = QPushButton(self.groupBox_4)
- self.reset_exif_Button.setObjectName(u"reset_exif_Button")
- self.reset_exif_Button.setMinimumSize(QSize(100, 0))
- self.reset_exif_Button.setMaximumSize(QSize(100, 16777215))
-
- self.horizontalLayout_3.addWidget(self.reset_exif_Button)
-
-
- self.verticalLayout_2.addWidget(self.groupBox_4)
-
- self.groupBox_3 = QGroupBox(self.tabWidgetPage1)
- self.groupBox_3.setObjectName(u"groupBox_3")
- self.gridLayout_3 = QGridLayout(self.groupBox_3)
- self.gridLayout_3.setObjectName(u"gridLayout_3")
- self.label_3 = QLabel(self.groupBox_3)
- self.label_3.setObjectName(u"label_3")
-
- self.gridLayout_3.addWidget(self.label_3, 0, 0, 1, 3)
-
- self.enable_theme_checkBox = QCheckBox(self.groupBox_3)
- self.enable_theme_checkBox.setObjectName(u"enable_theme_checkBox")
- self.enable_theme_checkBox.setChecked(False)
-
- self.gridLayout_3.addWidget(self.enable_theme_checkBox, 1, 0, 1, 1)
-
- self.theme_selection_comboBox = QComboBox(self.groupBox_3)
- self.theme_selection_comboBox.addItem("")
- self.theme_selection_comboBox.addItem("")
- self.theme_selection_comboBox.addItem("")
- self.theme_selection_comboBox.setObjectName(u"theme_selection_comboBox")
- self.theme_selection_comboBox.setEnabled(False)
- self.theme_selection_comboBox.setMinimumSize(QSize(100, 0))
- self.theme_selection_comboBox.setMaximumSize(QSize(100, 16777215))
-
- self.gridLayout_3.addWidget(self.theme_selection_comboBox, 1, 2, 1, 1)
-
- self.save_and_close_Button = QPushButton(self.groupBox_3)
- self.save_and_close_Button.setObjectName(u"save_and_close_Button")
-
- self.gridLayout_3.addWidget(self.save_and_close_Button, 3, 0, 1, 1)
-
- self.horizontalSpacer_2 = QSpacerItem(98, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
-
- self.gridLayout_3.addItem(self.horizontalSpacer_2, 1, 1, 1, 1)
-
- self.install_pkg_Button = QPushButton(self.groupBox_3)
- self.install_pkg_Button.setObjectName(u"install_pkg_Button")
-
- self.gridLayout_3.addWidget(self.install_pkg_Button, 2, 0, 1, 3)
-
- self.save_and_restart_Button = QPushButton(self.groupBox_3)
- self.save_and_restart_Button.setObjectName(u"save_and_restart_Button")
-
- self.gridLayout_3.addWidget(self.save_and_restart_Button, 3, 1, 1, 2)
-
-
- self.verticalLayout_2.addWidget(self.groupBox_3)
-
- self.tabWidget.addTab(self.tabWidgetPage1, "")
self.tabWidgetPage2 = QWidget()
self.tabWidgetPage2.setObjectName(u"tabWidgetPage2")
self.gridLayout_2 = QGridLayout(self.tabWidgetPage2)
@@ -227,6 +154,79 @@ class Ui_Settings_Window(object):
self.gridLayout_2.addWidget(self.widget, 5, 0, 1, 2)
self.tabWidget.addTab(self.tabWidgetPage2, "")
+ self.tabWidgetPage1 = QWidget()
+ self.tabWidgetPage1.setObjectName(u"tabWidgetPage1")
+ self.verticalLayout_2 = QVBoxLayout(self.tabWidgetPage1)
+ self.verticalLayout_2.setObjectName(u"verticalLayout_2")
+ self.groupBox_4 = QGroupBox(self.tabWidgetPage1)
+ self.groupBox_4.setObjectName(u"groupBox_4")
+ self.horizontalLayout_3 = QHBoxLayout(self.groupBox_4)
+ self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
+ self.label_4 = QLabel(self.groupBox_4)
+ self.label_4.setObjectName(u"label_4")
+ self.label_4.setWordWrap(True)
+
+ self.horizontalLayout_3.addWidget(self.label_4)
+
+ self.reset_exif_Button = QPushButton(self.groupBox_4)
+ self.reset_exif_Button.setObjectName(u"reset_exif_Button")
+ self.reset_exif_Button.setMinimumSize(QSize(100, 0))
+ self.reset_exif_Button.setMaximumSize(QSize(100, 16777215))
+
+ self.horizontalLayout_3.addWidget(self.reset_exif_Button)
+
+
+ self.verticalLayout_2.addWidget(self.groupBox_4)
+
+ self.groupBox_3 = QGroupBox(self.tabWidgetPage1)
+ self.groupBox_3.setObjectName(u"groupBox_3")
+ self.gridLayout_3 = QGridLayout(self.groupBox_3)
+ self.gridLayout_3.setObjectName(u"gridLayout_3")
+ self.label_3 = QLabel(self.groupBox_3)
+ self.label_3.setObjectName(u"label_3")
+
+ self.gridLayout_3.addWidget(self.label_3, 0, 0, 1, 3)
+
+ self.enable_theme_checkBox = QCheckBox(self.groupBox_3)
+ self.enable_theme_checkBox.setObjectName(u"enable_theme_checkBox")
+ self.enable_theme_checkBox.setChecked(False)
+
+ self.gridLayout_3.addWidget(self.enable_theme_checkBox, 1, 0, 1, 1)
+
+ self.theme_selection_comboBox = QComboBox(self.groupBox_3)
+ self.theme_selection_comboBox.addItem("")
+ self.theme_selection_comboBox.addItem("")
+ self.theme_selection_comboBox.addItem("")
+ self.theme_selection_comboBox.setObjectName(u"theme_selection_comboBox")
+ self.theme_selection_comboBox.setEnabled(False)
+ self.theme_selection_comboBox.setMinimumSize(QSize(100, 0))
+ self.theme_selection_comboBox.setMaximumSize(QSize(100, 16777215))
+
+ self.gridLayout_3.addWidget(self.theme_selection_comboBox, 1, 2, 1, 1)
+
+ self.save_and_close_Button = QPushButton(self.groupBox_3)
+ self.save_and_close_Button.setObjectName(u"save_and_close_Button")
+
+ self.gridLayout_3.addWidget(self.save_and_close_Button, 3, 0, 1, 1)
+
+ self.horizontalSpacer_2 = QSpacerItem(98, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
+
+ self.gridLayout_3.addItem(self.horizontalSpacer_2, 1, 1, 1, 1)
+
+ self.install_pkg_Button = QPushButton(self.groupBox_3)
+ self.install_pkg_Button.setObjectName(u"install_pkg_Button")
+
+ self.gridLayout_3.addWidget(self.install_pkg_Button, 2, 0, 1, 3)
+
+ self.save_and_restart_Button = QPushButton(self.groupBox_3)
+ self.save_and_restart_Button.setObjectName(u"save_and_restart_Button")
+
+ self.gridLayout_3.addWidget(self.save_and_restart_Button, 3, 1, 1, 2)
+
+
+ self.verticalLayout_2.addWidget(self.groupBox_3)
+
+ self.tabWidget.addTab(self.tabWidgetPage1, "")
self.verticalLayout.addWidget(self.tabWidget)
@@ -243,29 +243,6 @@ class Ui_Settings_Window(object):
def retranslateUi(self, Settings_Window):
Settings_Window.setWindowTitle(QCoreApplication.translate("Settings_Window", u"Settings", None))
- self.groupBox_4.setTitle(QCoreApplication.translate("Settings_Window", u"EXIF", None))
- self.label_4.setText(QCoreApplication.translate("Settings_Window", u"Reset selectable EXIF data to default", None))
- self.reset_exif_Button.setText(QCoreApplication.translate("Settings_Window", u"Reset", None))
- self.groupBox_3.setTitle(QCoreApplication.translate("Settings_Window", u"Theme", None))
- self.label_3.setText(QCoreApplication.translate("Settings_Window", u"Change theme from OS to PyQT Dark or Light", None))
-#if QT_CONFIG(tooltip)
- self.enable_theme_checkBox.setToolTip(QCoreApplication.translate("Settings_Window", u"Changes will take effect after restarting the application.", None))
-#endif // QT_CONFIG(tooltip)
- self.enable_theme_checkBox.setText(QCoreApplication.translate("Settings_Window", u"Custom theme", None))
- self.theme_selection_comboBox.setItemText(0, QCoreApplication.translate("Settings_Window", u"Auto", None))
- self.theme_selection_comboBox.setItemText(1, QCoreApplication.translate("Settings_Window", u"Dark", None))
- self.theme_selection_comboBox.setItemText(2, QCoreApplication.translate("Settings_Window", u"Light", None))
-
-#if QT_CONFIG(tooltip)
- self.theme_selection_comboBox.setToolTip(QCoreApplication.translate("Settings_Window", u"Changes will take effect after restarting the application.", None))
-#endif // QT_CONFIG(tooltip)
-#if QT_CONFIG(tooltip)
- self.save_and_close_Button.setToolTip(QCoreApplication.translate("Settings_Window", u"Changes will take effect after restarting the application.", None))
-#endif // QT_CONFIG(tooltip)
- self.save_and_close_Button.setText(QCoreApplication.translate("Settings_Window", u"Apply theme", None))
- self.install_pkg_Button.setText(QCoreApplication.translate("Settings_Window", u"Install package for custom theme", None))
- self.save_and_restart_Button.setText(QCoreApplication.translate("Settings_Window", u"Apply and restart", None))
- self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabWidgetPage1), QCoreApplication.translate("Settings_Window", u"Preferences", None))
self.pkg_info_groupBox.setTitle(QCoreApplication.translate("Settings_Window", u"Package information", None))
self.label_optima35_latestversion.setText(QCoreApplication.translate("Settings_Window", u"unknown", None))
self.label_latest_version.setText(QCoreApplication.translate("Settings_Window", u"Latest version", None))
@@ -293,5 +270,28 @@ class Ui_Settings_Window(object):
#endif // QT_CONFIG(tooltip)
self.restart_checkBox.setText(QCoreApplication.translate("Settings_Window", u"Restart", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabWidgetPage2), QCoreApplication.translate("Settings_Window", u"Updater", None))
+ self.groupBox_4.setTitle(QCoreApplication.translate("Settings_Window", u"EXIF", None))
+ self.label_4.setText(QCoreApplication.translate("Settings_Window", u"Reset selectable EXIF data to default", None))
+ self.reset_exif_Button.setText(QCoreApplication.translate("Settings_Window", u"Reset", None))
+ self.groupBox_3.setTitle(QCoreApplication.translate("Settings_Window", u"Theme", None))
+ self.label_3.setText(QCoreApplication.translate("Settings_Window", u"Change theme from OS to PyQT Dark or Light", None))
+#if QT_CONFIG(tooltip)
+ self.enable_theme_checkBox.setToolTip(QCoreApplication.translate("Settings_Window", u"Changes will take effect after restarting the application.", None))
+#endif // QT_CONFIG(tooltip)
+ self.enable_theme_checkBox.setText(QCoreApplication.translate("Settings_Window", u"Custom theme", None))
+ self.theme_selection_comboBox.setItemText(0, QCoreApplication.translate("Settings_Window", u"Auto", None))
+ self.theme_selection_comboBox.setItemText(1, QCoreApplication.translate("Settings_Window", u"Dark", None))
+ self.theme_selection_comboBox.setItemText(2, QCoreApplication.translate("Settings_Window", u"Light", None))
+
+#if QT_CONFIG(tooltip)
+ self.theme_selection_comboBox.setToolTip(QCoreApplication.translate("Settings_Window", u"Changes will take effect after restarting the application.", None))
+#endif // QT_CONFIG(tooltip)
+#if QT_CONFIG(tooltip)
+ self.save_and_close_Button.setToolTip(QCoreApplication.translate("Settings_Window", u"Changes will take effect after restarting the application.", None))
+#endif // QT_CONFIG(tooltip)
+ self.save_and_close_Button.setText(QCoreApplication.translate("Settings_Window", u"Apply theme", None))
+ self.install_pkg_Button.setText(QCoreApplication.translate("Settings_Window", u"Install package for custom theme", None))
+ self.save_and_restart_Button.setText(QCoreApplication.translate("Settings_Window", u"Apply and restart", None))
+ self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabWidgetPage1), QCoreApplication.translate("Settings_Window", u"Preferences", None))
# retranslateUi
diff --git a/src/OptimaLab35/ui/settings_window.ui b/src/OptimaLab35/ui/settings_window.ui
index d6b92d6..91bee20 100644
--- a/src/OptimaLab35/ui/settings_window.ui
+++ b/src/OptimaLab35/ui/settings_window.ui
@@ -47,154 +47,6 @@
0
-
-
- Preferences
-
-
- -
-
-
- EXIF
-
-
-
-
-
-
- Reset selectable EXIF data to default
-
-
- true
-
-
-
- -
-
-
-
- 100
- 0
-
-
-
-
- 100
- 16777215
-
-
-
- Reset
-
-
-
-
-
-
- -
-
-
- Theme
-
-
-
-
-
-
- Change theme from OS to PyQT Dark or Light
-
-
-
- -
-
-
- Changes will take effect after restarting the application.
-
-
- Custom theme
-
-
- false
-
-
-
- -
-
-
- false
-
-
-
- 100
- 0
-
-
-
-
- 100
- 16777215
-
-
-
- Changes will take effect after restarting the application.
-
-
-
-
- Auto
-
-
- -
-
- Dark
-
-
- -
-
- Light
-
-
-
-
- -
-
-
- Changes will take effect after restarting the application.
-
-
- Apply theme
-
-
-
- -
-
-
- Qt::Orientation::Horizontal
-
-
-
- 98
- 20
-
-
-
-
- -
-
-
- Install package for custom theme
-
-
-
- -
-
-
- Apply and restart
-
-
-
-
-
-
-
-
Updater
@@ -381,6 +233,154 @@
+
+
+ Preferences
+
+
+ -
+
+
+ EXIF
+
+
+
-
+
+
+ Reset selectable EXIF data to default
+
+
+ true
+
+
+
+ -
+
+
+
+ 100
+ 0
+
+
+
+
+ 100
+ 16777215
+
+
+
+ Reset
+
+
+
+
+
+
+ -
+
+
+ Theme
+
+
+
-
+
+
+ Change theme from OS to PyQT Dark or Light
+
+
+
+ -
+
+
+ Changes will take effect after restarting the application.
+
+
+ Custom theme
+
+
+ false
+
+
+
+ -
+
+
+ false
+
+
+
+ 100
+ 0
+
+
+
+
+ 100
+ 16777215
+
+
+
+ Changes will take effect after restarting the application.
+
+
-
+
+ Auto
+
+
+ -
+
+ Dark
+
+
+ -
+
+ Light
+
+
+
+
+ -
+
+
+ Changes will take effect after restarting the application.
+
+
+ Apply theme
+
+
+
+ -
+
+
+ Qt::Orientation::Horizontal
+
+
+
+ 98
+ 20
+
+
+
+
+ -
+
+
+ Install package for custom theme
+
+
+
+ -
+
+
+ Apply and restart
+
+
+
+
+
+
+
+