def run_application(self, app_name, **params): """ Load and show an application in a shell window. :param ShellWindow shell_window: shell window to run application in :param str appname: the name of the application to run :param params: extra arguments passed to the application :returns: the shell application or ``None`` if the user doesn't have access to open the application :rtype: ShellApp """ shell_app = self._load_shell_app(app_name) if shell_app is None: return None # Set the icon for the application app_icon = get_application_icon(app_name) toplevel = self.get_toplevel() icon = toplevel.render_icon(app_icon, gtk.ICON_SIZE_MENU) toplevel.set_icon(icon) # FIXME: We should remove the toplevel windows of all ShellApp's # glade files, as we don't use them any longer. shell_app_window = shell_app.get_toplevel() self.show_app(shell_app, shell_app_window.get_child(), **params) shell_app_window.hide() return shell_app
def run_application(self, app_name, **params): """ Load and show an application in a shell window. :param ShellWindow shell_window: shell window to run application in :param str appname: the name of the application to run :param params: extra arguments passed to the application :returns: the shell application or ``None`` if the user doesn't have access to open the application :rtype: ShellApp """ # FIXME: Maybe we should really have an app that would be responsible # for doing administration tasks related to stoqlink here? Right now # we are only going to open the stoq.link url if app_name == 'link': toplevel = self.get_toplevel() user_hash = api.sysparam.get_string('USER_HASH') url = 'https://stoq.link?source=stoq&hash={}'.format(user_hash) open_browser(url, toplevel.get_screen()) return if params.pop('hide', False): self.hide_app(empty=True) shell_app = self._load_shell_app(app_name) if shell_app is None: return None # Set the icon for the application app_icon = get_application_icon(app_name) toplevel = self.get_toplevel() icon = toplevel.render_icon(app_icon, Gtk.IconSize.MENU) toplevel.set_icon(icon) # FIXME: We should remove the toplevel windows of all ShellApp's # glade files, as we don't use them any longer. shell_app_window = shell_app.get_toplevel() self.show_app(shell_app, shell_app_window.get_child(), **params) shell_app_window.hide() return shell_app
def run_application(self, app_name, **params): """ Load and show an application in a shell window. :param ShellWindow shell_window: shell window to run application in :param str appname: the name of the application to run :param params: extra arguments passed to the application :returns: the shell application or ``None`` if the user doesn't have access to open the application :rtype: ShellApp """ # FIXME: Maybe we should really have an app that would be responsible # for doing administration tasks related to stoqlink here? Right now # we are only going to open the stoq.link url if app_name == 'link': toplevel = self.get_toplevel() user_hash = api.sysparam.get_string('USER_HASH') url = 'https://stoq.link?source=stoq&hash={}'.format(user_hash) open_browser(url, toplevel.get_screen()) return if params.pop('hide', False): self.hide_app(empty=True) shell_app = self._load_shell_app(app_name) if shell_app is None: return None # Set the icon for the application app_icon = get_application_icon(app_name) toplevel = self.get_toplevel() icon = toplevel.render_icon(app_icon, gtk.ICON_SIZE_MENU) toplevel.set_icon(icon) # FIXME: We should remove the toplevel windows of all ShellApp's # glade files, as we don't use them any longer. shell_app_window = shell_app.get_toplevel() self.show_app(shell_app, shell_app_window.get_child(), **params) shell_app_window.hide() return shell_app