def __init__(self, arguments=[], desktop=None, desktop_file=None, verb="", **args): deskbar.interfaces.Match.__init__(self, category="actions", **args) self.desktop_file = desktop_file self._args = arguments self.verb = verb self.set_priority(self.get_priority() + EXACT_WORD_PRIO) self._desktop = desktop if desktop == None: self._desktop = parse_desktop_filename(desktop_file) if self._desktop == None: raise Exception("Desktop file not found, ignoring") # Strip %U or whatever arguments in Exec field exe = re.sub("%\w+", "", self._desktop.get_string("Exec")) # Strip any absolute path like /usr/bin/something to display only something i = exe.split(" ")[0].rfind("/") if i != -1: exe = exe[i+1:] self._display_prog = exe.strip() if len(self._args) > 0: program = self._desktop.get_string("Exec") self.add_action( GenericAction(self.get_name(), program, self._args, verb) ) else: self.add_action( OpenDesktopFileAction(self.get_name(), self._desktop, self.desktop_file, self._display_prog) )
def __init__(self, arguments=[], desktop=None, desktop_file=None, verb="", **args): deskbar.interfaces.Match.__init__(self, category="actions", **args) self.desktop_file = desktop_file self._args = arguments self.verb = verb self.set_priority(self.get_priority() + EXACT_WORD_PRIO) self._desktop = desktop if desktop == None: self._desktop = parse_desktop_filename(desktop_file) if self._desktop == None: raise Exception("Desktop file not found, ignoring") # Strip %U or whatever arguments in Exec field exe = re.sub("%\w+", "", self._desktop.get_string("Exec")) # Strip any absolute path like /usr/bin/something to display only something i = exe.split(" ")[0].rfind("/") if i != -1: exe = exe[i + 1:] self._display_prog = exe.strip() if len(self._args) > 0: program = self._desktop.get_string("Exec") self.add_action( GenericAction(self.get_name(), program, self._args, verb)) else: self.add_action( OpenDesktopFileAction(self.get_name(), self._desktop, self.desktop_file, self._display_prog))
def initialize(self): result = parse_desktop_filename(self._desktop_file, False) if result != None: self._match = self.create_match(result, self._desktop_file)