X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7dee4b2ba05f613f75afa3994320a1b547bb04c3..eca370a9cf88259480e9f34afc17347ce603ff37:/src/common/filesys.cpp?ds=sidebyside diff --git a/src/common/filesys.cpp b/src/common/filesys.cpp index 182465c6a1..d5a3bf6454 100644 --- a/src/common/filesys.cpp +++ b/src/common/filesys.cpp @@ -21,11 +21,15 @@ #define wxUSE_FS_INET 0 #endif -#if (wxUSE_FS_INET || wxUSE_FS_ZIP) && wxUSE_STREAMS +#if (wxUSE_HTML || wxUSE_FS_INET || wxUSE_FS_ZIP) && wxUSE_STREAMS #include "wx/wfstream.h" #include "wx/module.h" #include "wx/filesys.h" +#include "wx/mimetype.h" + + + //-------------------------------------------------------------------------------- // wxFileSystemHandler @@ -33,14 +37,6 @@ IMPLEMENT_ABSTRACT_CLASS(wxFileSystemHandler, wxObject) -wxMimeTypesManager *wxFileSystemHandler::m_MimeMng = NULL; - -void wxFileSystemHandler::CleanUpStatics() -{ - if (m_MimeMng) delete m_MimeMng; - m_MimeMng = NULL; -} - wxString wxFileSystemHandler::GetMimeTypeFromExt(const wxString& location) { @@ -58,9 +54,8 @@ wxString wxFileSystemHandler::GetMimeTypeFromExt(const wxString& location) if ((c == wxT('/')) || (c == wxT('\\')) || (c == wxT(':'))) {return wxEmptyString;} } - if (m_MimeMng == NULL) { - m_MimeMng = new wxMimeTypesManager; - + static bool s_MinimalMimeEnsured = FALSE; + if (!s_MinimalMimeEnsured) { static const wxFileTypeInfo fallbacks[] = { wxFileTypeInfo("image/jpeg", @@ -93,10 +88,10 @@ wxString wxFileSystemHandler::GetMimeTypeFromExt(const wxString& location) wxFileTypeInfo() }; - m_MimeMng -> AddFallbacks(fallbacks); + wxTheMimeTypesManager -> AddFallbacks(fallbacks); } - ft = m_MimeMng -> GetFileTypeFromExtension(ext); + ft = wxTheMimeTypesManager -> GetFileTypeFromExtension(ext); if (ft && (ft -> GetMimeType(&mime))) { delete ft; return mime; @@ -198,7 +193,8 @@ wxFSFile* wxLocalFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs), const wxString& return new wxFSFile(new wxFileInputStream(right), right, GetMimeTypeFromExt(location), - GetAnchor(location)); + GetAnchor(location), + wxDateTime(wxFileModificationTime(right))); else return (wxFSFile*) NULL; } @@ -411,7 +407,6 @@ class wxFileSystemModule : public wxModule } virtual void OnExit() { - wxFileSystemHandler::CleanUpStatics(); wxFileSystem::CleanUpHandlers(); } };