def show_submenu(self, trash, trash2, trash3, menuitem): """ Called when user chooses menu item pointing to submenu """ filename = find_menu(menuitem.filename) if filename: self._submenu = self.__class__() sub_pos = list(self.position) for i in (0, 1): sub_pos[i] = (sub_pos[i] - self.SUBMENU_OFFSET if sub_pos[i] < 0 else sub_pos[i] + self.SUBMENU_OFFSET) self._submenu.use_config(self.config) self._submenu.parse_argumets([ "menu.py", "-x", str(sub_pos[0]), "-y", str(sub_pos[1]), "--from-file", filename, "--control-with", self._control_with, "--confirm-with", self._confirm_with, "--cancel-with", self._cancel_with ]) self._submenu.set_is_submenu() self._submenu.use_daemon(self.daemon) self._submenu.use_controller(self.controller) self._submenu.controller = self.controller self._submenu.connect('destroy', self.on_submenu_closed) self._submenu.show() self.set_name("osd-menu-inactive")
def show_submenu(self, trash, trash2, trash3, menuitem): """ Called when user chooses menu item pointing to submenu """ filename = find_menu(menuitem.filename) if filename: self._submenu = self.__class__() sub_pos = list(self.position) for i in (0, 1): sub_pos[i] = (sub_pos[i] - self.SUBMENU_OFFSET if sub_pos[i] < 0 else sub_pos[i] + self.SUBMENU_OFFSET) self._submenu.use_config(self.config) self._submenu.parse_argumets(["menu.py", "-x", str(sub_pos[0]), "-y", str(sub_pos[1]), "--from-file", filename, "--control-with", self._control_with, "--confirm-with", self._confirm_with, "--cancel-with", self._cancel_with ]) self._submenu.set_is_submenu() self._submenu.use_daemon(self.daemon) self._submenu.use_controller(self.controller) self._submenu.controller = self.controller self._submenu.connect('destroy', self.on_submenu_closed) self._submenu.show() self.set_name("osd-menu-inactive")
def _add_refereced_menu(self, model, menu_id, used): """ As _add_refereced_profile, but reads and parses menu file. """ if "." in menu_id and menu_id not in used: # Dot in id means filename used.add(menu_id) filename = find_menu(menu_id) name = ".".join(menu_id.split(".")[0:-1]) if name.startswith(".") and menu_is_default(menu_id): # Default and hidden, don't bother user with it return if filename: model.append((not menu_is_default(menu_id), _("Menu"), name, filename, True, self.TP_MENU)) try: menu = MenuData.from_file(filename, ActionParser()) except Exception, e: # Menu that cannot be parsed shouldn't be exported log.error(e) return for item in menu: if isinstance(item, Submenu): self._add_refereced_menu(model, os.path.split(item.filename)[-1], used) if hasattr(item, "action"): self._parse_action(model, item.action, used) else: model.append((False, _("Menu"), _("%s (not found)") % (name,), "", False, self.TP_MENU))
def _add_refereced_menu(self, model, menu_id, used): """ As _add_refereced_profile, but reads and parses menu file. """ if "." in menu_id and menu_id not in used: # Dot in id means filename used.add(menu_id) filename = find_menu(menu_id) name = ".".join(menu_id.split(".")[0:-1]) if name.startswith(".") and menu_is_default(menu_id): # Default and hidden, don't bother user with it return if filename: model.append((not menu_is_default(menu_id), _("Menu"), name, filename, True, self.TP_MENU)) try: menu = MenuData.from_file(filename, ActionParser()) except Exception, e: # Menu that cannot be parsed shouldn't be exported log.error(e) return for item in menu: if isinstance(item, Submenu): self._add_refereced_menu( model, os.path.split(item.filename)[-1], used) if hasattr(item, "action"): self._parse_action(model, item.action, used) else: model.append((False, _("Menu"), _("%s (not found)") % (name, ), "", False, self.TP_MENU))
def load_cbMIs(self): """ See above. This method just parses Default menu and checks boxes for present menu items. """ try: data = MenuData.from_fileobj(open(find_menu("Default.menu"), "r")) except Exception, e: # Shouldn't really happen log.error(traceback.format_exc()) return
def show_submenu(self, trash, trash2, menuitem): """ Called when user chooses menu item pointing to submenu """ filename = find_menu(menuitem.filename) if filename: self._submenu = QuickMenu() sub_pos = list(self.position) for i in (0, 1): sub_pos[i] = (sub_pos[i] - self.SUBMENU_OFFSET if sub_pos[i] < 0 else sub_pos[i] + self.SUBMENU_OFFSET) self._submenu.use_config(self.config) self._submenu.parse_argumets(["menu.py", "-x", str(sub_pos[0]), "-y", str(sub_pos[1]), "--from-file", filename ]) self._submenu.set_is_submenu() self._submenu.use_daemon(self.daemon) self._submenu.connect('destroy', self.on_submenu_closed) self._submenu.show()
def show_submenu(self, trash, trash2, menuitem): """ Called when user chooses menu item pointing to submenu """ filename = find_menu(menuitem.filename) if filename: self._submenu = QuickMenu() sub_pos = list(self.position) for i in (0, 1): sub_pos[i] = (sub_pos[i] - self.SUBMENU_OFFSET if sub_pos[i] < 0 else sub_pos[i] + self.SUBMENU_OFFSET) self._submenu.use_config(self.config) self._submenu.parse_argumets(["menu.py", "-x", str(sub_pos[0]), "-y", str(sub_pos[1]), "--timeout", str(self._timeout), "--from-file", filename ]) self._submenu.set_is_submenu() self._submenu.use_daemon(self.daemon) self._submenu.connect('destroy', self.on_submenu_closed) self._submenu.show() self.cancel_timer()
def on_cbMI_toggled(self, widget): """ Called when one of 'Default Menu Items' checkboxes is toggled. This actually does kind of magic: - 1st, default menu file is loaded - 2nd, based on widget name, option from DEFAULT_MENU_OPTIONS is selected - 3rd, if this option is not present in loaded menu and checkbox is toggled on, option is added - (same for option that is present while checkbox was toggled off) - 4rd, default menu is saved """ if self._recursing: return try: data = MenuData.from_fileobj(open(find_menu("Default.menu"), "r"), GuiActionParser()) index = int(widget.get_name().split("_")[-1]) instance = GlobalSettings._make_mi_instance(index) except Exception, e: log.error(traceback.format_exc()) self._recursing = True widget.set_active(not widget.get_active()) self._recursing = False return