diff --git a/qt/aqt/forms/preferences.ui b/qt/aqt/forms/preferences.ui index d5afcb135..eb19da19a 100644 --- a/qt/aqt/forms/preferences.ui +++ b/qt/aqt/forms/preferences.ui @@ -6,7 +6,7 @@ 0 0 - 632 + 640 374 @@ -111,6 +111,13 @@ + + + + + + + @@ -596,6 +603,7 @@ pasteInvert nightMode useCurrent + recording_driver uiScale showEstimates showProgress diff --git a/qt/aqt/preferences.py b/qt/aqt/preferences.py index 63589ef31..4304c61b8 100644 --- a/qt/aqt/preferences.py +++ b/qt/aqt/preferences.py @@ -4,6 +4,7 @@ import anki.lang import aqt from aqt import AnkiQt +from aqt.profiles import RecordingDriver from aqt.qt import * from aqt.utils import TR, askUser, openHelp, showInfo, showWarning, tr @@ -220,6 +221,21 @@ class Preferences(QDialog): self.form.showPlayButtons.setChecked(self.prof.get("showPlayButtons", True)) self.form.nightMode.setChecked(self.mw.pm.night_mode()) self.form.interrupt_audio.setChecked(self.mw.pm.interrupt_audio()) + self._recording_drivers = [ + RecordingDriver.QtAudioInput, + RecordingDriver.QtRecorder, + RecordingDriver.PyAudio, + ] + # fixme: i18n + self.form.recording_driver.addItems( + [ + f"Voice recording driver: {driver.value}" + for driver in self._recording_drivers + ] + ) + self.form.recording_driver.setCurrentIndex( + self._recording_drivers.index(self.mw.pm.recording_driver()) + ) def updateOptions(self): restart_required = False @@ -237,6 +253,9 @@ class Preferences(QDialog): restart_required = True self.mw.pm.set_interrupt_audio(self.form.interrupt_audio.isChecked()) + self.mw.pm.set_recording_driver( + self._recording_drivers[self.form.recording_driver.currentIndex()] + ) if restart_required: showInfo(tr(TR.PREFERENCES_CHANGES_WILL_TAKE_EFFECT_WHEN_YOU)) diff --git a/qt/aqt/profiles.py b/qt/aqt/profiles.py index a6e7b7a89..bbb5547a8 100644 --- a/qt/aqt/profiles.py +++ b/qt/aqt/profiles.py @@ -641,11 +641,11 @@ create table if not exists profiles def recording_driver(self) -> RecordingDriver: if driver := self.profile.get("recordingDriver"): - return driver + return RecordingDriver(driver) return RecordingDriver.QtAudioInput def set_recording_driver(self, driver: RecordingDriver): - self.profile["recordingDriver"] = driver.value() + self.profile["recordingDriver"] = driver.value ######################################################################