Exemplo n.º 1
0
def mime_type_is_defined(type):
    """
    Return True if a description for a mime type exists.
    """
    try:
        mime_get_description(type)
        return True
    except:
        return False
Exemplo n.º 2
0
    def getMime(self, path):
        """
        @summary: Gets a tuple with mime type and mime description.
        @param path: Path to extract mime.
        @return: Tuple with two string, 
            the first with mime name and the second with mime description.  
        """
        # Check if path exist
        if not os.path.exists(path):
            return ("", "")
 
        mimeType = ""
        mimeDescription = ""
 
        if (GNOME):
            # get mime
            mimeType = gnomevfs.get_mime_type(path)
            mimeDescription = gnomevfs.mime_get_description(mimeType)
        elif (WINDOWS):
            info = self.__getWindowsInfo__(path)
            file, ext = os.path.splitext(path)
            mimeType = ext
            mimeDescription = info[4]
            if (mimeDescription == ""):
                mimeDescription = ("%s %s" % (_("File"), ext))
                
        return (mimeType, mimeDescription)
	def __init__(self, uri):
		_gtk.Builder.__init__(self)
		gfile = _gio.File(uri=uri)
		self.path = gfile.get_path()
		self.add_from_file(_os.path.join(_os.environ["FILEMANAGER_PATH"], "file-properties-dialog.builder"))
		self.dialog = self.get_object("FilePropertiesDialog")
		self.name_entry = self.get_object("name_entry")
		self.type_info = self.get_object("type_info")
		self.size_notebook = self.get_object("size_notebook")
		self.size_info = self.get_object("size_info")
		self.find_size = self.get_object("find_size")
		self.location_info = self.get_object("location_info")
		self.accessed_info = self.get_object("accessed_info")
		self.modified_info = self.get_object("modified_info")
		self.exec_column = self.get_object("Exec")
		self.permissions_model = self.get_object("PermissionsModel")
		self.read_renderer = self.get_object("read-renderer")
		self.write_renderer = self.get_object("write-renderer")
		self.exec_renderer = self.get_object("exec-renderer")
		self.name_entry.connect("activate", self.change_filename)
		self.name_entry.set_text(_os.path.basename(self.path))
		fileinfo = gfile.query_info("standard::content-type")
		mime_type = _gio.content_type_get_mime_type(fileinfo.get_content_type())
		description = _gnomevfs.mime_get_description(mime_type)
		if description:
			self.type_info.set_text("%s (%s)" % (description, mime_type))
		else:
			self.type_info.set_text("%s" % mime_type)
		if _os.path.isdir(self.path):
			self.exec_column.set_title("Acceso")
			self.size_notebook.set_current_page(1)
			self.find_size.connect("clicked", self.find_dir_size, self.path)
		else:
			self.size_notebook.set_current_page(0)
			self.size_info.set_text(_file_size.get_file_size(self.path))
		if gfile.get_uri_scheme() != "file":
			self.location_info.set_text(uri)
		else:
			self.location_info.set_text(self.path)
		stat = _os.stat(self.path)
		self.accessed_info.set_text(_time.ctime(stat.st_atime))
		self.modified_info.set_text(_time.ctime(stat.st_mtime))
		permissions = oct(_stat.S_IMODE(stat.st_mode))[1:]
		owner = bin(int(permissions[0]))[2:]
		while len(owner) != 3:
			owner = "0"+owner
		self.permissions_model.append(["Propietario", bool(int(owner[0])), bool(int(owner[1])), bool(int(owner[2]))])
		group = bin(int(permissions[1]))[2:]
		while len(group) != 3:
			group = "0"+group
		self.permissions_model.append(["Grupo", bool(int(group[0])), bool(int(group[1])), bool(int(group[2]))])
		others = bin(int(permissions[2]))[2:]
		while len(others) != 3:
			others = "0"+others
		self.permissions_model.append(["Otros", bool(int(others[0])), bool(int(others[1])), bool(int(others[2]))])
		self.read_renderer.connect("toggled", self.permissions_toggled)
		self.write_renderer.connect("toggled", self.permissions_toggled)
		self.exec_renderer.connect("toggled", self.permissions_toggled)
Exemplo n.º 4
0
def file_description(file):
  # com o comando file:
  #process = subprocess.Popen(["file", "--brief", file], stdout=subprocess.PIPE)
  #return process.stdout.readline().rstrip()
  mime = gnomevfs.get_file_mime_type(file)
  if mime:
    return gnomevfs.mime_get_description(mime)
  else:
    return None
Exemplo n.º 5
0
Arquivo: tab.py Projeto: jhasse/taluka
	def get_tooltips(self):
		doc = self.get_document()
		
		uri = doc.get_uri_for_display()
		if uri == None:
			return
		
		ruri = utils.replace_home_dir_with_tilde(uri)

		# Not sure: ruri_markup = g_markup_printf_escaped ("<i>%s</i>", ruri);
		ruri_markup = "<i>%s</i>" % gobject.markup_escape_text(uri);

		if(self._state == TAB_STATE_LOADING_ERROR):
			tip = "Error opening file %s" % ruri_marup
		elif(self._state == TAB_STATE_REVERTING_ERROR):
			tip = "Error reverting file %s" % ruri_markup
		elif(self._state == TAB_STATE_SAVING_ERROR):
			tip = "Error saving file %s" % ruri_markup
		else:
			mime_type = doc.get_mime_type()
			mime_description = None
			if mime_type != None:
				mime_description = gnomevfs.mime_get_description(mime_type)
			
			if mime_description == None:
				mime_full_description = mime_type
			else:
				mime_full_description = "%s (%s)" % (mime_description, mime_type)
			
			enc = doc.get_encoding()
			
			if enc == None:
				encoding = "Unicode (UTF-8)"
			else:
				encoding = enc.to_string()

			tip = "<b>%s</b> %s\n\n<b>%s</b> %s\n<b>%s</b> %s" % (
			                 gobject.markup_escape_text("Name:"),
			                 gobject.markup_escape_text(ruri),
			                 gobject.markup_escape_text("MIME Type:"),
			                 gobject.markup_escape_text(mime_full_description),
			                 gobject.markup_escape_text("Encoding"),
			                 gobject.markup_escape_text(encoding));
			                          

			# FIXME: Unsure about this:
			#tip =  g_markup_printf_escaped ("<b>%s</b> %s\n\n"
			#			        "<b>%s</b> %s\n"
			#			        "<b>%s</b> %s",
			#			        _("Name:"), ruri,
			#			        _("MIME Type:"), mime_full_description,
			#			        _("Encoding:"), encoding);

		return tip
Exemplo n.º 6
0
    def get_tooltips(self):
        doc = self.get_document()

        uri = doc.get_uri_for_display()
        if uri == None:
            return

        ruri = utils.replace_home_dir_with_tilde(uri)

        # Not sure: ruri_markup = g_markup_printf_escaped ("<i>%s</i>", ruri);
        ruri_markup = "<i>%s</i>" % gobject.markup_escape_text(uri)

        if (self._state == TAB_STATE_LOADING_ERROR):
            tip = "Error opening file %s" % ruri_marup
        elif (self._state == TAB_STATE_REVERTING_ERROR):
            tip = "Error reverting file %s" % ruri_markup
        elif (self._state == TAB_STATE_SAVING_ERROR):
            tip = "Error saving file %s" % ruri_markup
        else:
            mime_type = doc.get_mime_type()
            mime_description = None
            if mime_type != None:
                mime_description = gnomevfs.mime_get_description(mime_type)

            if mime_description == None:
                mime_full_description = mime_type
            else:
                mime_full_description = "%s (%s)" % (mime_description,
                                                     mime_type)

            enc = doc.get_encoding()

            if enc == None:
                encoding = "Unicode (UTF-8)"
            else:
                encoding = enc.to_string()

            tip = "<b>%s</b> %s\n\n<b>%s</b> %s\n<b>%s</b> %s" % (
                gobject.markup_escape_text("Name:"),
                gobject.markup_escape_text(ruri),
                gobject.markup_escape_text("MIME Type:"),
                gobject.markup_escape_text(mime_full_description),
                gobject.markup_escape_text("Encoding"),
                gobject.markup_escape_text(encoding))

            # FIXME: Unsure about this:
            #tip =  g_markup_printf_escaped ("<b>%s</b> %s\n\n"
            #			        "<b>%s</b> %s\n"
            #			        "<b>%s</b> %s",
            #			        _("Name:"), ruri,
            #			        _("MIME Type:"), mime_full_description,
            #			        _("Encoding:"), encoding);

        return tip
Exemplo n.º 7
0
def get_meta_info(filename):
	try:
		file_mimetype = gnomevfs.get_mime_type(filename)
	except:
		return False
	
	ret = {}
	ret['mime'] = file_mimetype
	ret['default_app'] = gnomevfs.mime_get_default_application(file_mimetype)
	ret['other_apps'] = gnomevfs.mime_get_all_applications(file_mimetype)
	if len(ret['other_apps']) > 0:
		del ret['other_apps'][0]
	ret ['description'] = gnomevfs.mime_get_description(file_mimetype)
	return ret
Exemplo n.º 8
0
 def get_mime_description(self, mtype, subtype):
     """
     Given a IMAP-style TYPE and SUBTYPE, return a description from somewhere.
     We try GNOME first, and fallback to WX.
     If WX fails too, give up and return the traditional type/subtype.
     """
     mtype = mtype.lower()
     subtype = subtype.lower()
     try:
         descr = gnomevfs.mime_get_description(mtype + "/" + subtype)
         if descr is not None:
             return descr
     except:
         pass
     ft = wx.TheMimeTypesManager.GetFileTypeFromMimeType(mtype + "/" + subtype)
     if ft is not None:
         if len(ft.GetDescription()) != 0:
             return ft.GetDescription()
     return mtype + "/" + subtype
Exemplo n.º 9
0
 def _getAvailableMusicTypes(self):
     availaibleMimeTypes = Phonon.BackendCapabilities.availableMimeTypes()
     for mimeType in availaibleMimeTypes:
         # Only keep audio mimetypes
         if not "audio/" in mimeType:
             continue
         # Map mimetype to extension
         extensions = mimetypes.guess_all_extensions(str(mimeType))
         # Filter out mimetypes without extensions
         if not extensions:
             continue
         # gnomevfs allows having nice human readable type descriptions
         # but it is not available on all platforms
         if gnomevfs:
             name = gnomevfs.mime_get_description(str(mimeType))
         else:
             # Let's use the first returned extension as the filter name
             name = extensions[0]
         filter = []
         for extension in extensions:
             # We need to remove the leading dot in order to use the extension as a filter
             filter.append(extension[1:])
         self._filterList.append((name, filter))
Exemplo n.º 10
0
    def __init__(self, fobj):
        super(FileSlideout, self).__init__()
        vbox = CanvasVBox(border_color=0x0000000ff, spacing=4)
        self.get_root().append(vbox)
        self.__header = Header(topborder=False)
        text = ThemedText(theme_hints=['header'], text=fobj.get_name(), font="14px Bold", xalign=hippo.ALIGNMENT_START)
        self.__header.append(text, hippo.PACK_EXPAND)        
        vbox.append(self.__header)
        
        hbox = CanvasHBox(spacing=4, padding=4)
        img = hippo.CanvasImage(scale_width=60, scale_height=60, xalign=hippo.ALIGNMENT_START, yalign=hippo.ALIGNMENT_START)
        img.set_property('image-name', fobj.get_image_name())
        hbox.append(img)
        vbox.append(hbox)
        
        detailvbox = CanvasVBox(spacing=3)
        hbox.append(detailvbox) 
        mime = fobj.get_mimetype()
        if mime:
            mimename = gnomevfs.mime_get_description(mime)
            text = ThemedText(theme_hints=['subforeground'], text=mimename, font='12px', xalign=hippo.ALIGNMENT_START)                  
            detailvbox.append(text)
        size = fobj.get_size()            
        if size is not None:
            sizestr = format_file_size(size)
            text = ThemedText(theme_hints=['subforeground'], text=sizestr, font='12px', xalign=hippo.ALIGNMENT_START)             
            detailvbox.append(text)
        fname = os.path.dirname(fobj.get_full_name())
        if fname.startswith('file://'):
            fname = fname[7:]
        home = os.path.expanduser('~')
        if fname.startswith(home):
            fname = fname[:len(home)]
        fname = urllib.unquote(fname)            
        text = ThemedText(theme_hints=['subforeground'], text=fname, font='12px', xalign=hippo.ALIGNMENT_START)          
        detailvbox.append(text)
        apps = gnomevfs.mime_get_all_applications(mime)
        if apps:
            text = ThemedText(text='Open With: ', font='14px')
            detailvbox.append(text)
            def on_app_clicked(button, app):
                self.emit('close', True)
                _logger.debug("launching app %s", app)
                _launch_vfsmimeapp(app, fobj.get_url())      
            directory = apps_directory.get_app_directory()
            for app in apps:
                _logger.debug("mime type: %s got app %s", mime, app)
                button = hippo.CanvasButton()
                labelhbox = gtk.HBox()
                labelhbox.set_border_width(1)
                labelhbox.set_spacing(2)
                
                try:
                    menu = directory.lookup(app[0])
                except KeyError, e:
                    _logger.debug("failed to find desktop file %s", app[0])
                    menu = None

                img = gtk.Image()
                    
                if menu:
                    pixbuf = get_menu_pixbuf(menu, size=16)
                    img.set_from_pixbuf(pixbuf)
                else:
                    img.set_size_request(16, 16)

                labelhbox.pack_start(img, False, False)
                
                textlabel = gtk.Label(app[1])
                labelhbox.pack_start(textlabel, False)
                labelhbox.show_all()

                button.get_property('widget').add(labelhbox)
                button.get_property('widget').connect('clicked', on_app_clicked, app)
                button.get_property('widget').set_name('bigboard-nopad-button')
                detailvbox.append(button)
Exemplo n.º 11
0
def get_description(type):
    """Return the description of the specified mime type."""
    try:
        return mime_get_description(type)
    except:
        return _("unknown")
Exemplo n.º 12
0
	def __init__(self, uri):
		_gtk.Builder.__init__(self)
		gfile = _gio.File(uri=uri)
		self.path = gfile.get_path()
		self.add_from_file(_os.path.join(_os.environ["FILEMANAGER_PATH"], "file-properties-dialog.builder"))
		self.dialog = self.get_object("FilePropertiesDialog")
		self.dialog.set_title(_("Properties"))
		self.get_object("name_label").set_text(_("Name: "))
		self.name_entry = self.get_object("name_entry")
		self.get_object("type_label").set_text(_("Type: "))
		self.type_info = self.get_object("type_info")
		self.get_object("size_label").set_text(_("Size: "))
		self.size_notebook = self.get_object("size_notebook")
		self.size_info = self.get_object("size_info")
		self.find_size = self.get_object("find_size")
		self.find_size.set_label(_("Calculate"))
		self.get_object("location_label").set_text(_("Location: "))
		self.location_info = self.get_object("location_info")
		self.get_object("accessed_label").set_text(_("Accessed: "))
		self.accessed_info = self.get_object("accessed_info")
		self.get_object("modified_label").set_text(_("Modified: "))
		self.modified_info = self.get_object("modified_info")
		self.get_object("permissions_label").set_text(_("Permissions: "))
		self.get_object("Read").set_title(_("Read"))
		self.get_object("Write").set_title(_("Write"))
		self.exec_column = self.get_object("Exec")
		self.exec_column.set_title(_("Execution"))
		self.permissions_model = self.get_object("PermissionsModel")
		self.read_renderer = self.get_object("read-renderer")
		self.write_renderer = self.get_object("write-renderer")
		self.exec_renderer = self.get_object("exec-renderer")
		self.name_entry.connect("activate", self.change_filename)
		self.name_entry.set_text(_os.path.basename(self.path))
		fileinfo = gfile.query_info("standard::content-type")
		mime_type = _gio.content_type_get_mime_type(fileinfo.get_content_type())
		description = _gnomevfs.mime_get_description(mime_type)
		if description:
			self.type_info.set_text("%s (%s)" % (description, mime_type))
		else:
			self.type_info.set_text("%s" % mime_type)
		if _os.path.isdir(self.path):
			self.exec_column.set_title(_("Access"))
			self.size_notebook.set_current_page(1)
			self.find_size.connect("clicked", self.find_dir_size, self.path)
		else:
			self.size_notebook.set_current_page(0)
			self.size_info.set_text(_file_size.get_file_size(self.path))
		if gfile.get_uri_scheme() != "file":
			self.location_info.set_text(uri)
		else:
			self.location_info.set_text(self.path)
		stat = _os.stat(self.path)
		self.accessed_info.set_text(_time.ctime(stat.st_atime))
		self.modified_info.set_text(_time.ctime(stat.st_mtime))
		permissions = oct(_stat.S_IMODE(stat.st_mode))[1:]
		owner = bin(int(permissions[0]))[2:]
		while len(owner) != 3:
			owner = "0"+owner
		self.permissions_model.append([_("Owner"), bool(int(owner[0])), bool(int(owner[1])), bool(int(owner[2]))])
		group = bin(int(permissions[1]))[2:]
		while len(group) != 3:
			group = "0"+group
		self.permissions_model.append([_("Group"), bool(int(group[0])), bool(int(group[1])), bool(int(group[2]))])
		others = bin(int(permissions[2]))[2:]
		while len(others) != 3:
			others = "0"+others
		self.permissions_model.append([_("Others"), bool(int(others[0])), bool(int(others[1])), bool(int(others[2]))])
		self.read_renderer.connect("toggled", self.permissions_toggled)
		self.write_renderer.connect("toggled", self.permissions_toggled)
		self.exec_renderer.connect("toggled", self.permissions_toggled)