Updates to dbus remote for plugins.
This commit is contained in:
@@ -25,6 +25,7 @@ import logging
|
||||
from gi.repository import GLib
|
||||
|
||||
from cthulhu import debug
|
||||
from cthulhu import dbus_service
|
||||
from cthulhu.plugin import Plugin, cthulhu_hookimpl
|
||||
|
||||
xlibAvailable = True
|
||||
@@ -136,6 +137,52 @@ class WindowTitleReader(Plugin):
|
||||
self._present_message("Window title reader unavailable")
|
||||
return True
|
||||
|
||||
@dbus_service.parameterized_command
|
||||
def set_enabled(
|
||||
self,
|
||||
enabled: bool,
|
||||
notify_user: bool = True
|
||||
) -> bool:
|
||||
"""Enable or disable window title reader tracking."""
|
||||
|
||||
if enabled:
|
||||
if self._enabled:
|
||||
if notify_user:
|
||||
self._present_message("Window title reader on")
|
||||
return True
|
||||
|
||||
if not xlibAvailable:
|
||||
if notify_user:
|
||||
self._present_message("Window title reader unavailable")
|
||||
debug.printMessage(
|
||||
debug.LEVEL_INFO,
|
||||
f"WindowTitleReader: python-xlib unavailable: {xlibImportError}",
|
||||
True,
|
||||
)
|
||||
return False
|
||||
|
||||
if self._start_tracking():
|
||||
if notify_user:
|
||||
self._present_message("Window title reader on")
|
||||
return True
|
||||
|
||||
if notify_user:
|
||||
self._present_message("Window title reader unavailable")
|
||||
return False
|
||||
|
||||
if self._enabled:
|
||||
self._stop_tracking()
|
||||
|
||||
if notify_user:
|
||||
self._present_message("Window title reader off")
|
||||
return True
|
||||
|
||||
@dbus_service.getter
|
||||
def get_enabled(self) -> bool:
|
||||
"""Returns True if the window title reader is enabled."""
|
||||
|
||||
return self._enabled
|
||||
|
||||
def _present_message(self, messageText):
|
||||
if not self.app:
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user