Exemple #1
0
    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()