@@ -13,6 +13,7 @@ def __init__(self, settings_manager: SettingsManager, parent=None):
1313 self .settings = settings_manager
1414 self .config = self .settings .app_config
1515 self .init_ui ()
16+ self .settings .settings_changed .connect (self .update_from_config )
1617
1718 def init_ui (self ):
1819 layout = QHBoxLayout ()
@@ -38,12 +39,21 @@ def on_change(self):
3839 self .config .position .y = self .spin_y .value ()
3940 self .settings .save ()
4041
42+ def update_from_config (self ):
43+ self .spin_x .blockSignals (True )
44+ self .spin_y .blockSignals (True )
45+ self .spin_x .setValue (self .config .position .x )
46+ self .spin_y .setValue (self .config .position .y )
47+ self .spin_x .blockSignals (False )
48+ self .spin_y .blockSignals (False )
49+
4150class VisualSettingsGroup (QGroupBox ):
4251 def __init__ (self , settings_manager : SettingsManager , parent = None ):
4352 super ().__init__ ("Visual Settings" , parent )
4453 self .settings = settings_manager
4554 self .config = self .settings .app_config
4655 self .init_ui ()
56+ self .settings .settings_changed .connect (self .update_from_config )
4757
4858 def init_ui (self ):
4959 layout = QVBoxLayout ()
@@ -91,6 +101,12 @@ def update_color_btn_style(self):
91101 self .btn_color .setStyleSheet (style )
92102 self .btn_color .setText (f"RGBA({ c .red ()} ,{ c .green ()} ,{ c .blue ()} ,{ c .alpha ()} )" )
93103
104+ def update_from_config (self ):
105+ self .spin_speed .blockSignals (True )
106+ self .spin_speed .setValue (self .config .visual .scroll_speed )
107+ self .spin_speed .blockSignals (False )
108+ self .update_color_btn_style ()
109+
94110class LaneSettingsGroup (QGroupBox ):
95111 record_toggled = Signal (bool ) # Emits is_recording state
96112
@@ -100,6 +116,7 @@ def __init__(self, settings_manager: SettingsManager, parent=None):
100116 self .config = self .settings .app_config
101117 self .is_recording = False
102118 self .init_ui ()
119+ self .settings .settings_changed .connect (self .update_from_config )
103120
104121 def init_ui (self ):
105122 layout = QVBoxLayout ()
@@ -116,6 +133,9 @@ def init_ui(self):
116133 self .lbl_instruction .setStyleSheet ("color: gray; font-size: 10px;" )
117134 layout .addWidget (self .lbl_instruction )
118135
136+ def update_from_config (self ):
137+ self .update_status ("Current Keys: " + str (len (self .config .lane_map )))
138+
119139 self .setLayout (layout )
120140
121141 def toggle_recording (self ):
@@ -139,6 +159,7 @@ def __init__(self, settings_manager: SettingsManager, parent=None):
139159 self .settings = settings_manager
140160 self .config = self .settings .app_config
141161 self .init_ui ()
162+ self .settings .settings_changed .connect (self .update_from_config )
142163
143164 def init_ui (self ):
144165 layout = QVBoxLayout ()
@@ -212,3 +233,35 @@ def on_change(self):
212233 self .config .key_viewer .show_counts = self .chk_kv_counts .isChecked ()
213234 self .config .key_viewer .opacity = self .spin_kv_opacity .value () / 100.0
214235 self .settings .save ()
236+
237+ def update_from_config (self ):
238+ self .chk_kv_enabled .blockSignals (True )
239+ self .chk_kv_enabled .setChecked (self .config .key_viewer .enabled )
240+ self .chk_kv_enabled .blockSignals (False )
241+
242+ self .spin_kv_height .blockSignals (True )
243+ self .spin_kv_height .setValue (self .config .key_viewer .height )
244+ self .spin_kv_height .blockSignals (False )
245+
246+ self .combo_kv_pos .blockSignals (True )
247+ current = self .config .key_viewer .panel_position
248+ if current not in ["below" , "above" ]:
249+ current = "below"
250+ self .combo_kv_pos .setCurrentText (current )
251+ self .combo_kv_pos .blockSignals (False )
252+
253+ self .spin_kv_off_x .blockSignals (True )
254+ self .spin_kv_off_x .setValue (self .config .key_viewer .panel_offset_x )
255+ self .spin_kv_off_x .blockSignals (False )
256+
257+ self .spin_kv_off_y .blockSignals (True )
258+ self .spin_kv_off_y .setValue (self .config .key_viewer .panel_offset_y )
259+ self .spin_kv_off_y .blockSignals (False )
260+
261+ self .spin_kv_opacity .blockSignals (True )
262+ self .spin_kv_opacity .setValue (int (self .config .key_viewer .opacity * 100 ))
263+ self .spin_kv_opacity .blockSignals (False )
264+
265+ self .chk_kv_counts .blockSignals (True )
266+ self .chk_kv_counts .setChecked (self .config .key_viewer .show_counts )
267+ self .chk_kv_counts .blockSignals (False )
0 commit comments