forked from Vocab-Apps/anki-hyper-tts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcomponent_errorhandling.py
68 lines (50 loc) · 2.66 KB
/
component_errorhandling.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import sys
import aqt.qt
component_common = __import__('component_common', globals(), locals(), [], sys._addon_import_level_base)
config_models = __import__('config_models', globals(), locals(), [], sys._addon_import_level_base)
constants = __import__('constants', globals(), locals(), [], sys._addon_import_level_base)
gui_utils = __import__('gui_utils', globals(), locals(), [], sys._addon_import_level_base)
logging_utils = __import__('logging_utils', globals(), locals(), [], sys._addon_import_level_base)
logger = logging_utils.get_child_logger(__name__)
class ErrorHandling(component_common.ConfigComponentBase):
def __init__(self, hypertts, dialog, model_change_callback):
self.hypertts = hypertts
self.dialog = dialog
self.model = config_models.ErrorHandling()
self.model_change_callback = model_change_callback
self.propagate_model_change = True
self.realtime_tts_errors_dialog_type = aqt.qt.QComboBox()
# populate combo box with constants.ErrorDialogType
for error_dialog_type in constants.ErrorDialogType:
self.realtime_tts_errors_dialog_type.addItem(error_dialog_type.name, error_dialog_type)
def get_model(self):
return self.model
def load_model(self, model):
self.model = model
self.propagate_model_change = False
self.realtime_tts_errors_dialog_type.setCurrentText(self.model.realtime_tts_errors_dialog_type.name)
self.propagate_model_change = True
def notify_model_update(self):
if self.propagate_model_change == True:
self.model_change_callback(self.model)
def draw(self):
layout_widget = aqt.qt.QWidget()
layout = aqt.qt.QVBoxLayout(layout_widget)
# editor add audio
# ================
groupbox = aqt.qt.QGroupBox('Realtime TTS Errors')
vlayout = aqt.qt.QVBoxLayout()
realtime_tts_error_dialog = aqt.qt.QLabel(constants.GUI_TEXT_ERROR_HANDLING_REALTIME_TTS)
realtime_tts_error_dialog.setWordWrap(True)
vlayout.addWidget(realtime_tts_error_dialog)
vlayout.addWidget(self.realtime_tts_errors_dialog_type)
groupbox.setLayout(vlayout)
layout.addWidget(groupbox)
layout.addStretch()
# wire events
self.realtime_tts_errors_dialog_type.currentIndexChanged.connect(self.realtime_tts_errors_dialog_type_changed)
return layout_widget
def realtime_tts_errors_dialog_type_changed(self, index):
logger.info(f'realtime_tts_errors_dialog_type_changed {index}')
self.model.realtime_tts_errors_dialog_type = self.realtime_tts_errors_dialog_type.itemData(index)
self.notify_model_update()