def __init__(self, mediator, provider, cfg_provider, default_cfg_provider, eventManager, tooltipManager): self.version = APPVERSION self.mediator = mediator self.eventManager = eventManager self.log = logging.getLogger('radiotray') # initialize data provider self.provider = provider self.cfg_provider = cfg_provider self.tooltip = tooltipManager self.ignore_toggle = False # execute gui chooser try: from gi.repository import AppIndicator3 self.gui_engine = self.cfg_provider.getConfigValue("gui_engine") if (self.gui_engine == None): self.gui_engine = default_cfg_provider.getConfigValue( "gui_engine") if (self.gui_engine == None or self.gui_engine == "chooser"): self.log.debug('show chooser') chooser = GuiChooserConfiguration() self.gui_engine = chooser.run() self.cfg_provider.setConfigValue("gui_engine", self.gui_engine) except Exception as e: self.log.debug( 'No appindicator support found. Choosing notification area...') self.gui_engine = "systray" if self.gui_engine == "appindicator": self.app_indicator_enabled = True else: self.app_indicator_enabled = False self.cfg_provider.setConfigValue( "enable_application_indicator_support", "false") if (self.app_indicator_enabled): self.log.debug('App Indicator selected') self.gui = AppIndicatorGui(self, self.mediator, self.cfg_provider, self.provider) else: self.log.debug('Systray selected') self.gui = SysTrayGui(self, self.mediator, self.cfg_provider, self.provider) self.tooltip.setGui(self.gui) self.tooltip.addSource(self.gui.getCommonTooltipData) self.gui.buildMenu()