Skip to content

Commit bd3cb28

Browse files
committed
fix(core): 在GuiWorker中精确断开信号以修复RuntimeWarning
1 parent c91cc40 commit bd3cb28

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

core/gui_worker.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,18 @@ async def setup_context():
7676
finally:
7777
if self.interaction_provider:
7878
try:
79-
# Disconnect all signals
80-
for signal_name in dir(self.interaction_provider):
81-
if isinstance(getattr(self.interaction_provider, signal_name), Signal):
82-
getattr(self.interaction_provider, signal_name).disconnect()
79+
# Disconnect only the signals that were explicitly connected
80+
self.interaction_provider.handle_new_bangumi_key_requested.disconnect(self._on_bangumi_mapping_requested)
81+
self.interaction_provider.ask_for_new_property_type_requested.disconnect(self._on_property_type_requested)
82+
self.interaction_provider.select_bangumi_game_requested.disconnect(self._on_bangumi_selection_requested)
83+
self.interaction_provider.tag_translation_required.disconnect(self._on_tag_translation_requested)
84+
self.interaction_provider.concept_merge_required.disconnect(self._on_concept_merge_requested)
85+
self.interaction_provider.name_split_decision_required.disconnect(self._on_name_split_decision_requested)
86+
self.interaction_provider.confirm_brand_merge_requested.disconnect(self._on_brand_merge_requested)
87+
self.interaction_provider.select_game_requested.disconnect(self._on_select_game_requested)
88+
self.interaction_provider.duplicate_check_requested.disconnect(self._on_duplicate_check_requested)
8389
except (RuntimeError, TypeError):
90+
# This can happen if the connection was already broken, which is fine.
8491
pass
8592

8693
async def cleanup_tasks():

0 commit comments

Comments
 (0)