pyqt_reactive.services.signal_service
Consolidated Signal Service.
Merges: - SignalBlockingService: Context managers for widget signal blocking - SignalConnectionService: Signal wiring for ParameterFormManager - CrossWindowRegistration: Context manager for cross-window registration
Key features: 1. Context manager guarantees signal unblocking 2. Supports single or multiple widgets 3. Consolidates all signal wiring logic 4. Cross-window registration with RAII cleanup
Classes
Consolidated service for signal blocking, connection, and cross-window registration. |
- class pyqt_reactive.services.signal_service.SignalService[source]
Consolidated service for signal blocking, connection, and cross-window registration.
Examples
# Block signals (context manager): with SignalService.block_signals(checkbox):
checkbox.setChecked(True)
# Multiple widgets: with SignalService.block_signals(widget1, widget2):
widget1.setValue(1) widget2.setValue(2)
# Connect all signals for a manager: SignalService.connect_all_signals(manager)
# Cross-window registration: with SignalService.cross_window_registration(manager):
dialog.exec()
- static with_signals_blocked(widget: QWidget, operation: Callable) None[source]
Execute operation with widget signals blocked (lambda-based).
- static block_signals_if(condition: bool, *widgets: QWidget)[source]
Conditionally block signals based on a condition.
- static update_widget_value(widget: QWidget, value, setter: Callable | None = None) None[source]
Update widget value with signals blocked.
- static connect_all_signals(manager: Any) None[source]
Wire all signals for the manager.
DISPATCHER ARCHITECTURE: Most signal handling moved to FieldChangeDispatcher. This method now only handles: - Cleanup on destroy
- static register_cross_window_signals(manager: Any) None[source]
Register manager for cross-window updates (only root managers).
SIMPLIFIED: No N×N signal wiring. LiveContextService.increment_token() notifies all listeners via simple callbacks.
- static cross_window_registration(manager: ParameterFormManager)[source]
Context manager for cross-window registration.
Ensures proper registration and cleanup of form managers for cross-window updates.