1
0
mirror of https://github.com/arsenetar/dupeguru.git synced 2025-03-10 05:34:36 +00:00

Add color preference for delta in details table

This commit is contained in:
glubsy 2020-07-29 21:42:44 +02:00
parent da8c493c9f
commit eab5003e61
4 changed files with 18 additions and 4 deletions

View File

@ -25,7 +25,7 @@ class DetailsDialog(QDockWidget):
# has been shown. If it has, we know that our geometry should be saved. # has been shown. If it has, we know that our geometry should be saved.
self._shown_once = False self._shown_once = False
self.app.prefs.restoreGeometry("DetailsWindowRect", self) self.app.prefs.restoreGeometry("DetailsWindowRect", self)
self.tableModel = DetailsModel(self.model) self.tableModel = DetailsModel(self.model, app)
# tableView is defined in subclasses # tableView is defined in subclasses
self.tableView.setModel(self.tableModel) self.tableView.setModel(self.tableModel)
self.model.view = self self.model.view = self

View File

@ -8,7 +8,7 @@
from PyQt5.QtCore import Qt, QAbstractTableModel from PyQt5.QtCore import Qt, QAbstractTableModel
from PyQt5.QtWidgets import QHeaderView, QTableView from PyQt5.QtWidgets import QHeaderView, QTableView
from PyQt5.QtGui import QFont, QBrush, QColor from PyQt5.QtGui import QFont, QBrush
from hscommon.trans import trget from hscommon.trans import trget
@ -18,9 +18,10 @@ HEADER = [tr("Selected"), tr("Reference")]
class DetailsModel(QAbstractTableModel): class DetailsModel(QAbstractTableModel):
def __init__(self, model, **kwargs): def __init__(self, model, app, **kwargs):
super().__init__(**kwargs) super().__init__(**kwargs)
self.model = model self.model = model
self.prefs = app.prefs
def columnCount(self, parent): def columnCount(self, parent):
return len(HEADER) return len(HEADER)
@ -43,7 +44,7 @@ class DetailsModel(QAbstractTableModel):
if role == Qt.DisplayRole: if role == Qt.DisplayRole:
return self.model.row(row)[column] return self.model.row(row)[column]
if role == Qt.ForegroundRole and self.model.row(row)[1] != self.model.row(row)[2]: if role == Qt.ForegroundRole and self.model.row(row)[1] != self.model.row(row)[2]:
return QBrush(QColor(250, 20, 20)) # red return QBrush(self.prefs.details_table_delta_foreground_color)
if role == Qt.FontRole and self.model.row(row)[1] != self.model.row(row)[2]: if role == Qt.FontRole and self.model.row(row)[1] != self.model.row(row)[2]:
font = QFont(self.model.view.font()) # or simply QFont() font = QFont(self.model.view.font()) # or simply QFont()
font.setBold(True) font.setBold(True)

View File

@ -42,6 +42,8 @@ class Preferences(PreferencesBase):
self.details_dialog_override_theme_icons =\ self.details_dialog_override_theme_icons =\
get('DetailsDialogOverrideThemeIcons', get('DetailsDialogOverrideThemeIcons',
self.details_dialog_override_theme_icons) if ISLINUX else True self.details_dialog_override_theme_icons) if ISLINUX else True
self.details_table_delta_foreground_color =\
get('DetailsTableDeltaForegroundColor', self.details_table_delta_foreground_color)
self.result_table_ref_foreground_color =\ self.result_table_ref_foreground_color =\
get('ResultTableRefForegroundColor', self.result_table_ref_foreground_color) get('ResultTableRefForegroundColor', self.result_table_ref_foreground_color)
@ -86,6 +88,7 @@ class Preferences(PreferencesBase):
self.reference_bold_font = True self.reference_bold_font = True
self.details_dialog_titlebar_enabled = True self.details_dialog_titlebar_enabled = True
self.details_dialog_vertical_titlebar = True self.details_dialog_vertical_titlebar = True
self.details_table_delta_foreground_color = QColor(250, 20, 20) # red
# By default use internal icons on platforms other than Linux for now # 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.details_dialog_override_theme_icons = False if not ISLINUX else True
self.result_table_ref_foreground_color = QColor(Qt.blue) self.result_table_ref_foreground_color = QColor(Qt.blue)
@ -126,6 +129,7 @@ class Preferences(PreferencesBase):
set_('DetailsDialogTitleBarEnabled', self.details_dialog_titlebar_enabled) set_('DetailsDialogTitleBarEnabled', self.details_dialog_titlebar_enabled)
set_('DetailsDialogVerticalTitleBar', self.details_dialog_vertical_titlebar) set_('DetailsDialogVerticalTitleBar', self.details_dialog_vertical_titlebar)
set_('DetailsDialogOverrideThemeIcons', self.details_dialog_override_theme_icons) set_('DetailsDialogOverrideThemeIcons', self.details_dialog_override_theme_icons)
set_('DetailsTableDeltaForegroundColor', self.details_table_delta_foreground_color)
set_('ResultTableRefForegroundColor', self.result_table_ref_foreground_color) set_('ResultTableRefForegroundColor', self.result_table_ref_foreground_color)
set_('ResultTableDeltaForegroundColor', self.result_table_delta_foreground_color) set_('ResultTableDeltaForegroundColor', self.result_table_delta_foreground_color)
set_("ResultWindowIsMaximized", self.resultWindowIsMaximized) set_("ResultWindowIsMaximized", self.resultWindowIsMaximized)

View File

@ -203,6 +203,12 @@ class PreferencesDialogBase(QDialog):
# Prevent changing this on platforms where themes are unpredictable # Prevent changing this on platforms where themes are unpredictable
self.details_dialog_override_theme_icons.setEnabled(False if not ISLINUX else True) self.details_dialog_override_theme_icons.setEnabled(False if not ISLINUX else True)
self.displayVLayout.addWidget(self.details_dialog_override_theme_icons) self.displayVLayout.addWidget(self.details_dialog_override_theme_icons)
gridlayout = QGridLayout()
self.details_table_delta_foreground_color_label = QLabel(tr("Delta foreground color:"))
gridlayout.addWidget(self.details_table_delta_foreground_color_label, 4, 0)
self.details_table_delta_foreground_color = ColorPickerButton(self)
gridlayout.addWidget(self.details_table_delta_foreground_color, 4, 1, 1, 1, Qt.AlignLeft)
self.displayVLayout.addLayout(gridlayout)
def _setupAddCheckbox(self, name, label, parent=None): def _setupAddCheckbox(self, name, label, parent=None):
if parent is None: if parent is None:
@ -273,6 +279,8 @@ class PreferencesDialogBase(QDialog):
self.fontSizeSpinBox.setValue(prefs.tableFontSize) self.fontSizeSpinBox.setValue(prefs.tableFontSize)
setchecked(self.details_dialog_override_theme_icons, setchecked(self.details_dialog_override_theme_icons,
prefs.details_dialog_override_theme_icons) prefs.details_dialog_override_theme_icons)
self.details_table_delta_foreground_color.setColor(
prefs.details_table_delta_foreground_color)
self.result_table_ref_foreground_color.setColor( self.result_table_ref_foreground_color.setColor(
prefs.result_table_ref_foreground_color) prefs.result_table_ref_foreground_color)
self.result_table_delta_foreground_color.setColor( self.result_table_delta_foreground_color.setColor(
@ -297,6 +305,7 @@ class PreferencesDialogBase(QDialog):
prefs.details_dialog_titlebar_enabled = ischecked(self.details_dialog_titlebar_enabled) 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_vertical_titlebar = ischecked(self.details_dialog_vertical_titlebar)
prefs.details_dialog_override_theme_icons = ischecked(self.details_dialog_override_theme_icons) prefs.details_dialog_override_theme_icons = ischecked(self.details_dialog_override_theme_icons)
prefs.details_table_delta_foreground_color = self.details_table_delta_foreground_color.color
prefs.result_table_ref_foreground_color = self.result_table_ref_foreground_color.color prefs.result_table_ref_foreground_color = self.result_table_ref_foreground_color.color
prefs.result_table_delta_foreground_color = self.result_table_delta_foreground_color.color prefs.result_table_delta_foreground_color = self.result_table_delta_foreground_color.color
prefs.destination_type = self.copyMoveDestinationComboBox.currentIndex() prefs.destination_type = self.copyMoveDestinationComboBox.currentIndex()