Skip to content

Commit b756a47

Browse files
refactor(advanced-settings-dialog): extract __init__ into smaller methods to fix R0914 (#1538)
Co-authored-by: Raivis Dejus <raivisd@scandiweb.com>
1 parent f00473f commit b756a47

1 file changed

Lines changed: 146 additions & 139 deletions

File tree

buzz/widgets/transcriber/advanced_settings_dialog.py

Lines changed: 146 additions & 139 deletions
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,20 @@ def __init__(
5050
layout = QFormLayout(self)
5151
layout.setFieldGrowthPolicy(QFormLayout.FieldGrowthPolicy.ExpandingFieldsGrow)
5252

53-
transcription_settings_title= _("Speech recognition settings")
53+
self._setup_transcription_section(layout)
54+
self._setup_translation_section(layout)
55+
if show_recording_settings:
56+
self._setup_recording_section(layout)
57+
self._setup_button_box(layout)
58+
59+
def _setup_transcription_section(self, layout: QFormLayout):
60+
transcription_settings_title = _("Speech recognition settings")
5461
transcription_settings_title_label = QLabel(f"<h4>{transcription_settings_title}</h4>", self)
5562
layout.addRow("", transcription_settings_title_label)
5663

5764
self.initial_prompt_text_edit = InitialPromptTextEdit(
58-
transcription_options.initial_prompt,
59-
transcription_options.model.model_type,
65+
self.transcription_options.initial_prompt,
66+
self.transcription_options.model.model_type,
6067
self,
6168
)
6269
self.initial_prompt_text_edit.textChanged.connect(
@@ -65,7 +72,8 @@ def __init__(
6572

6673
layout.addRow(_("Initial Prompt:"), self.initial_prompt_text_edit)
6774

68-
translation_settings_title= _("Translation settings")
75+
def _setup_translation_section(self, layout: QFormLayout):
76+
translation_settings_title = _("Translation settings")
6977
translation_settings_title_label = QLabel(f"<h4>{translation_settings_title}</h4>", self)
7078
layout.addRow("", translation_settings_title_label)
7179

@@ -112,140 +120,141 @@ def __init__(
112120
self.llm_prompt_label.setEnabled(self.transcription_options.enable_llm_translation)
113121
layout.addRow(self.llm_prompt_label, self.llm_prompt_text_edit)
114122

115-
if show_recording_settings:
116-
recording_settings_title = _("Recording settings")
117-
recording_settings_title_label = QLabel(f"<h4>{recording_settings_title}</h4>", self)
118-
layout.addRow("", recording_settings_title_label)
119-
120-
self.silence_threshold_spin_box = QDoubleSpinBox(self)
121-
self.silence_threshold_spin_box.setRange(0.0, 1.0)
122-
self.silence_threshold_spin_box.setSingleStep(0.0005)
123-
self.silence_threshold_spin_box.setDecimals(4)
124-
self.silence_threshold_spin_box.setValue(transcription_options.silence_threshold)
125-
self.silence_threshold_spin_box.valueChanged.connect(self.on_silence_threshold_changed)
126-
self.silence_threshold_spin_box.setFixedWidth(90)
127-
layout.addRow(_("Silence threshold:"), self.silence_threshold_spin_box)
128-
129-
# Live recording mode
130-
self.recording_mode_combo = QComboBox(self)
131-
for mode in RecordingTranscriberMode:
132-
self.recording_mode_combo.addItem(mode.value)
133-
self.recording_mode_combo.setCurrentIndex(
134-
self.settings.value(Settings.Key.RECORDING_TRANSCRIBER_MODE, 0)
135-
)
136-
self.recording_mode_combo.currentIndexChanged.connect(self.on_recording_mode_changed)
137-
self.recording_mode_combo.setFixedWidth(250)
138-
layout.addRow(_("Live recording mode") + ":", self.recording_mode_combo)
139-
140-
self.line_separator_line_edit = QLineEdit(self)
141-
line_sep_display = repr(transcription_options.line_separator)[1:-1] or r"\n\n"
142-
self.line_separator_line_edit.setText(line_sep_display)
143-
self.line_separator_line_edit.textChanged.connect(self.on_line_separator_changed)
144-
self.line_separator_label = QLabel(_("Line separator:"))
145-
layout.addRow(self.line_separator_label, self.line_separator_line_edit)
146-
147-
self.transcription_step_spin_box = QDoubleSpinBox(self)
148-
self.transcription_step_spin_box.setRange(2.0, 5.0)
149-
self.transcription_step_spin_box.setSingleStep(0.1)
150-
self.transcription_step_spin_box.setDecimals(1)
151-
self.transcription_step_spin_box.setValue(transcription_options.transcription_step)
152-
self.transcription_step_spin_box.valueChanged.connect(self.on_transcription_step_changed)
153-
self.transcription_step_spin_box.setFixedWidth(80)
154-
self.transcription_step_label = QLabel(_("Transcription step:"))
155-
layout.addRow(self.transcription_step_label, self.transcription_step_spin_box)
156-
157-
hide_unconfirmed = self.settings.value(
158-
Settings.Key.RECORDING_TRANSCRIBER_HIDE_UNCONFIRMED, True
159-
)
160-
self.hide_unconfirmed_checkbox = QCheckBox(_("Hide unconfirmed"))
161-
self.hide_unconfirmed_checkbox.setChecked(hide_unconfirmed)
162-
self.hide_unconfirmed_checkbox.stateChanged.connect(self.on_hide_unconfirmed_changed)
163-
self.hide_unconfirmed_label = QLabel("")
164-
layout.addRow(self.hide_unconfirmed_label, self.hide_unconfirmed_checkbox)
165-
166-
self._update_recording_mode_visibility(
167-
RecordingTranscriberMode(self.recording_mode_combo.currentText())
168-
)
169-
170-
# Export enabled checkbox
171-
self._export_enabled = self.settings.value(
172-
Settings.Key.RECORDING_TRANSCRIBER_EXPORT_ENABLED, False
173-
)
174-
self.export_enabled_checkbox = QCheckBox(_("Enable live recording export"))
175-
self.export_enabled_checkbox.setChecked(self._export_enabled)
176-
self.export_enabled_checkbox.stateChanged.connect(self.on_export_enabled_changed)
177-
layout.addRow("", self.export_enabled_checkbox)
178-
179-
# Export folder
180-
export_folder = self.settings.value(
181-
Settings.Key.RECORDING_TRANSCRIBER_EXPORT_FOLDER, ""
182-
)
183-
self.export_folder_line_edit = LineEdit(export_folder, self)
184-
self.export_folder_line_edit.setEnabled(self._export_enabled)
185-
self.export_folder_line_edit.textChanged.connect(self.on_export_folder_changed)
186-
self.export_folder_browse_button = QPushButton(_("Browse"), self)
187-
self.export_folder_browse_button.setEnabled(self._export_enabled)
188-
self.export_folder_browse_button.clicked.connect(self.on_browse_export_folder)
189-
export_folder_row = QHBoxLayout()
190-
export_folder_row.addWidget(self.export_folder_line_edit)
191-
export_folder_row.addWidget(self.export_folder_browse_button)
192-
self.export_folder_label = QLabel(_("Export folder:"))
193-
self.export_folder_label.setEnabled(self._export_enabled)
194-
layout.addRow(self.export_folder_label, export_folder_row)
195-
196-
# Export file name template
197-
export_file_name = self.settings.value(
198-
Settings.Key.RECORDING_TRANSCRIBER_EXPORT_FILE_NAME, ""
199-
)
200-
self.export_file_name_line_edit = LineEdit(export_file_name, self)
201-
self.export_file_name_line_edit.setEnabled(self._export_enabled)
202-
self.export_file_name_line_edit.textChanged.connect(self.on_export_file_name_changed)
203-
self.export_file_name_label = QLabel(_("Export file name:"))
204-
self.export_file_name_label.setEnabled(self._export_enabled)
205-
layout.addRow(self.export_file_name_label, self.export_file_name_line_edit)
206-
207-
# Export file type
208-
self.export_file_type_combo = QComboBox(self)
209-
self.export_file_type_combo.addItem(_("Text file (.txt)"), "txt")
210-
self.export_file_type_combo.addItem(_("CSV (.csv)"), "csv")
211-
current_type = self.settings.value(
212-
Settings.Key.RECORDING_TRANSCRIBER_EXPORT_FILE_TYPE, "txt"
213-
)
214-
type_index = self.export_file_type_combo.findData(current_type)
215-
if type_index >= 0:
216-
self.export_file_type_combo.setCurrentIndex(type_index)
217-
self.export_file_type_combo.setEnabled(self._export_enabled)
218-
self.export_file_type_combo.currentIndexChanged.connect(self.on_export_file_type_changed)
219-
self.export_file_type_combo.setFixedWidth(200)
220-
self.export_file_type_label = QLabel(_("Export file type:"))
221-
self.export_file_type_label.setEnabled(self._export_enabled)
222-
layout.addRow(self.export_file_type_label, self.export_file_type_combo)
223-
224-
# Max entries
225-
max_entries = self.settings.value(
226-
Settings.Key.RECORDING_TRANSCRIBER_EXPORT_MAX_ENTRIES, 0, int
227-
)
228-
self.export_max_entries_spin = QSpinBox(self)
229-
self.export_max_entries_spin.setRange(0, 99)
230-
self.export_max_entries_spin.setValue(max_entries)
231-
self.export_max_entries_spin.setEnabled(self._export_enabled)
232-
self.export_max_entries_spin.valueChanged.connect(self.on_export_max_entries_changed)
233-
self.export_max_entries_spin.setFixedWidth(90)
234-
self.export_max_entries_label = QLabel(_("Limit export entries\n(0 = export all):"))
235-
self.export_max_entries_label.setEnabled(self._export_enabled)
236-
layout.addRow(self.export_max_entries_label, self.export_max_entries_spin)
237-
238-
_field_height = self.llm_model_line_edit.sizeHint().height()
239-
for widget in (
240-
self.line_separator_line_edit,
241-
self.silence_threshold_spin_box,
242-
self.recording_mode_combo,
243-
self.transcription_step_spin_box,
244-
self.export_file_type_combo,
245-
self.export_max_entries_spin,
246-
):
247-
widget.setFixedHeight(_field_height)
123+
def _setup_recording_section(self, layout: QFormLayout):
124+
recording_settings_title = _("Recording settings")
125+
recording_settings_title_label = QLabel(f"<h4>{recording_settings_title}</h4>", self)
126+
layout.addRow("", recording_settings_title_label)
127+
128+
self.silence_threshold_spin_box = QDoubleSpinBox(self)
129+
self.silence_threshold_spin_box.setRange(0.0, 1.0)
130+
self.silence_threshold_spin_box.setSingleStep(0.0005)
131+
self.silence_threshold_spin_box.setDecimals(4)
132+
self.silence_threshold_spin_box.setValue(self.transcription_options.silence_threshold)
133+
self.silence_threshold_spin_box.valueChanged.connect(self.on_silence_threshold_changed)
134+
self.silence_threshold_spin_box.setFixedWidth(90)
135+
layout.addRow(_("Silence threshold:"), self.silence_threshold_spin_box)
136+
137+
# Live recording mode
138+
self.recording_mode_combo = QComboBox(self)
139+
for mode in RecordingTranscriberMode:
140+
self.recording_mode_combo.addItem(mode.value)
141+
self.recording_mode_combo.setCurrentIndex(
142+
self.settings.value(Settings.Key.RECORDING_TRANSCRIBER_MODE, 0)
143+
)
144+
self.recording_mode_combo.currentIndexChanged.connect(self.on_recording_mode_changed)
145+
self.recording_mode_combo.setFixedWidth(250)
146+
layout.addRow(_("Live recording mode") + ":", self.recording_mode_combo)
147+
148+
self.line_separator_line_edit = QLineEdit(self)
149+
line_sep_display = repr(self.transcription_options.line_separator)[1:-1] or r"\n\n"
150+
self.line_separator_line_edit.setText(line_sep_display)
151+
self.line_separator_line_edit.textChanged.connect(self.on_line_separator_changed)
152+
self.line_separator_label = QLabel(_("Line separator:"))
153+
layout.addRow(self.line_separator_label, self.line_separator_line_edit)
154+
155+
self.transcription_step_spin_box = QDoubleSpinBox(self)
156+
self.transcription_step_spin_box.setRange(2.0, 5.0)
157+
self.transcription_step_spin_box.setSingleStep(0.1)
158+
self.transcription_step_spin_box.setDecimals(1)
159+
self.transcription_step_spin_box.setValue(self.transcription_options.transcription_step)
160+
self.transcription_step_spin_box.valueChanged.connect(self.on_transcription_step_changed)
161+
self.transcription_step_spin_box.setFixedWidth(80)
162+
self.transcription_step_label = QLabel(_("Transcription step:"))
163+
layout.addRow(self.transcription_step_label, self.transcription_step_spin_box)
164+
165+
hide_unconfirmed = self.settings.value(
166+
Settings.Key.RECORDING_TRANSCRIBER_HIDE_UNCONFIRMED, True
167+
)
168+
self.hide_unconfirmed_checkbox = QCheckBox(_("Hide unconfirmed"))
169+
self.hide_unconfirmed_checkbox.setChecked(hide_unconfirmed)
170+
self.hide_unconfirmed_checkbox.stateChanged.connect(self.on_hide_unconfirmed_changed)
171+
self.hide_unconfirmed_label = QLabel("")
172+
layout.addRow(self.hide_unconfirmed_label, self.hide_unconfirmed_checkbox)
173+
174+
self._update_recording_mode_visibility(
175+
RecordingTranscriberMode(self.recording_mode_combo.currentText())
176+
)
248177

178+
# Export enabled checkbox
179+
self._export_enabled = self.settings.value(
180+
Settings.Key.RECORDING_TRANSCRIBER_EXPORT_ENABLED, False
181+
)
182+
self.export_enabled_checkbox = QCheckBox(_("Enable live recording export"))
183+
self.export_enabled_checkbox.setChecked(self._export_enabled)
184+
self.export_enabled_checkbox.stateChanged.connect(self.on_export_enabled_changed)
185+
layout.addRow("", self.export_enabled_checkbox)
186+
187+
# Export folder
188+
export_folder = self.settings.value(
189+
Settings.Key.RECORDING_TRANSCRIBER_EXPORT_FOLDER, ""
190+
)
191+
self.export_folder_line_edit = LineEdit(export_folder, self)
192+
self.export_folder_line_edit.setEnabled(self._export_enabled)
193+
self.export_folder_line_edit.textChanged.connect(self.on_export_folder_changed)
194+
self.export_folder_browse_button = QPushButton(_("Browse"), self)
195+
self.export_folder_browse_button.setEnabled(self._export_enabled)
196+
self.export_folder_browse_button.clicked.connect(self.on_browse_export_folder)
197+
export_folder_row = QHBoxLayout()
198+
export_folder_row.addWidget(self.export_folder_line_edit)
199+
export_folder_row.addWidget(self.export_folder_browse_button)
200+
self.export_folder_label = QLabel(_("Export folder:"))
201+
self.export_folder_label.setEnabled(self._export_enabled)
202+
layout.addRow(self.export_folder_label, export_folder_row)
203+
204+
# Export file name template
205+
export_file_name = self.settings.value(
206+
Settings.Key.RECORDING_TRANSCRIBER_EXPORT_FILE_NAME, ""
207+
)
208+
self.export_file_name_line_edit = LineEdit(export_file_name, self)
209+
self.export_file_name_line_edit.setEnabled(self._export_enabled)
210+
self.export_file_name_line_edit.textChanged.connect(self.on_export_file_name_changed)
211+
self.export_file_name_label = QLabel(_("Export file name:"))
212+
self.export_file_name_label.setEnabled(self._export_enabled)
213+
layout.addRow(self.export_file_name_label, self.export_file_name_line_edit)
214+
215+
# Export file type
216+
self.export_file_type_combo = QComboBox(self)
217+
self.export_file_type_combo.addItem(_("Text file (.txt)"), "txt")
218+
self.export_file_type_combo.addItem(_("CSV (.csv)"), "csv")
219+
current_type = self.settings.value(
220+
Settings.Key.RECORDING_TRANSCRIBER_EXPORT_FILE_TYPE, "txt"
221+
)
222+
type_index = self.export_file_type_combo.findData(current_type)
223+
if type_index >= 0:
224+
self.export_file_type_combo.setCurrentIndex(type_index)
225+
self.export_file_type_combo.setEnabled(self._export_enabled)
226+
self.export_file_type_combo.currentIndexChanged.connect(self.on_export_file_type_changed)
227+
self.export_file_type_combo.setFixedWidth(200)
228+
self.export_file_type_label = QLabel(_("Export file type:"))
229+
self.export_file_type_label.setEnabled(self._export_enabled)
230+
layout.addRow(self.export_file_type_label, self.export_file_type_combo)
231+
232+
# Max entries
233+
max_entries = self.settings.value(
234+
Settings.Key.RECORDING_TRANSCRIBER_EXPORT_MAX_ENTRIES, 0, int
235+
)
236+
self.export_max_entries_spin = QSpinBox(self)
237+
self.export_max_entries_spin.setRange(0, 99)
238+
self.export_max_entries_spin.setValue(max_entries)
239+
self.export_max_entries_spin.setEnabled(self._export_enabled)
240+
self.export_max_entries_spin.valueChanged.connect(self.on_export_max_entries_changed)
241+
self.export_max_entries_spin.setFixedWidth(90)
242+
self.export_max_entries_label = QLabel(_("Limit export entries\n(0 = export all):"))
243+
self.export_max_entries_label.setEnabled(self._export_enabled)
244+
layout.addRow(self.export_max_entries_label, self.export_max_entries_spin)
245+
246+
_field_height = self.llm_model_line_edit.sizeHint().height()
247+
for widget in (
248+
self.line_separator_line_edit,
249+
self.silence_threshold_spin_box,
250+
self.recording_mode_combo,
251+
self.transcription_step_spin_box,
252+
self.export_file_type_combo,
253+
self.export_max_entries_spin,
254+
):
255+
widget.setFixedHeight(_field_height)
256+
257+
def _setup_button_box(self, layout: QFormLayout):
249258
button_box = QDialogButtonBox(
250259
QDialogButtonBox.StandardButton(QDialogButtonBox.StandardButton.Ok), self
251260
)
@@ -254,8 +263,6 @@ def __init__(
254263

255264
layout.addWidget(button_box)
256265

257-
self.setLayout(layout)
258-
259266
def on_initial_prompt_changed(self):
260267
self.transcription_options.initial_prompt = (
261268
self.initial_prompt_text_edit.toPlainText()

0 commit comments

Comments
 (0)