#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
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)
{
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",
wxFileTypeInfo()
};
- m_MimeMng -> AddFallbacks(fallbacks);
+ wxTheMimeTypesManager -> AddFallbacks(fallbacks);
}
- ft = m_MimeMng -> GetFileTypeFromExtension(ext);
- if (ft && (ft -> GetMimeType(&mime))) return mime;
- else return wxEmptyString;
+ ft = wxTheMimeTypesManager -> GetFileTypeFromExtension(ext);
+ if (ft && (ft -> GetMimeType(&mime))) {
+ delete ft;
+ return mime;
+ }
+ else {
+ delete ft;
+ return wxEmptyString;
+ }
}
}
-wxString wxFileSystemHandler::FindFirst(const wxString& spec, int flags) { return wxEmptyString; }
-
-wxString wxFileSystemHandler::FindNext() { return wxEmptyString; }
-
+wxString wxFileSystemHandler::FindFirst(const wxString& WXUNUSED(spec),
+ int WXUNUSED(flags))
+{
+ return wxEmptyString;
+}
+wxString wxFileSystemHandler::FindNext()
+{
+ return wxEmptyString;
+}
//--------------------------------------------------------------------------------
// wxLocalFSHandler
return new wxFSFile(new wxFileInputStream(right),
right,
GetMimeTypeFromExt(location),
- GetAnchor(location));
+ GetAnchor(location),
+ wxDateTime(wxFileModificationTime(right)));
else return (wxFSFile*) NULL;
}
while (node)
{
wxFileSystemHandler *h = (wxFileSystemHandler*) node -> GetData();
- if (h->CanOpen(m_Path + location))
+ if (h->CanOpen(m_Path + loc))
{
- s = h->OpenFile(*this, m_Path + location);
- if (s) { m_LastName = m_Path + location; break; }
+ s = h->OpenFile(*this, m_Path + loc);
+ if (s) { m_LastName = m_Path + loc; break; }
}
node = node->GetNext();
}
while (node)
{
wxFileSystemHandler *h = (wxFileSystemHandler*) node->GetData();
- if (h->CanOpen(location))
+ if (h->CanOpen(loc))
{
- s = h->OpenFile(*this, location);
- if (s) { m_LastName = location; break; }
+ s = h->OpenFile(*this, loc);
+ if (s) { m_LastName = loc; break; }
}
node = node->GetNext();
}
}
virtual void OnExit()
{
- wxFileSystemHandler::CleanUpStatics();
wxFileSystem::CleanUpHandlers();
}
};