wxArchiveFSHandler switches on simulated seeking for compatibility with
previous versions. Still overridden by wxFS_SEEKABLE. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43505 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -440,9 +440,9 @@ private:
|
|||||||
friend bool wxZipOutputStream::CopyArchiveMetaData(
|
friend bool wxZipOutputStream::CopyArchiveMetaData(
|
||||||
wxZipInputStream& inputStream);
|
wxZipInputStream& inputStream);
|
||||||
|
|
||||||
#if WXWIN_COMPATIBILITY_2_6 && wxUSE_FFILE
|
#if WXWIN_COMPATIBILITY_2_6
|
||||||
bool m_allowSeeking;
|
bool m_allowSeeking;
|
||||||
friend class wxZipFSInputStream;
|
friend class wxArchiveFSHandler;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
DECLARE_NO_COPY_CLASS(wxZipInputStream)
|
DECLARE_NO_COPY_CLASS(wxZipInputStream)
|
||||||
|
@@ -22,7 +22,12 @@
|
|||||||
#include "wx/log.h"
|
#include "wx/log.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "wx/archive.h"
|
#if WXWIN_COMPATIBILITY_2_6
|
||||||
|
#include "wx/zipstrm.h"
|
||||||
|
#else
|
||||||
|
#include "wx/archive.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "wx/private/fileback.h"
|
#include "wx/private/fileback.h"
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
@@ -393,6 +398,12 @@ wxFSFile* wxArchiveFSHandler::OpenFile(
|
|||||||
s->OpenEntry(*entry);
|
s->OpenEntry(*entry);
|
||||||
|
|
||||||
if (s && s->IsOk())
|
if (s && s->IsOk())
|
||||||
|
{
|
||||||
|
#if WXWIN_COMPATIBILITY_2_6
|
||||||
|
if (factory->IsKindOf(CLASSINFO(wxZipClassFactory)))
|
||||||
|
((wxZipInputStream*)s)->m_allowSeeking = true;
|
||||||
|
#endif // WXWIN_COMPATIBILITY_2_6
|
||||||
|
|
||||||
return new wxFSFile(s,
|
return new wxFSFile(s,
|
||||||
key + right,
|
key + right,
|
||||||
GetMimeTypeFromExt(location),
|
GetMimeTypeFromExt(location),
|
||||||
@@ -401,6 +412,7 @@ wxFSFile* wxArchiveFSHandler::OpenFile(
|
|||||||
, entry->GetDateTime()
|
, entry->GetDateTime()
|
||||||
#endif // wxUSE_DATETIME
|
#endif // wxUSE_DATETIME
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
delete s;
|
delete s;
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@@ -1374,7 +1374,7 @@ void wxZipInputStream::Init()
|
|||||||
m_signature = 0;
|
m_signature = 0;
|
||||||
m_TotalEntries = 0;
|
m_TotalEntries = 0;
|
||||||
m_lasterror = m_parent_i_stream->GetLastError();
|
m_lasterror = m_parent_i_stream->GetLastError();
|
||||||
#if WXWIN_COMPATIBILITY_2_6 && wxUSE_FFILE
|
#if WXWIN_COMPATIBILITY_2_6
|
||||||
m_allowSeeking = false;
|
m_allowSeeking = false;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -1883,7 +1883,7 @@ size_t wxZipInputStream::OnSysRead(void *buffer, size_t size)
|
|||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if WXWIN_COMPATIBILITY_2_6 && wxUSE_FFILE
|
#if WXWIN_COMPATIBILITY_2_6
|
||||||
|
|
||||||
// Borrowed from VS's zip stream (c) 1999 Vaclav Slavik
|
// Borrowed from VS's zip stream (c) 1999 Vaclav Slavik
|
||||||
//
|
//
|
||||||
@@ -1948,7 +1948,7 @@ wxFileOffset wxZipInputStream::OnSysSeek(wxFileOffset seek, wxSeekMode mode)
|
|||||||
return pos;
|
return pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // WXWIN_COMPATIBILITY_2_6 && wxUSE_FFILE
|
#endif // WXWIN_COMPATIBILITY_2_6
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
Reference in New Issue
Block a user