Add setting for browser row padding to preferences

This commit is contained in:
Matthias Metelka 2022-11-23 00:28:27 +01:00
parent a543783d8e
commit 75c59da65a
5 changed files with 58 additions and 7 deletions

View file

@ -48,3 +48,5 @@ preferences-monthly-backups = Monthly backups to keep:
preferences-minutes-between-backups = Minutes between automatic backups: preferences-minutes-between-backups = Minutes between automatic backups:
preferences-reduce-motion = Reduce motion preferences-reduce-motion = Reduce motion
preferences-reduce-motion-tooltip = Disable various animations and transitions of the user interface preferences-reduce-motion-tooltip = Disable various animations and transitions of the user interface
preferences-browser-row-height = Browser row height
preferences-browser-row-height-tooltip = Adjust the padding (= amount of pixels between text and separator) of browser rows

View file

@ -348,11 +348,12 @@ class Table:
self._view.setWordWrap(False) self._view.setWordWrap(False)
self._view.setHorizontalScrollMode(QAbstractItemView.ScrollMode.ScrollPerPixel) self._view.setHorizontalScrollMode(QAbstractItemView.ScrollMode.ScrollPerPixel)
self._view.horizontalScrollBar().setSingleStep(10) self._view.horizontalScrollBar().setSingleStep(10)
self._view.verticalHeader().setDefaultSectionSize(12 + 2 * self.browser.mw.pm.browser_row_height()) self._view.verticalHeader().setDefaultSectionSize(
12 + 2 * self.browser.mw.pm.browser_row_height()
)
self._view.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) self._view.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu)
qconnect(self._view.customContextMenuRequested, self._on_context_menu) qconnect(self._view.customContextMenuRequested, self._on_context_menu)
def _setup_headers(self) -> None: def _setup_headers(self) -> None:
vh = self._view.verticalHeader() vh = self._view.verticalHeader()
hh = self._view.horizontalHeader() hh = self._view.horizontalHeader()

View file

@ -6,8 +6,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>640</width> <width>530</width>
<height>640</height> <height>660</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -150,6 +150,19 @@
</property> </property>
</widget> </widget>
</item> </item>
<item>
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item> <item>
<widget class="QSpinBox" name="uiScale"> <widget class="QSpinBox" name="uiScale">
<property name="suffix"> <property name="suffix">
@ -166,8 +179,22 @@
</property> </property>
</widget> </widget>
</item> </item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item> <item>
<spacer name="horizontalSpacer_4"> <widget class="QLabel" name="label">
<property name="toolTip">
<string>preferences_browser_row_height_tooltip</string>
</property>
<property name="text">
<string>preferences_browser_row_height</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation"> <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
@ -179,6 +206,19 @@
</property> </property>
</spacer> </spacer>
</item> </item>
<item>
<widget class="QSpinBox" name="bRowHeight">
<property name="minimum">
<number>6</number>
</property>
<property name="maximum">
<number>18</number>
</property>
<property name="value">
<number>8</number>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
<item> <item>
@ -666,7 +706,7 @@
</widget> </widget>
</widget> </widget>
</item> </item>
<item alignment="Qt::AlignCenter"> <item>
<widget class="QLabel" name="label_21"> <widget class="QLabel" name="label_21">
<property name="text"> <property name="text">
<string>preferences_some_settings_will_take_effect_after</string> <string>preferences_some_settings_will_take_effect_after</string>
@ -699,6 +739,7 @@
<tabstop>useCurrent</tabstop> <tabstop>useCurrent</tabstop>
<tabstop>default_search_text</tabstop> <tabstop>default_search_text</tabstop>
<tabstop>uiScale</tabstop> <tabstop>uiScale</tabstop>
<tabstop>bRowHeight</tabstop>
<tabstop>showEstimates</tabstop> <tabstop>showEstimates</tabstop>
<tabstop>showProgress</tabstop> <tabstop>showProgress</tabstop>
<tabstop>dayLearnFirst</tabstop> <tabstop>dayLearnFirst</tabstop>

View file

@ -209,6 +209,7 @@ class Preferences(QDialog):
"Setup options global to all profiles." "Setup options global to all profiles."
self.form.reduce_motion.setChecked(self.mw.pm.reduced_motion()) self.form.reduce_motion.setChecked(self.mw.pm.reduced_motion())
self.form.uiScale.setValue(int(self.mw.pm.uiScale() * 100)) self.form.uiScale.setValue(int(self.mw.pm.uiScale() * 100))
self.form.bRowHeight.setValue(int(self.mw.pm.browser_row_height()))
themes = [ themes = [
tr.preferences_theme_label(theme=theme) tr.preferences_theme_label(theme=theme)
for theme in ( for theme in (
@ -237,8 +238,8 @@ class Preferences(QDialog):
self.mw.pm.setUiScale(newScale) self.mw.pm.setUiScale(newScale)
restart_required = True restart_required = True
self.mw.pm.set_browser_row_height(self.form.bRowHeight.value())
self.mw.pm.set_reduced_motion(self.form.reduce_motion.isChecked()) self.mw.pm.set_reduced_motion(self.form.reduce_motion.isChecked())
self.mw.pm.set_legacy_import_export(self.form.legacy_import_export.isChecked()) self.mw.pm.set_legacy_import_export(self.form.legacy_import_export.isChecked())
if restart_required: if restart_required:

View file

@ -581,6 +581,12 @@ create table if not exists profiles
def set_last_loaded_profile_name(self, name: str) -> None: def set_last_loaded_profile_name(self, name: str) -> None:
self.meta["last_loaded_profile_name"] = name self.meta["last_loaded_profile_name"] = name
def set_browser_row_height(self, height: int) -> None:
self.meta["browser_row_height"] = height
def browser_row_height(self) -> int:
return self.meta.get("browser_row_height", 8)
# Profile-specific # Profile-specific
###################################################################### ######################################################################