reworked event system
This commit is contained in:
@@ -21,34 +21,16 @@ class Controller(DummyMixin, Controller_Data):
|
||||
self.window.show()
|
||||
self.print_hello_world() # A mixin method from the DummyMixin file
|
||||
|
||||
self._subscribe_to_events()
|
||||
|
||||
def _subscribe_to_events(self):
|
||||
event_system.subscribe("handle_file_from_ipc", self.handle_file_from_ipc)
|
||||
|
||||
|
||||
def tear_down(self, widget=None, eve=None):
|
||||
time.sleep(event_sleep_time)
|
||||
Gtk.main_quit()
|
||||
|
||||
|
||||
@daemon_threaded
|
||||
def gui_event_observer(self):
|
||||
while True:
|
||||
time.sleep(event_sleep_time)
|
||||
event = event_system.consume_gui_event()
|
||||
if event:
|
||||
try:
|
||||
sender_id, method_target, parameters = event
|
||||
if sender_id:
|
||||
method = getattr(self.__class__, "handle_gui_event_and_return_message")
|
||||
GLib.idle_add(method, *(self, sender_id, method_target, parameters))
|
||||
else:
|
||||
method = getattr(self.__class__, method_target)
|
||||
GLib.idle_add(method, *(self, *parameters,))
|
||||
except Exception as e:
|
||||
print(repr(e))
|
||||
|
||||
def handle_gui_event_and_return_message(self, sender, method_target, parameters):
|
||||
method = getattr(self.__class__, f"{method_target}")
|
||||
data = method(*(self, *parameters))
|
||||
event_system.push_module_event([sender, None, data])
|
||||
|
||||
def handle_file_from_ipc(self, path: str) -> None:
|
||||
print(f"Path From IPC: {path}")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user