@@ -117,10 +117,18 @@ def _register_dbus_callbacks(self) -> None:
117117 CallbackEventType .DEVICE_PRESENCE_CHANGED ,
118118 self ._on_device_presence_changed )
119119
120+ self ._usbguard_dbus .register_callback (
121+ CallbackEventType .DEVICE_POLICY_CHANGED ,
122+ self ._on_device_policy_changed )
123+
120124 self ._usbguard_dbus .register_callback (
121125 CallbackEventType .DEVICE_PRESENCE_CHANGED_ERROR ,
122126 self ._on_device_presence_changed_error )
123127
128+ self ._usbguard_dbus .register_callback (
129+ CallbackEventType .DEVICE_POLICY_CHANGED_ERROR ,
130+ self ._on_device_policy_changed_error )
131+
124132 def _on_device_presence_changed (
125133 self ,
126134 device : Device ,
@@ -134,6 +142,19 @@ def _on_device_presence_changed(
134142 else :
135143 self ._show_device_to_be_managed_message (device )
136144
145+ def _on_device_policy_changed (
146+ self ,
147+ device : Device ,
148+ target_old : RuleTarget ,
149+ target_new : RuleTarget ,
150+ rule_id : int ,
151+ ) -> None :
152+ self ._tray_icon .showMessage (
153+ f'USB device policy changed for "{ device .human_readable_name } "' ,
154+ f'Rule #{ rule_id } : { target_old .value } → { target_new .value } \n \n '
155+ f'{ device .rule .human_repr } ' ,
156+ QSystemTrayIcon .Information )
157+
137158 def _show_removed_device_message (self , device : Device ):
138159 self ._tray_icon .showMessage (
139160 f'USB device "{ device .human_readable_name } " was removed' ,
@@ -155,10 +176,21 @@ def _show_device_to_be_managed_message(self, device: Device):
155176 100_000_000 )
156177
157178 def _on_device_presence_changed_error (self , error : Exception ) -> None :
179+ self ._show_error_message (
180+ 'Error while processing a '
181+ 'device presence change event.' ,
182+ error )
183+
184+ def _on_device_policy_changed_error (self , error : Exception ) -> None :
185+ self ._show_error_message (
186+ 'An error occurred while processing a '
187+ 'device policy change event.' ,
188+ error )
189+
190+ def _show_error_message (self , description : str , error : Exception ) -> None :
158191 self ._tray_icon .showMessage (
159192 f'{ APP_NAME } - Application Error' ,
160- f'An error occurred while processing a device presence change '
161- f'event.\n \n Details:\n { error .__class__ .__name__ } - { str (error )} ' ,
193+ f'{ description } \n \n Details:\n { type (error ).__name__ } - { error } ' ,
162194 QSystemTrayIcon .Critical ,
163195 100_000_000 )
164196
0 commit comments