mirror of
https://github.com/arsenetar/dupeguru.git
synced 2025-03-10 05:34:36 +00:00
Add option to use internal icons in details dialog
* On Windows and MacOS, no idea how themes work so only allow Linux to use their theme icons * Internal icons are used by default on non-Linux platforms
This commit is contained in:
parent
298f659f6e
commit
cf64565012
@ -49,7 +49,9 @@ class ViewerToolBar(QToolBar):
|
||||
(
|
||||
"actionZoomIn",
|
||||
QKeySequence.ZoomIn,
|
||||
QIcon.fromTheme("zoom-in") if ISLINUX
|
||||
QIcon.fromTheme("zoom-in")
|
||||
if ISLINUX
|
||||
and not self.parent.app.prefs.details_dialog_override_theme_icons
|
||||
else QIcon(QPixmap(":/" + "zoom_in")),
|
||||
tr("Increase zoom"),
|
||||
controller.zoomIn,
|
||||
@ -57,7 +59,9 @@ class ViewerToolBar(QToolBar):
|
||||
(
|
||||
"actionZoomOut",
|
||||
QKeySequence.ZoomOut,
|
||||
QIcon.fromTheme("zoom-out") if ISLINUX
|
||||
QIcon.fromTheme("zoom-out")
|
||||
if ISLINUX
|
||||
and not self.parent.app.prefs.details_dialog_override_theme_icons
|
||||
else QIcon(QPixmap(":/" + "zoom_out")),
|
||||
tr("Decrease zoom"),
|
||||
controller.zoomOut,
|
||||
@ -65,7 +69,9 @@ class ViewerToolBar(QToolBar):
|
||||
(
|
||||
"actionNormalSize",
|
||||
tr("Ctrl+/"),
|
||||
QIcon.fromTheme("zoom-original") if ISLINUX
|
||||
QIcon.fromTheme("zoom-original")
|
||||
if ISLINUX
|
||||
and not self.parent.app.prefs.details_dialog_override_theme_icons
|
||||
else QIcon(QPixmap(":/" + "zoom_original")),
|
||||
tr("Normal size"),
|
||||
controller.zoomNormalSize,
|
||||
@ -73,7 +79,9 @@ class ViewerToolBar(QToolBar):
|
||||
(
|
||||
"actionBestFit",
|
||||
tr("Ctrl+*"),
|
||||
QIcon.fromTheme("zoom-best-fit") if ISLINUX
|
||||
QIcon.fromTheme("zoom-best-fit")
|
||||
if ISLINUX
|
||||
and not self.parent.app.prefs.details_dialog_override_theme_icons
|
||||
else QIcon(QPixmap(":/" + "zoom_best_fit")),
|
||||
tr("Best fit"),
|
||||
controller.zoomBestFit,
|
||||
@ -90,6 +98,7 @@ class ViewerToolBar(QToolBar):
|
||||
QIcon.fromTheme('view-refresh',
|
||||
self.style().standardIcon(QStyle.SP_BrowserReload))
|
||||
if ISLINUX
|
||||
and not self.parent.app.prefs.details_dialog_override_theme_icons
|
||||
else QIcon(QPixmap(":/" + "exchange")))
|
||||
self.buttonImgSwap.setText('Swap images')
|
||||
self.buttonImgSwap.setToolTip('Swap images')
|
||||
|
@ -7,6 +7,7 @@
|
||||
from PyQt5.QtWidgets import QApplication
|
||||
|
||||
from hscommon import trans
|
||||
from hscommon.plat import ISLINUX
|
||||
from core.app import AppMode
|
||||
from core.scanner import ScanType
|
||||
from qtlib.preferences import Preferences as PreferencesBase
|
||||
@ -31,8 +32,14 @@ class Preferences(PreferencesBase):
|
||||
|
||||
self.tableFontSize = get("TableFontSize", self.tableFontSize)
|
||||
self.reference_bold_font = get('ReferenceBoldFont', self.reference_bold_font)
|
||||
self.details_dialog_titlebar_enabled = get('DetailsDialogTitleBarEnabled', self.details_dialog_titlebar_enabled)
|
||||
self.details_dialog_vertical_titlebar = get('DetailsDialogVerticalTitleBar', self.details_dialog_vertical_titlebar)
|
||||
self.details_dialog_titlebar_enabled = get('DetailsDialogTitleBarEnabled',
|
||||
self.details_dialog_titlebar_enabled)
|
||||
self.details_dialog_vertical_titlebar = get('DetailsDialogVerticalTitleBar',
|
||||
self.details_dialog_vertical_titlebar)
|
||||
# On Windows and MacOS, use internal icons by default
|
||||
self.details_dialog_override_theme_icons =\
|
||||
get('DetailsDialogOverrideThemeIcons',
|
||||
self.details_dialog_override_theme_icons) if ISLINUX else True
|
||||
self.resultWindowIsMaximized = get(
|
||||
"ResultWindowIsMaximized", self.resultWindowIsMaximized
|
||||
)
|
||||
@ -71,6 +78,8 @@ class Preferences(PreferencesBase):
|
||||
self.reference_bold_font = True
|
||||
self.details_dialog_titlebar_enabled = True
|
||||
self.details_dialog_vertical_titlebar = True
|
||||
# By default use internal icons on platforms other than Linux for now
|
||||
self.details_dialog_override_theme_icons = False if not ISLINUX else True
|
||||
self.resultWindowIsMaximized = False
|
||||
self.resultWindowRect = None
|
||||
self.directoriesWindowRect = None
|
||||
@ -106,6 +115,7 @@ class Preferences(PreferencesBase):
|
||||
set_('ReferenceBoldFont', self.reference_bold_font)
|
||||
set_('DetailsDialogTitleBarEnabled', self.details_dialog_titlebar_enabled)
|
||||
set_('DetailsDialogVerticalTitleBar', self.details_dialog_vertical_titlebar)
|
||||
set_('DetailsDialogOverrideThemeIcons', self.details_dialog_override_theme_icons)
|
||||
set_("ResultWindowIsMaximized", self.resultWindowIsMaximized)
|
||||
self.set_rect("ResultWindowRect", self.resultWindowRect)
|
||||
self.set_rect("DirectoriesWindowRect", self.directoriesWindowRect)
|
||||
|
@ -25,6 +25,7 @@ from PyQt5.QtWidgets import (
|
||||
)
|
||||
|
||||
from hscommon.trans import trget
|
||||
from hscommon.plat import ISLINUX
|
||||
from qtlib.util import horizontalWrap
|
||||
from qtlib.preferences import get_langnames
|
||||
from enum import Flag, auto
|
||||
@ -163,6 +164,13 @@ class PreferencesDialogBase(QDialog):
|
||||
self.details_dialog_titlebar_enabled.isChecked())
|
||||
self.details_dialog_titlebar_enabled.stateChanged.connect(
|
||||
self.details_dialog_vertical_titlebar.setEnabled)
|
||||
self._setupAddCheckbox("details_dialog_override_theme_icons",
|
||||
tr("Override theme icons"))
|
||||
self.details_dialog_override_theme_icons.setToolTip(
|
||||
tr("Use our own internal icons instead of those provided by theme engine"))
|
||||
# Prevent changing this on platforms where themes are unpredictable
|
||||
self.details_dialog_override_theme_icons.setEnabled(False if not ISLINUX else True)
|
||||
self.displayVLayout.addWidget(self.details_dialog_override_theme_icons)
|
||||
|
||||
self.languageLabel = QLabel(tr("Language:"), self)
|
||||
self.languageComboBox = QComboBox(self)
|
||||
@ -237,6 +245,7 @@ class PreferencesDialogBase(QDialog):
|
||||
setchecked(self.details_dialog_titlebar_enabled , prefs.details_dialog_titlebar_enabled)
|
||||
setchecked(self.details_dialog_vertical_titlebar, prefs.details_dialog_vertical_titlebar)
|
||||
self.fontSizeSpinBox.setValue(prefs.tableFontSize)
|
||||
setchecked(self.details_dialog_override_theme_icons, prefs.details_dialog_override_theme_icons)
|
||||
try:
|
||||
langindex = self.supportedLanguages.index(self.app.prefs.language)
|
||||
except ValueError:
|
||||
@ -256,6 +265,7 @@ class PreferencesDialogBase(QDialog):
|
||||
prefs.reference_bold_font = ischecked(self.reference_bold_font)
|
||||
prefs.details_dialog_titlebar_enabled = ischecked(self.details_dialog_titlebar_enabled)
|
||||
prefs.details_dialog_vertical_titlebar = ischecked(self.details_dialog_vertical_titlebar)
|
||||
prefs.details_dialog_override_theme_icons = ischecked(self.details_dialog_override_theme_icons)
|
||||
prefs.destination_type = self.copyMoveDestinationComboBox.currentIndex()
|
||||
prefs.custom_command = str(self.customCommandEdit.text())
|
||||
prefs.tableFontSize = self.fontSizeSpinBox.value()
|
||||
|
Loading…
x
Reference in New Issue
Block a user