def __init__(self): check_single_instance("blueman-tray") applet = AppletService() main_loop = GLib.MainLoop() Gio.bus_watch_name(Gio.BusType.SESSION, 'org.blueman.Applet', Gio.BusNameWatcherFlags.NONE, None, lambda _connection, _name: main_loop.quit()) indicator_name = applet.GetStatusIconImplementation() logging.info('Using indicator "%s"' % indicator_name) indicator_class = getattr( import_module('blueman.main.indicators.' + indicator_name), indicator_name) self.indicator = indicator_class(applet.GetIconName(), self._activate_menu_item, self._activate_status_icon) applet.connect('g-signal', self.on_signal) self.indicator.set_text(applet.GetText()) self.indicator.set_visibility(applet.GetVisibility()) self.indicator.set_menu(applet.GetMenu()) main_loop.run()
def _on_name_appeared(self, _connection: Gio.DBusConnection, name: str, _owner: str) -> None: logging.debug("Applet started on name %s, showing indicator" % name) applet = AppletService() indicator_name = applet.GetStatusIconImplementation() logging.info(f'Using indicator "{indicator_name}"') indicator_class = getattr(import_module('blueman.main.indicators.' + indicator_name), indicator_name) self.indicator = indicator_class(applet.GetIconName(), self._activate_menu_item, self._activate_status_icon) applet.connect('g-signal', self.on_signal) self.indicator.set_text(applet.GetText()) self.indicator.set_visibility(applet.GetVisibility()) self.indicator.set_menu(applet.GetMenu()) self._active = True
def _on_name_appeared(self, _connection: Gio.DBusConnection, name: str, _owner: str) -> None: logging.debug("Applet started on name %s, showing indicator" % name) applet = AppletService() for indicator_name in applet.GetStatusIconImplementations(): indicator_class = getattr(import_module('blueman.main.indicators.' + indicator_name), indicator_name) try: self.indicator = indicator_class( applet.GetIconName(), self._activate_menu_item, self._activate_status_icon) break except IndicatorNotAvailable: logging.info(f'Indicator "{indicator_name}" is not available') logging.info(f'Using indicator "{self.indicator.__class__.__name__}"') applet.connect('g-signal', self.on_signal) self.indicator.set_tooltip_title(applet.GetToolTipTitle()) self.indicator.set_tooltip_text(applet.GetToolTipText()) self.indicator.set_visibility(applet.GetVisibility()) self.indicator.set_menu(applet.GetMenu()) self._active = True