X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0ce986140a05c46a1d9deb8e8c056128d9ed201d..d1b736b7968ceea4233f3fceecdb01173f68a9a3:/src/common/filesys.cpp diff --git a/src/common/filesys.cpp b/src/common/filesys.cpp index 9e91441d04..8488c57702 100644 --- a/src/common/filesys.cpp +++ b/src/common/filesys.cpp @@ -29,14 +29,29 @@ #include "wx/tokenzr.h" #include "wx/private/fileback.h" +// ---------------------------------------------------------------------------- +// wxFSFile +// ---------------------------------------------------------------------------- -//-------------------------------------------------------------------------------- +const wxString& wxFSFile::GetMimeType() const +{ + if ( m_MimeType.empty() && !m_Location.empty() ) + { + wxConstCast(this, wxFSFile)->m_MimeType = + wxFileSystemHandler::GetMimeTypeFromExt(m_Location); + } + + return m_MimeType; +} + +// ---------------------------------------------------------------------------- // wxFileSystemHandler -//-------------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- IMPLEMENT_ABSTRACT_CLASS(wxFileSystemHandler, wxObject) +/* static */ wxString wxFileSystemHandler::GetMimeTypeFromExt(const wxString& location) { wxString ext, mime; @@ -69,27 +84,27 @@ wxString wxFileSystemHandler::GetMimeTypeFromExt(const wxString& location) wxEmptyString, wxEmptyString, _T("JPEG image (from fallback)"), - _T("jpg"), _T("jpeg"), _T("JPG"), _T("JPEG"), NULL), + _T("jpg"), _T("jpeg"), _T("JPG"), _T("JPEG"), wxNullPtr), wxFileTypeInfo(_T("image/gif"), wxEmptyString, wxEmptyString, _T("GIF image (from fallback)"), - _T("gif"), _T("GIF"), NULL), + _T("gif"), _T("GIF"), wxNullPtr), wxFileTypeInfo(_T("image/png"), wxEmptyString, wxEmptyString, _T("PNG image (from fallback)"), - _T("png"), _T("PNG"), NULL), + _T("png"), _T("PNG"), wxNullPtr), wxFileTypeInfo(_T("image/bmp"), wxEmptyString, wxEmptyString, _T("windows bitmap image (from fallback)"), - _T("bmp"), _T("BMP"), NULL), + _T("bmp"), _T("BMP"), wxNullPtr), wxFileTypeInfo(_T("text/html"), wxEmptyString, wxEmptyString, _T("HTML document (from fallback)"), - _T("htm"), _T("html"), _T("HTM"), _T("HTML"), NULL), + _T("htm"), _T("html"), _T("HTM"), _T("HTML"), wxNullPtr), // must terminate the table with this! wxFileTypeInfo() }; @@ -123,7 +138,8 @@ wxString wxFileSystemHandler::GetMimeTypeFromExt(const wxString& location) -wxString wxFileSystemHandler::GetProtocol(const wxString& location) const +/* static */ +wxString wxFileSystemHandler::GetProtocol(const wxString& location) { wxString s = wxEmptyString; int i, l = location.length(); @@ -138,7 +154,8 @@ wxString wxFileSystemHandler::GetProtocol(const wxString& location) const } -wxString wxFileSystemHandler::GetLeftLocation(const wxString& location) const +/* static */ +wxString wxFileSystemHandler::GetLeftLocation(const wxString& location) { int i; bool fnd = false; @@ -150,7 +167,8 @@ wxString wxFileSystemHandler::GetLeftLocation(const wxString& location) const return wxEmptyString; } -wxString wxFileSystemHandler::GetRightLocation(const wxString& location) const +/* static */ +wxString wxFileSystemHandler::GetRightLocation(const wxString& location) { int i, l = location.length(); int l2 = l + 1; @@ -166,7 +184,8 @@ wxString wxFileSystemHandler::GetRightLocation(const wxString& location) const else return location.Mid(i + 1, l2 - i - 2); } -wxString wxFileSystemHandler::GetAnchor(const wxString& location) const +/* static */ +wxString wxFileSystemHandler::GetAnchor(const wxString& location) { wxChar c; int l = location.length(); @@ -215,10 +234,10 @@ wxFSFile* wxLocalFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs), const wxString& // we need to check whether we can really read from this file, otherwise // wxFSFile is not going to work -#if wxUSE_FILE - wxFileInputStream *is = new wxFileInputStream(fullpath); -#elif wxUSE_FFILE +#if wxUSE_FFILE wxFFileInputStream *is = new wxFFileInputStream(fullpath); +#elif wxUSE_FILE + wxFileInputStream *is = new wxFileInputStream(fullpath); #else #error One of wxUSE_FILE or wxUSE_FFILE must be set to 1 for wxFSHandler to work #endif @@ -230,7 +249,7 @@ wxFSFile* wxLocalFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs), const wxString& return new wxFSFile(is, right, - GetMimeTypeFromExt(location), + wxEmptyString, GetAnchor(location) #if wxUSE_DATETIME ,wxDateTime(wxFileModificationTime(fullpath)) @@ -398,7 +417,7 @@ wxFSFile* wxFileSystem::OpenFile(const wxString& location, int flags) meta = 0; for (i = 0; i < ln; i++) { - switch (loc[i]) + switch ( loc[i].GetValue() ) { case wxT('/') : case wxT(':') : case wxT('#') : meta = loc[i];