Allow an app to cut down start time by not doing unnecessary mime types initialisation

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@54356 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2008-06-25 08:36:30 +00:00
parent d56ca4d3f7
commit b8dd5d063d
2 changed files with 75 additions and 56 deletions

View File

@@ -98,9 +98,14 @@ All (Unix):
- MIME types reading fixed when running under GNOME, reading .desktop
files and also the default application list.
- Added filesys.no-mimetypesmanager system option so that applications that
must load an XRC file at program startup don't have to incur the
mime types manager initialization penalty.
wxMSW:
- Compile fix for WinCE in window.cpp (no VkKeyScan in Windows CE).
wxGTK:
wxMac:

View File

@@ -23,6 +23,7 @@
#include "wx/module.h"
#endif
#include "wx/sysopt.h"
#include "wx/wfstream.h"
#include "wx/mimetype.h"
#include "wx/filename.h"
@@ -62,6 +63,16 @@ wxString wxFileSystemHandler::GetMimeTypeFromExt(const wxString& location)
#if wxUSE_MIMETYPE
static bool s_MinimalMimeEnsured = false;
// Don't use mime types manager if the application doesn't need it and it would be
// cause an unacceptable delay, especially on startup.
bool useMimeTypesManager = true;
#if wxUSE_SYSTEM_OPTIONS
useMimeTypesManager = (wxSystemOptions::GetOptionInt(wxT("filesys.no-mimetypesmanager")) == 0);
#endif
if (useMimeTypesManager)
{
if (!s_MinimalMimeEnsured)
{
static const wxFileTypeInfo fallbacks[] =
@@ -107,7 +118,10 @@ wxString wxFileSystemHandler::GetMimeTypeFromExt(const wxString& location)
delete ft;
return mime;
#else
}
else
#endif
{
if ( ext.IsSameAs(wxT("htm"), false) || ext.IsSameAs(_T("html"), false) )
return wxT("text/html");
if ( ext.IsSameAs(wxT("jpg"), false) || ext.IsSameAs(_T("jpeg"), false) )
@@ -119,7 +133,7 @@ wxString wxFileSystemHandler::GetMimeTypeFromExt(const wxString& location)
if ( ext.IsSameAs(wxT("bmp"), false) )
return wxT("image/bmp");
return wxEmptyString;
#endif
}
}