Removed most of the pre-XDG MIME code from the Unix implementation, many speed-ups by simplification

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54434 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2008-06-30 11:58:41 +00:00
parent c268eb3272
commit 29886d1bf8
6 changed files with 77 additions and 1974 deletions

View File

@@ -461,32 +461,13 @@ public:
// get file type from MIME type (in format <category>/<format>) // get file type from MIME type (in format <category>/<format>)
wxFileType *GetFileTypeFromMimeType(const wxString& mimeType); wxFileType *GetFileTypeFromMimeType(const wxString& mimeType);
// other operations: return true if there were no errors or false if there
// were some unrecognized entries (the good entries are always read anyhow)
//
// FIXME: These ought to be private ??
// read in additional file (the standard ones are read automatically)
// in mailcap format (see mimetype.cpp for description)
//
// 'fallback' parameter may be set to true to avoid overriding the
// settings from other, previously parsed, files by this one: normally,
// the files read most recently would override the older files, but with
// fallback == true this won't happen
bool ReadMailcap(const wxString& filename, bool fallback = false);
// read in additional file in mime.types format
bool ReadMimeTypes(const wxString& filename);
// enumerate all known MIME types // enumerate all known MIME types
// //
// returns the number of retrieved file types // returns the number of retrieved file types
size_t EnumAllFileTypes(wxArrayString& mimetypes); size_t EnumAllFileTypes(wxArrayString& mimetypes);
// these functions can be used to provide default values for some of the // these functions can be used to provide default values for some of the
// MIME types inside the program itself (you may also use // MIME types inside the program itself
// ReadMailcap(filenameWithDefaultTypes, true /* use as fallback */) to
// achieve the same goal, but this requires having this info in a file).
// //
// The filetypes array should be terminated by either NULL entry or an // The filetypes array should be terminated by either NULL entry or an
// invalid wxFileTypeInfo (i.e. the one created with default ctor) // invalid wxFileTypeInfo (i.e. the one created with default ctor)

View File

@@ -102,12 +102,6 @@ public:
size_t EnumAllFileTypes(wxArrayString& mimetypes); size_t EnumAllFileTypes(wxArrayString& mimetypes);
// this are NOPs under Windows
bool ReadMailcap(const wxString& WXUNUSED(filename), bool WXUNUSED(fallback) = true)
{ return true; }
bool ReadMimeTypes(const wxString& WXUNUSED(filename))
{ return true; }
// create a new filetype association // create a new filetype association
wxFileType *Associate(const wxFileTypeInfo& ftInfo); wxFileType *Associate(const wxFileTypeInfo& ftInfo);

View File

@@ -38,10 +38,6 @@ public :
size_t EnumAllFileTypes(wxArrayString& mimetypes); size_t EnumAllFileTypes(wxArrayString& mimetypes);
// this are NOPs under MacOS
bool ReadMailcap(const wxString& WXUNUSED(filename), bool WXUNUSED(fallback) = TRUE) { return TRUE; }
bool ReadMimeTypes(const wxString& WXUNUSED(filename)) { return TRUE; }
void AddFallback(const wxFileTypeInfo& ft) { m_fallbacks.Add(ft); } void AddFallback(const wxFileTypeInfo& ft) { m_fallbacks.Add(ft); }
// create a new filetype association // create a new filetype association

View File

@@ -41,9 +41,6 @@ public:
size_t EnumAllFileTypes(wxArrayString& mimetypes); size_t EnumAllFileTypes(wxArrayString& mimetypes);
bool ReadMailcap(const wxString& filename, bool fallback = FALSE);
bool ReadMimeTypes(const wxString& filename);
void AddFallback(const wxFileTypeInfo& filetype); void AddFallback(const wxFileTypeInfo& filetype);
// add information about the given mimetype // add information about the given mimetype
@@ -80,57 +77,22 @@ protected:
// are we initialized? // are we initialized?
bool m_initialized; bool m_initialized;
// keep track of the files we had already loaded (this is a bitwise OR of
// wxMailcapStyle values)
int m_mailcapStylesInited;
wxString GetCommand(const wxString &verb, size_t nIndex) const; wxString GetCommand(const wxString &verb, size_t nIndex) const;
// read Gnome files
void LoadGnomeDataFromKeyFile(const wxString& filename,
const wxArrayString& dirs);
void LoadGnomeMimeTypesFromMimeFile(const wxString& filename);
void LoadGnomeMimeFilesFromDir(const wxString& dirbase,
const wxArrayString& dirs);
void GetGnomeMimeInfo(const wxString& sExtraDir);
// read KDE
void LoadKDELinksForMimeSubtype(const wxString& dirbase,
const wxString& subdir,
const wxString& filename,
const wxArrayString& icondirs);
void LoadKDELinksForMimeType(const wxString& dirbase,
const wxString& subdir,
const wxArrayString& icondirs);
void LoadKDELinkFilesFromDir(const wxString& dirbase,
const wxArrayString& icondirs);
void LoadKDEApp(const wxString& filename); void LoadKDEApp(const wxString& filename);
void LoadKDEAppsFilesFromDir(const wxString& dirname); void LoadKDEAppsFilesFromDir(const wxString& dirname);
void GetKDEMimeInfo(const wxString& sExtraDir);
// write KDE // write KDE
bool WriteKDEMimeFile(int index, bool delete_index); bool WriteKDEMimeFile(int index, bool delete_index);
bool CheckKDEDirsExist(const wxString & sOK, const wxString& sTest); bool CheckKDEDirsExist(const wxString & sOK, const wxString& sTest);
//read write Netscape and MetaMail formats
void GetMimeInfo (const wxString& sExtraDir);
bool WriteToMailCap (int index, bool delete_index);
bool WriteToMimeTypes (int index, bool delete_index);
bool WriteToNSMimeTypes (int index, bool delete_index);
// ReadMailcap() helper
bool ProcessOtherMailcapField(struct MailcapLineData& data,
const wxString& curField);
// functions used to do associations // functions used to do associations
virtual int AddToMimeData(const wxString& strType, virtual int AddToMimeData(const wxString& strType,
const wxString& strIcon, const wxString& strIcon,
wxMimeTypeCommands *entry, wxMimeTypeCommands *entry,
const wxArrayString& strExtensions, const wxArrayString& strExtensions,
const wxString& strDesc, const wxString& strDesc,
bool replaceExisting = TRUE); bool replaceExisting = TRUE);
virtual bool DoAssociation(const wxString& strType, virtual bool DoAssociation(const wxString& strType,
const wxString& strIcon, const wxString& strIcon,
wxMimeTypeCommands *entry, wxMimeTypeCommands *entry,

View File

@@ -667,18 +667,6 @@ wxMimeTypesManager::GetFileTypeFromMimeType(const wxString& mimeType)
return ft; return ft;
} }
bool wxMimeTypesManager::ReadMailcap(const wxString& filename, bool fallback)
{
EnsureImpl();
return m_impl->ReadMailcap(filename, fallback);
}
bool wxMimeTypesManager::ReadMimeTypes(const wxString& filename)
{
EnsureImpl();
return m_impl->ReadMimeTypes(filename);
}
void wxMimeTypesManager::AddFallbacks(const wxFileTypeInfo *filetypes) void wxMimeTypesManager::AddFallbacks(const wxFileTypeInfo *filetypes)
{ {
EnsureImpl(); EnsureImpl();

File diff suppressed because it is too large Load Diff