X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2b850ae1a514c83cbd4c5a36d38d0c9c2a5347b7..89fad939ec0d423961d8e93b2a0927f5b77bf256:/src/unix/mimetype.cpp diff --git a/src/unix/mimetype.cpp b/src/unix/mimetype.cpp index 0bf6dd4ef6..e2e68bd09a 100644 --- a/src/unix/mimetype.cpp +++ b/src/unix/mimetype.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: unix/mimetype.cpp +// Name: src/unix/mimetype.cpp // Purpose: classes and functions to manage MIME types // Author: Vadim Zeitlin // Modified by: @@ -33,46 +33,39 @@ #include "wx/wxprec.h" #ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/defs.h" + #pragma hdrstop #endif #if wxUSE_MIMETYPE && wxUSE_FILE && wxUSE_TEXTFILE +#include "wx/unix/mimetype.h" + #ifndef WX_PRECOMP - #include "wx/string.h" + #include "wx/dynarray.h" + #include "wx/string.h" + #include "wx/intl.h" + #include "wx/log.h" + #include "wx/utils.h" #endif -#include "wx/log.h" #include "wx/file.h" -#include "wx/intl.h" -#include "wx/dynarray.h" #include "wx/confbase.h" #include "wx/ffile.h" #include "wx/textfile.h" #include "wx/dir.h" -#include "wx/utils.h" #include "wx/tokenzr.h" #include "wx/iconloc.h" #include "wx/filename.h" -#include "wx/unix/mimetype.h" - -// Not GUI dependent -#include "wx/gtk/gnome/gvfs.h" +#if wxUSE_LIBGNOMEVFS + // Not GUI dependent + #include "wx/gtk/gnome/gvfs.h" +#endif // other standard headers #include -#ifdef __VMS -/* silence warnings for comparing unsigned int's <0 */ -# pragma message disable unscomzer -#endif - // this class extends wxTextFile // // VZ: ??? @@ -287,7 +280,7 @@ void wxMimeTypesManagerImpl::LoadGnomeDataFromKeyFile(const wxString& filename, { wxTextFile textfile(filename); #if defined(__WXGTK20__) && wxUSE_UNICODE - if ( !textfile.Open(wxConvUTF8) ) + if ( !textfile.Open(wxMBConvUTF8(wxMBConvUTF8::MAP_INVALID_UTF8_TO_OCTAL)) ) #else if ( !textfile.Open() ) #endif @@ -316,7 +309,7 @@ void wxMimeTypesManagerImpl::LoadGnomeDataFromKeyFile(const wxString& filename, wxLogTrace(TRACE_MIME, wxT("--- Reading from Gnome file %s '%s' ---"), filename.c_str(), pc); - + // trim trailing space and tab while ((*pc == wxT(' ')) || (*pc == wxT('\t'))) pc++; @@ -327,18 +320,18 @@ void wxMimeTypesManagerImpl::LoadGnomeDataFromKeyFile(const wxString& filename, { wxString left_of_equal = sTmp.Left( equal_pos ); const wxChar *right_of_equal = pc; - right_of_equal += equal_pos+1; - + right_of_equal += equal_pos+1; + if (left_of_equal == wxT("icon_filename")) { // GNOME 2: curIconFile = right_of_equal; - + wxFileName newFile( curIconFile ); if (newFile.IsRelative() || newFile.FileExists()) { size_t nDirs = search_dirs.GetCount(); - + for (size_t nDir = 0; nDir < nDirs; nDir++) { newFile.SetPath( search_dirs[nDir] ); @@ -1314,7 +1307,7 @@ void wxMimeTypesManagerImpl::InitIfNeeded() { // set the flag first to prevent recursion m_initialized = true; - + wxString wm = wxGetenv( wxT("WINDOWMANAGER") ); if (wm.Find( wxT("kde") ) != wxNOT_FOUND) @@ -1441,7 +1434,7 @@ bool wxMimeTypesManagerImpl::WriteToMimeTypes(int index, bool delete_index) nIndex = file.pIndexOf(wxT("#--Netscape")); if (nIndex != wxNOT_FOUND) { - wxASSERT_MSG(false,wxT("Error in .mime.types \nTrying to mix Netscape and Metamail formats\nFile not modiifed")); + wxFAIL_MSG(wxT("Error in .mime.types\nTrying to mix Netscape and Metamail formats\nFile not modified")); return false; } @@ -1508,7 +1501,7 @@ bool wxMimeTypesManagerImpl::WriteToNSMimeTypes(int index, bool delete_index) // metamail entreies if (file.GetLineCount() > 0) { - wxASSERT_MSG(false, wxT(".mime.types File not in Netscape format\nNo entries written to\n.mime.types or to .mailcap")); + wxFAIL_MSG(wxT(".mime.types File not in Netscape format\nNo entries written to\n.mime.types or to .mailcap")); return false; } @@ -1769,7 +1762,7 @@ bool wxMimeTypesManagerImpl::DoAssociation(const wxString& strType, const wxString& strDesc) { int nIndex = AddToMimeData(strType, strIcon, entry, strExtensions, strDesc, true); - + if ( nIndex == wxNOT_FOUND ) return false; @@ -2650,6 +2643,8 @@ size_t wxMimeTypesManagerImpl::EnumAllFileTypes(wxArrayString& mimetypes) bool wxMimeTypesManagerImpl::Unassociate(wxFileType *ft) { + InitIfNeeded(); + wxArrayString sMimeTypes; ft->GetMimeTypes(sMimeTypes); @@ -2708,4 +2703,3 @@ static bool IsKnownUnimportantField(const wxString& fieldAll) #endif // wxUSE_MIMETYPE && wxUSE_FILE && wxUSE_TEXTFILE -