From: Václav Slavík Date: Wed, 19 Jan 2000 23:06:59 +0000 (+0000) Subject: rewritten to use wxTheMimeTypesManager X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/737255678cb96a8296348fb62603afdd28133ec5 rewritten to use wxTheMimeTypesManager git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5539 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/filesys.h b/include/wx/filesys.h index a9b64d1667..30916ee6ef 100644 --- a/include/wx/filesys.h +++ b/include/wx/filesys.h @@ -19,7 +19,6 @@ #if (wxUSE_HTML || wxUSE_FS_INET || wxUSE_FS_ZIP) && wxUSE_STREAMS #include "wx/stream.h" -#include "wx/mimetype.h" #include "wx/url.h" #include "wx/datetime.h" @@ -128,17 +127,6 @@ class WXDLLEXPORT wxFileSystemHandler : public wxObject wxString GetMimeTypeFromExt(const wxString& location); // Returns MIME type of the file - w/o need to open it // (default behaviour is that it returns type based on extension) - - public: - static void CleanUpStatics(); - // deletes static members (m_MimeMng). It can be called - // as many times as you wish because m_MimeMng is created - // on demand - - private: - static wxMimeTypesManager *m_MimeMng; - // MIME manager - // (it's static and thus shared by all instances and derived classes) }; diff --git a/src/common/filesys.cpp b/src/common/filesys.cpp index 159c29c6db..d5a3bf6454 100644 --- a/src/common/filesys.cpp +++ b/src/common/filesys.cpp @@ -26,6 +26,10 @@ #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; @@ -412,7 +407,6 @@ class wxFileSystemModule : public wxModule } virtual void OnExit() { - wxFileSystemHandler::CleanUpStatics(); wxFileSystem::CleanUpHandlers(); } }; diff --git a/src/generic/filedlgg.cpp b/src/generic/filedlgg.cpp index ea76456652..905f9d9bd9 100644 --- a/src/generic/filedlgg.cpp +++ b/src/generic/filedlgg.cpp @@ -84,7 +84,6 @@ class wxFileIconsTable protected: wxImageList m_ImageList; wxHashTable m_HashTable; - wxMimeTypesManager m_Mime; }; static wxFileIconsTable *g_IconsTable = NULL; @@ -95,8 +94,7 @@ static wxFileIconsTable *g_IconsTable = NULL; wxFileIconsTable::wxFileIconsTable() : m_ImageList(16, 16), - m_HashTable(wxKEY_STRING), - m_Mime() + m_HashTable(wxKEY_STRING) { m_HashTable.DeleteContents(TRUE); m_ImageList.Add(wxBitmap(folder_xpm)); // FI_FOLDER @@ -172,8 +170,8 @@ int wxFileIconsTable::GetIconID(const wxString& extension, const wxString& mime) } wxFileType *ft = (mime.IsEmpty()) ? - m_Mime.GetFileTypeFromExtension(extension) : - m_Mime.GetFileTypeFromMimeType(mime); + wxTheMimeTypesManager -> GetFileTypeFromExtension(extension) : + wxTheMimeTypesManager -> GetFileTypeFromMimeType(mime); wxIcon ic; if (ft == NULL || (!ft -> GetIcon(&ic))) {