1
0
şunun yansıması https://github.com/arsenetar/dupeguru.git eşitlendi 2025-09-11 17:58:17 +00:00

Add color preference for delta in details table

Bu işleme şunda yer alıyor:
glubsy 2020-07-29 21:42:44 +02:00
ebeveyn da8c493c9f
işleme eab5003e61
4 değiştirilmiş dosya ile 18 ekleme ve 4 silme

Dosyayı Görüntüle

@ -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

Dosyayı Görüntüle

@ -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)

Dosyayı Görüntüle

@ -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)

Dosyayı Görüntüle

@ -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()