mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Remember voice table column state
This commit is contained in:
parent
9f2bf5482b
commit
8babb23858
@ -4,8 +4,9 @@
|
|||||||
|
|
||||||
from contextlib import suppress
|
from contextlib import suppress
|
||||||
from PyQt5.Qt import (
|
from PyQt5.Qt import (
|
||||||
QAbstractItemView, QAbstractTableModel, QComboBox, QFontMetrics, QFormLayout,
|
QAbstractItemView, QAbstractTableModel, QByteArray, QComboBox, QFontMetrics,
|
||||||
QItemSelectionModel, QSortFilterProxyModel, QSlider, Qt, QTableView, QWidget
|
QFormLayout, QItemSelectionModel, QSlider, QSortFilterProxyModel, Qt, QTableView,
|
||||||
|
QWidget
|
||||||
)
|
)
|
||||||
|
|
||||||
from calibre.gui2.preferences.look_feel import BusyCursor
|
from calibre.gui2.preferences.look_feel import BusyCursor
|
||||||
@ -100,7 +101,8 @@ class Widget(QWidget):
|
|||||||
v.setModel(p)
|
v.setModel(p)
|
||||||
v.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectRows)
|
v.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectRows)
|
||||||
v.setSortingEnabled(True)
|
v.setSortingEnabled(True)
|
||||||
v.horizontalHeader().resizeSection(0, QFontMetrics(self.font()).averageCharWidth() * 30)
|
h = v.horizontalHeader()
|
||||||
|
h.resizeSection(0, QFontMetrics(self.font()).averageCharWidth() * 30)
|
||||||
v.verticalHeader().close()
|
v.verticalHeader().close()
|
||||||
v.setSelectionMode(QAbstractItemView.SelectionMode.SingleSelection)
|
v.setSelectionMode(QAbstractItemView.SelectionMode.SingleSelection)
|
||||||
v.sortByColumn(0, Qt.SortOrder.AscendingOrder)
|
v.sortByColumn(0, Qt.SortOrder.AscendingOrder)
|
||||||
@ -109,6 +111,15 @@ class Widget(QWidget):
|
|||||||
|
|
||||||
self.backend_settings = initial_backend_settings or {}
|
self.backend_settings = initial_backend_settings or {}
|
||||||
|
|
||||||
|
def restore_state(self, prefs):
|
||||||
|
data = prefs.get(f'{self.tts_client.name}-voice-table-state')
|
||||||
|
if data is not None:
|
||||||
|
self.voices.horizontalHeader().restoreState(QByteArray(data))
|
||||||
|
|
||||||
|
def save_state(self, prefs):
|
||||||
|
data = bytearray(self.voices.horizontalHeader().saveState())
|
||||||
|
prefs.set(f'{self.tts_client.name}-voice-table-state', data)
|
||||||
|
|
||||||
def restore_to_defaults(self):
|
def restore_to_defaults(self):
|
||||||
self.backend_settings = {}
|
self.backend_settings = {}
|
||||||
|
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
from contextlib import suppress
|
from contextlib import suppress
|
||||||
from PyQt5.Qt import (
|
from PyQt5.Qt import (
|
||||||
QAbstractItemView, QAbstractTableModel, QFontMetrics, QFormLayout,
|
QAbstractItemView, QAbstractTableModel, QByteArray, QFontMetrics, QFormLayout,
|
||||||
QItemSelectionModel, QSortFilterProxyModel, QSlider, Qt, QTableView, QWidget
|
QItemSelectionModel, QSlider, QSortFilterProxyModel, Qt, QTableView, QWidget
|
||||||
)
|
)
|
||||||
|
|
||||||
from calibre.gui2.preferences.look_feel import BusyCursor
|
from calibre.gui2.preferences.look_feel import BusyCursor
|
||||||
@ -105,6 +105,15 @@ class Widget(QWidget):
|
|||||||
|
|
||||||
self.backend_settings = initial_backend_settings or {}
|
self.backend_settings = initial_backend_settings or {}
|
||||||
|
|
||||||
|
def restore_state(self, prefs):
|
||||||
|
data = prefs.get(f'{self.tts_client.name}-voice-table-state')
|
||||||
|
if data is not None:
|
||||||
|
self.voices.horizontalHeader().restoreState(QByteArray(data))
|
||||||
|
|
||||||
|
def save_state(self, prefs):
|
||||||
|
data = bytearray(self.voices.horizontalHeader().saveState())
|
||||||
|
prefs.set(f'{self.tts_client.name}-voice-table-state', data)
|
||||||
|
|
||||||
def restore_to_defaults(self):
|
def restore_to_defaults(self):
|
||||||
self.backend_settings = {}
|
self.backend_settings = {}
|
||||||
|
|
||||||
|
@ -4,8 +4,9 @@
|
|||||||
|
|
||||||
from contextlib import suppress
|
from contextlib import suppress
|
||||||
from PyQt5.Qt import (
|
from PyQt5.Qt import (
|
||||||
QAbstractItemView, QAbstractTableModel, QComboBox, QFontMetrics, QFormLayout,
|
QAbstractItemView, QAbstractTableModel, QByteArray, QComboBox, QFontMetrics,
|
||||||
QItemSelectionModel, QSlider, QSortFilterProxyModel, Qt, QTableView, QWidget
|
QFormLayout, QItemSelectionModel, QSlider, QSortFilterProxyModel, Qt, QTableView,
|
||||||
|
QWidget
|
||||||
)
|
)
|
||||||
|
|
||||||
from calibre.gui2.preferences.look_feel import BusyCursor
|
from calibre.gui2.preferences.look_feel import BusyCursor
|
||||||
@ -108,6 +109,15 @@ class Widget(QWidget):
|
|||||||
|
|
||||||
self.backend_settings = initial_backend_settings or {}
|
self.backend_settings = initial_backend_settings or {}
|
||||||
|
|
||||||
|
def restore_state(self, prefs):
|
||||||
|
data = prefs.get(f'{self.tts_client.name}-voice-table-state')
|
||||||
|
if data is not None:
|
||||||
|
self.voices.horizontalHeader().restoreState(QByteArray(data))
|
||||||
|
|
||||||
|
def save_state(self, prefs):
|
||||||
|
data = bytearray(self.voices.horizontalHeader().saveState())
|
||||||
|
prefs.set(f'{self.tts_client.name}-voice-table-state', data)
|
||||||
|
|
||||||
def restore_to_defaults(self):
|
def restore_to_defaults(self):
|
||||||
self.backend_settings = {}
|
self.backend_settings = {}
|
||||||
|
|
||||||
|
@ -25,6 +25,10 @@ class Config(Dialog):
|
|||||||
self.config_widget.restore_to_defaults
|
self.config_widget.restore_to_defaults
|
||||||
b = self.bb.addButton(QDialogButtonBox.StandardButton.RestoreDefaults)
|
b = self.bb.addButton(QDialogButtonBox.StandardButton.RestoreDefaults)
|
||||||
b.clicked.connect(self.restore_to_defaults)
|
b.clicked.connect(self.restore_to_defaults)
|
||||||
|
self.config_widget.restore_state(vprefs)
|
||||||
|
|
||||||
|
def save_state(self):
|
||||||
|
self.config_widget.save_state(vprefs)
|
||||||
|
|
||||||
def restore_to_defaults(self):
|
def restore_to_defaults(self):
|
||||||
self.config_widget.restore_to_defaults()
|
self.config_widget.restore_to_defaults()
|
||||||
@ -135,6 +139,7 @@ class TTS(QObject):
|
|||||||
self.settings_changed.emit(d.ui_settings)
|
self.settings_changed.emit(d.ui_settings)
|
||||||
else:
|
else:
|
||||||
self.settings_changed.emit(None)
|
self.settings_changed.emit(None)
|
||||||
|
d.save_state()
|
||||||
|
|
||||||
def slower(self, data):
|
def slower(self, data):
|
||||||
settings = self.tts_client.change_rate(steps=-1)
|
settings = self.tts_client.change_rate(steps=-1)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user