From 2af6304844637c8ac0f58cd5c5e6bc0c9fb1edd3 Mon Sep 17 00:00:00 2001 From: twanvl Date: Sun, 10 Dec 2006 15:42:26 +0000 Subject: [PATCH] fixed loading images from zip packages git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@105 0fc631ac-6414-0410-93d0-97cfa31319b6 --- src/util/io/package.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/util/io/package.cpp b/src/util/io/package.cpp index 2eb1438b..0e70bee0 100644 --- a/src/util/io/package.cpp +++ b/src/util/io/package.cpp @@ -131,6 +131,7 @@ void Package::saveAs(const String& name, bool removeUnused) { // ----------------------------------------------------------------------------- : Package : inside +/* /// Class that is a wxZipInputStream over a wxFileInput stream /** Note that wxFileInputStream is also a base class, because it must be constructed first * This class requires a patch in wxWidgets (2.5.4) @@ -139,7 +140,9 @@ void Package::saveAs(const String& name, bool removeUnused) { * to: * if ((AtHeader())); * It seems that in 2.6.3 this is no longer necessary (TODO: test) - */ + * + * NOTE: Not used with wx 2.6.3, since it doesn't support seeking + * / class ZipFileInputStream : private wxFileInputStream, public wxZipInputStream { public: ZipFileInputStream(const String& filename, wxZipEntry* entry) @@ -149,6 +152,7 @@ class ZipFileInputStream : private wxFileInputStream, public wxZipInputStream { OpenEntry(*entry); } }; +*/ InputStreamP Package::openIn(const String& file) { if (!file.empty() && file.GetChar(0) == _('/')) { @@ -168,8 +172,10 @@ InputStreamP Package::openIn(const String& file) { stream = new_shared1(filename+_("/")+file); } else if (wxFileExists(filename) && it->second.zipEntry) { // a file in a zip archive - stream = static_pointer_cast( - new_shared2(filename, it->second.zipEntry)); + // somebody in wx thought seeking was no longer needed, it now only works with the 'compatability constructor' + stream = new_shared2(filename, it->second.zipEntry->GetName()); + //stream = static_pointer_cast( + // new_shared2(filename, it->second.zipEntry)); } else { // shouldn't happen, packaged changed by someone else since opening it throw FileNotFoundError(file, filename);