[#82] Added table font size pref (Qt).

This commit is contained in:
Virgil Dupras 2011-09-23 10:29:25 -04:00
parent b8ac192d2a
commit 2c260742f6
5 changed files with 32 additions and 8 deletions

View File

@ -67,6 +67,7 @@ class DupeGuru(QObject):
self.prefs.load() self.prefs.load()
self.model = self.MODELCLASS(view=self, appdata=appdata) self.model = self.MODELCLASS(view=self, appdata=appdata)
self._setup() self._setup()
self.prefsChanged.emit(self.prefs)
#--- Private #--- Private
def _setup(self): def _setup(self):
@ -193,6 +194,7 @@ class DupeGuru(QObject):
#--- Signals #--- Signals
willSavePrefs = pyqtSignal() willSavePrefs = pyqtSignal()
prefsChanged = pyqtSignal(object)
#--- Events #--- Events
def finishedLaunching(self): def finishedLaunching(self):
@ -237,6 +239,7 @@ class DupeGuru(QObject):
self.preferences_dialog.save() self.preferences_dialog.save()
self.prefs.save() self.prefs.save()
self._update_options() self._update_options()
self.prefsChanged.emit(self.prefs)
def quitTriggered(self): def quitTriggered(self):
self.directories_dialog.close() self.directories_dialog.close()

View File

@ -6,6 +6,8 @@
# which should be included with this package. The terms are also available at # which should be included with this package. The terms are also available at
# http://www.hardcoded.net/licenses/bsd_license # http://www.hardcoded.net/licenses/bsd_license
from PyQt4.QtGui import QApplication
from qtlib.preferences import Preferences as PreferencesBase from qtlib.preferences import Preferences as PreferencesBase
class Preferences(PreferencesBase): class Preferences(PreferencesBase):
@ -39,6 +41,7 @@ class Preferences(PreferencesBase):
self.columns_width[index] = width self.columns_width[index] = width
self.columns_visible = get('ColumnsVisible', self.columns_visible) self.columns_visible = get('ColumnsVisible', self.columns_visible)
self.tableFontSize = get('TableFontSize', self.tableFontSize)
self.resultWindowIsMaximized = get('ResultWindowIsMaximized', self.resultWindowIsMaximized) self.resultWindowIsMaximized = get('ResultWindowIsMaximized', self.resultWindowIsMaximized)
self.resultWindowRect = self.get_rect('ResultWindowRect', self.resultWindowRect) self.resultWindowRect = self.get_rect('ResultWindowRect', self.resultWindowRect)
self.detailsWindowRect = self.get_rect('DetailsWindowRect', self.detailsWindowRect) self.detailsWindowRect = self.get_rect('DetailsWindowRect', self.detailsWindowRect)
@ -65,6 +68,7 @@ class Preferences(PreferencesBase):
self.custom_command = '' self.custom_command = ''
self.language = '' self.language = ''
self.tableFontSize = QApplication.font().pointSize()
self.resultWindowIsMaximized = False self.resultWindowIsMaximized = False
self.resultWindowRect = None self.resultWindowRect = None
self.detailsWindowRect = None self.detailsWindowRect = None
@ -98,6 +102,7 @@ class Preferences(PreferencesBase):
set_('ColumnsVisible', self.columns_visible) set_('ColumnsVisible', self.columns_visible)
set_('Language', self.language) set_('Language', self.language)
set_('TableFontSize', self.tableFontSize)
set_('ResultWindowIsMaximized', self.resultWindowIsMaximized) set_('ResultWindowIsMaximized', self.resultWindowIsMaximized)
self.set_rect('ResultWindowRect', self.resultWindowRect) self.set_rect('ResultWindowRect', self.resultWindowRect)
self.set_rect('DetailsWindowRect', self.detailsWindowRect) self.set_rect('DetailsWindowRect', self.detailsWindowRect)

View File

@ -8,10 +8,11 @@
from PyQt4.QtCore import SIGNAL, Qt, QSize from PyQt4.QtCore import SIGNAL, Qt, QSize
from PyQt4.QtGui import (QDialog, QDialogButtonBox, QVBoxLayout, QHBoxLayout, QLabel, QComboBox, from PyQt4.QtGui import (QDialog, QDialogButtonBox, QVBoxLayout, QHBoxLayout, QLabel, QComboBox,
QSlider, QSizePolicy, QSpacerItem, QCheckBox, QLineEdit, QMessageBox) QSlider, QSizePolicy, QSpacerItem, QCheckBox, QLineEdit, QMessageBox, QSpinBox)
from hscommon.plat import ISOSX, ISLINUX from hscommon.plat import ISOSX, ISLINUX
from hscommon.trans import tr, trmsg from hscommon.trans import tr, trmsg
from qtlib.util import horizontalWrap
class PreferencesDialogBase(QDialog): class PreferencesDialogBase(QDialog):
def __init__(self, parent, app): def __init__(self, parent, app):
@ -79,14 +80,17 @@ class PreferencesDialogBase(QDialog):
def _setupBottomPart(self): def _setupBottomPart(self):
# The bottom part of the pref panel is always the same in all editions. # The bottom part of the pref panel is always the same in all editions.
self.fontSizeLabel = QLabel(tr("Font size:"))
self.fontSizeSpinBox = QSpinBox()
self.fontSizeSpinBox.setMinimum(5)
self.widgetsVLayout.addLayout(horizontalWrap([self.fontSizeLabel, self.fontSizeSpinBox, None]))
self.languageLabel = QLabel(tr("Language:"), self) self.languageLabel = QLabel(tr("Language:"), self)
self.widgetsVLayout.addWidget(self.languageLabel)
self.languageComboBox = QComboBox(self) self.languageComboBox = QComboBox(self)
self.languageComboBox.addItem(tr("English")) self.languageComboBox.addItem(tr("English"))
self.languageComboBox.addItem(tr("French")) self.languageComboBox.addItem(tr("French"))
self.languageComboBox.addItem(tr("German")) self.languageComboBox.addItem(tr("German"))
self.languageComboBox.addItem(tr("Chinese (Simplified)")) self.languageComboBox.addItem(tr("Chinese (Simplified)"))
self.widgetsVLayout.addWidget(self.languageComboBox) self.widgetsVLayout.addLayout(horizontalWrap([self.languageLabel, self.languageComboBox, None]))
self.copyMoveLabel = QLabel(self) self.copyMoveLabel = QLabel(self)
self.copyMoveLabel.setText(tr("Copy and Move:")) self.copyMoveLabel.setText(tr("Copy and Move:"))
self.widgetsVLayout.addWidget(self.copyMoveLabel) self.widgetsVLayout.addWidget(self.copyMoveLabel)
@ -149,6 +153,7 @@ class PreferencesDialogBase(QDialog):
setchecked(self.debugModeBox, prefs.debug_mode) setchecked(self.debugModeBox, prefs.debug_mode)
self.copyMoveDestinationComboBox.setCurrentIndex(prefs.destination_type) self.copyMoveDestinationComboBox.setCurrentIndex(prefs.destination_type)
self.customCommandEdit.setText(prefs.custom_command) self.customCommandEdit.setText(prefs.custom_command)
self.fontSizeSpinBox.setValue(prefs.tableFontSize)
langindex = { langindex = {
'fr': 1, 'fr': 1,
'de': 2, 'de': 2,
@ -168,6 +173,7 @@ class PreferencesDialogBase(QDialog):
prefs.debug_mode = ischecked(self.debugModeBox) prefs.debug_mode = ischecked(self.debugModeBox)
prefs.destination_type = self.copyMoveDestinationComboBox.currentIndex() prefs.destination_type = self.copyMoveDestinationComboBox.currentIndex()
prefs.custom_command = str(self.customCommandEdit.text()) prefs.custom_command = str(self.customCommandEdit.text())
prefs.tableFontSize = self.fontSizeSpinBox.value()
langs = ['en', 'fr', 'de', 'zh_CN'] langs = ['en', 'fr', 'de', 'zh_CN']
lang = langs[self.languageComboBox.currentIndex()] lang = langs[self.languageComboBox.currentIndex()]
oldlang = self.app.prefs.language oldlang = self.app.prefs.language

View File

@ -177,7 +177,6 @@ class ResultWindow(QMainWindow):
self.resultsView.setSelectionBehavior(QAbstractItemView.SelectRows) self.resultsView.setSelectionBehavior(QAbstractItemView.SelectRows)
self.resultsView.setSortingEnabled(True) self.resultsView.setSortingEnabled(True)
self.resultsView.verticalHeader().setVisible(False) self.resultsView.verticalHeader().setVisible(False)
self.resultsView.verticalHeader().setDefaultSectionSize(18)
h = self.resultsView.horizontalHeader() h = self.resultsView.horizontalHeader()
h.setHighlightSections(False) h.setHighlightSections(False)
h.setMovable(True) h.setMovable(True)

View File

@ -6,8 +6,8 @@
# which should be included with this package. The terms are also available at # which should be included with this package. The terms are also available at
# http://www.hardcoded.net/licenses/bsd_license # http://www.hardcoded.net/licenses/bsd_license
from PyQt4.QtCore import SIGNAL, Qt from PyQt4.QtCore import SIGNAL, Qt, QSize
from PyQt4.QtGui import QBrush, QFont, QTableView, QColor from PyQt4.QtGui import QBrush, QFont, QFontMetrics, QTableView, QColor
from qtlib.table import Table from qtlib.table import Table
@ -21,6 +21,8 @@ class ResultsModel(Table):
Table.__init__(self, model, view) Table.__init__(self, model, view)
self.model.connect() self.model.connect()
app.prefsChanged.connect(self.appPrefsChanged)
def columnCount(self, parent): def columnCount(self, parent):
return len(self._app.COLUMNS) return len(self._app.COLUMNS)
@ -61,7 +63,8 @@ class ResultsModel(Table):
return flags return flags
def headerData(self, section, orientation, role): def headerData(self, section, orientation, role):
if orientation == Qt.Horizontal and role == Qt.DisplayRole and section < len(self._app.COLUMNS): if role == Qt.DisplayRole:
if orientation == Qt.Horizontal and section < len(self._app.COLUMNS):
return self._app.COLUMNS[section].display return self._app.COLUMNS[section].display
return None return None
@ -99,6 +102,14 @@ class ResultsModel(Table):
def delta_values(self, value): def delta_values(self, value):
self.model.delta_values = value self.model.delta_values = value
#--- Events
def appPrefsChanged(self, prefs):
font = self.view.font()
font.setPointSize(prefs.tableFontSize)
self.view.setFont(font)
fm = QFontMetrics(font)
self.view.verticalHeader().setDefaultSectionSize(fm.height()+2)
#--- model --> view #--- model --> view
def invalidate_markings(self): def invalidate_markings(self):
# redraw view # redraw view