Пример #1
0
 def __init__(self, recent_infos, **args):
     deskbar.interfaces.Match.__init__(
         self, pixbuf=recent_infos.get_icon(deskbar.ICON_HEIGHT), name=recent_infos.get_display_name(), **args
     )
     self.recent_infos = recent_infos
     self.add_action(OpenRecentAction(self.get_name(), self.recent_infos.get_uri()))
     self.add_all_actions(get_actions_for_uri(self.recent_infos.get_uri(), display_name=self.get_name()))
Пример #2
0
 def __init__(self, name=None, path=None, **args):
     deskbar.interfaces.Match.__init__(self,
                                       icon="gtk-open",
                                       name=name,
                                       category="places",
                                       **args)
     self.path = path
     self.add_action(OpenWithCajaAction(name, path))
     self.add_all_actions(get_actions_for_uri(path))
Пример #3
0
 def __init__(self, name=None, absname=None, **args):
     deskbar.interfaces.Match.__init__(self,
                                       name=name,
                                       icon=absname,
                                       category="places",
                                       **args)
     self.absname = absname
     self.add_action(ShowUrlAction(name, absname))
     self.add_all_actions(get_actions_for_uri(absname))
Пример #4
0
 def __init__(self, recent_infos, **args):
     deskbar.interfaces.Match.__init__(self,
                                       pixbuf=recent_infos.get_icon(
                                           deskbar.ICON_HEIGHT),
                                       name=recent_infos.get_display_name(),
                                       **args)
     self.recent_infos = recent_infos
     self.add_action(
         OpenRecentAction(self.get_name(), self.recent_infos.get_uri()))
     self.add_all_actions(
         get_actions_for_uri(self.recent_infos.get_uri(),
                             display_name=self.get_name()))
Пример #5
0
	def __init__(self, fields, **args):
		deskbar.interfaces.Match.__init__ (self)
		self.result = fields
		self.url = fields["url"]
		url_scheme = self.url[:self.url.index("://")]
		# The mailbox scheme is specific to Pinot
		if url_scheme == "mailbox":
			mailbox_url = self.url
			print "Mailbox hit: ", mailbox_url
			self.url = "file://" + mailbox_url[len("mailbox://"):mailbox_url.index('?')]
			url_scheme = "file"

		self.result["url"] = self.url
		print "Action: ", self.result["caption"], " ", self.result["url"]

		if url_scheme == "file":
			print "File hit"
			self.add_action(OpenFileAction(self.result["caption"], self.result["url"]))
		else:
			print "Other hit"
			self.add_all_actions(get_actions_for_uri(self.result["url"]))
Пример #6
0
	def __init__(self, fields, **args):
		deskbar.interfaces.Match.__init__ (self)
		self.result = fields
		if fields.has_key("url"):
			self.url = fields["url"]
		url_scheme = self.url[:self.url.index("://")]
		# The mailbox scheme is specific to Pinot
		if url_scheme == "mailbox":
			mailbox_url = self.url
			print 'Mailbox hit: ', mailbox_url
			self.url = "file://" + mailbox_url[len("mailbox://"):mailbox_url.index('?')]
			url_scheme = "file"

		self.result["url"] = self.url
		print 'Action: ', self.result["caption"], " ", self.result["url"]

		# Snippet
		self.result["snippet"] = ""
		if fields.has_key("extract"):
			snippet = fields["extract"]
			if snippet != None and snippet != "":
				# Remove trailing whitespaces and escape '%'
				snippet.strip().replace("%", "%%")
				# Escape
				tmp = re.sub(r"<.*?>", "", snippet)
				tmp = re.sub(r"</.*?>", "", tmp)
				print 'Extract ', tmp
				try:
					self.set_snippet("\n%s" % cgi.escape(tmp))
				except AttributeError:
					print 'Snippets not available'

		if url_scheme == "file":
			print 'File hit'
			self.add_action(OpenFileAction(self.result["caption"], self.result["url"]))
		else:
			print 'Other hit'
			self.add_all_actions(get_actions_for_uri(self.result["url"]))
Пример #7
0
    def __init__(self, result=None, **args):
        """
        result: a dict containing:
            "name" : a name sensible to display for this match
            "uri": the uri of the match as provided by the beagled 'Uri: '-field
            "type": A L{BeagleType} sub-class

        -- and optionally extra fields as provided by the corresponding entry in L{BeagleType.get_extra_properties}.
        """
        deskbar.interfaces.Match.__init__ (self, name=result["name"], **args)
        self.result = result
        
        if not isinstance(result["type"], BeagleType):
            raise TypeError("Expected BeagleType but got %r" % result["type"])
        
        if isinstance(result["type"], ContactType):
            self.add_action( OpenContactAction(result["name"], result["uri"]) )
        elif isinstance(result["type"], MailMessageType):
            if result["client"] == "thunderbird":
                action = OpenThunderbirdMailMessageAction(result["name"], result["thunderbird-uri"])
            elif result["client"] == "evolution":
                 action = OpenMailMessageAction(result["name"], result["uri"])
            else:
                LOGGER.warning("Unknown/Unsupported e-mail client %s", result["client"])
                return
            self.add_action( action )
            self.set_snippet( _("From <i>%s</i>") % result["sender"] )
        elif isinstance(result["type"], FeedItemType):
            self.add_action( OpenFeedAction(result["name"], result["identifier"]) )
            self.set_snippet( _("From <i>%s</i>") % result["publisher"] )
        elif isinstance(result["type"], NoteType):
            self.add_action( OpenNoteAction(result["name"], result["uri"]) )
        elif isinstance(result["type"], IMLogType):
            self.add_action( OpenIMLogAction(result["name"], result["uri"], result["client"]) )
        elif isinstance(result["type"], CalendarType):
            self.add_action( OpenCalendarAction(result["name"], result["uri"]) )
        elif isinstance(result["type"], WebHistoryType):
            self.add_action( OpenWebHistoryAction(result["name"], result["uri"], result["escaped_uri"]) )
        elif isinstance(result["type"], FileType):
            # For files inside archives only work with the archive itsself
            result["escaped_uri"] = result["escaped_uri"].split('#')[0]
            # Unescape URI again
            unescaped_uri = gio.File(uri=result["escaped_uri"]).get_parse_name()
            if not result.has_key("inside_archive"):
                result["inside_archive"] = "false"
            
            if result["inside_archive"] == "true":
                file_open_action = OpenBeagleFileAction(result["name"],
                                                        result["uri"],
                                                        result["inside_archive"],
                                                        result["parent_file"])
            else:
                file_open_action = OpenBeagleFileAction(result["name"],
                                                        result["uri"],
                                                        result["inside_archive"],
                                                        None)
            
            self.add_action(file_open_action, True)
            actions = get_actions_for_uri(unescaped_uri,
                                          display_name=basename(unescaped_uri))
            self.add_all_actions(actions)

        # Load the correct icon
        
        #
        # There is bug http://bugzilla.gnome.org/show_bug.cgi?id=319549
        # which has been fixed and comitted, so we re-enable this snippet
        #
        
        if result["type"] == "File":
            try:
                self.set_icon( result["uri"] )
            except Exception:
                pass
            
        if "snippet" in result and result["snippet"]:
            self.set_snippet (result["snippet"])
Пример #8
0
 def __init__(self, name=None, path=None, **args):
     deskbar.interfaces.Match.__init__(self, icon="gtk-open", name=name, category="places", **args)
     self.path = path
     self.add_action( OpenWithCajaAction(name, path) )
     self.add_all_actions( get_actions_for_uri(path) )
Пример #9
0
 def __init__(self, name=None, absname=None, **args):
     deskbar.interfaces.Match.__init__(self, name=name, icon=absname, category="places", **args)
     self.absname = absname
     self.add_action( ShowUrlAction(name, absname) )
     self.add_all_actions( get_actions_for_uri(absname) )
Пример #10
0
    def __init__(self, result=None, **args):
        """
        result: a dict containing:
            "name" : a name sensible to display for this match
            "uri": the uri of the match as provided by the beagled 'Uri: '-field
            "type": A L{BeagleType} sub-class

        -- and optionally extra fields as provided by the corresponding entry in L{BeagleType.get_extra_properties}.
        """
        deskbar.interfaces.Match.__init__(self, name=result["name"], **args)
        self.result = result

        if not isinstance(result["type"], BeagleType):
            raise TypeError("Expected BeagleType but got %r" % result["type"])

        if isinstance(result["type"], ContactType):
            self.add_action(OpenContactAction(result["name"], result["uri"]))
        elif isinstance(result["type"], MailMessageType):
            if result["client"] == "thunderbird":
                action = OpenThunderbirdMailMessageAction(
                    result["name"], result["thunderbird-uri"])
            elif result["client"] == "evolution":
                action = OpenMailMessageAction(result["name"], result["uri"])
            else:
                LOGGER.warning("Unknown/Unsupported e-mail client %s",
                               result["client"])
                return
            self.add_action(action)
            self.set_snippet(_("From <i>%s</i>") % result["sender"])
        elif isinstance(result["type"], FeedItemType):
            self.add_action(
                OpenFeedAction(result["name"], result["identifier"]))
            self.set_snippet(_("From <i>%s</i>") % result["publisher"])
        elif isinstance(result["type"], NoteType):
            self.add_action(OpenNoteAction(result["name"], result["uri"]))
        elif isinstance(result["type"], IMLogType):
            self.add_action(
                OpenIMLogAction(result["name"], result["uri"],
                                result["client"]))
        elif isinstance(result["type"], CalendarType):
            self.add_action(OpenCalendarAction(result["name"], result["uri"]))
        elif isinstance(result["type"], WebHistoryType):
            self.add_action(
                OpenWebHistoryAction(result["name"], result["uri"],
                                     result["escaped_uri"]))
        elif isinstance(result["type"], FileType):
            # For files inside archives only work with the archive itsself
            result["escaped_uri"] = result["escaped_uri"].split('#')[0]
            # Unescape URI again
            unescaped_uri = gio.File(
                uri=result["escaped_uri"]).get_parse_name()
            if not result.has_key("inside_archive"):
                result["inside_archive"] = "false"

            if result["inside_archive"] == "true":
                file_open_action = OpenBeagleFileAction(
                    result["name"], result["uri"], result["inside_archive"],
                    result["parent_file"])
            else:
                file_open_action = OpenBeagleFileAction(
                    result["name"], result["uri"], result["inside_archive"],
                    None)

            self.add_action(file_open_action, True)
            actions = get_actions_for_uri(unescaped_uri,
                                          display_name=basename(unescaped_uri))
            self.add_all_actions(actions)

        # Load the correct icon

        #
        # There is bug http://bugzilla.gnome.org/show_bug.cgi?id=319549
        # which has been fixed and comitted, so we re-enable this snippet
        #

        if result["type"] == "File":
            try:
                self.set_icon(result["uri"])
            except Exception:
                pass

        if "snippet" in result and result["snippet"]:
            self.set_snippet(result["snippet"])