From 0ceae932291dd93bb8e87ff9a8911af5d82839cb Mon Sep 17 00:00:00 2001 From: =?utf8?q?V=C3=A1clav=20Slav=C3=ADk?= Date: Sun, 6 Aug 2000 16:51:54 +0000 Subject: [PATCH] removed debug message ; improved resource loading logic git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@7966 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- contrib/include/wx/xml/xmlres.h | 21 +++--------------- contrib/src/xml/xmlpars.cpp | 3 --- contrib/src/xml/xmlres.cpp | 38 +++++++++++++++++++++++---------- 3 files changed, 30 insertions(+), 32 deletions(-) diff --git a/contrib/include/wx/xml/xmlres.h b/contrib/include/wx/xml/xmlres.h index 0087a4cf10..be4f1a69db 100644 --- a/contrib/include/wx/xml/xmlres.h +++ b/contrib/include/wx/xml/xmlres.h @@ -32,13 +32,6 @@ class WXDLLEXPORT wxXmlResourceHandler; #include "wx/xml/xml.h" -enum -{ - wxXML_BINARY, - wxXML_ARCHIVE -}; - - class WXDLLEXPORT wxXmlResourceDataRecord { @@ -61,20 +54,12 @@ class WXDLLEXPORT wxXmlResource : public wxObject { public: wxXmlResource(); - wxXmlResource(const wxString& filemask, int type); + wxXmlResource(const wxString& filemask); ~wxXmlResource(); // Loads resources from XML files that match given filemask. - // This method understands VFS (see filesys.h). Type is one of - // wxXML_TEXT, wxXML_BINARY, wxXML_ARCHIVE and specifies type of - // data to be expected: - // wxXML_BINARY - binary version of .xml file, as produced - // by wxXmlDocument::SaveBinary - // wxXML_ARCHIVE - ZIP archive that contains arbitrary number - // of files with .xmb extension - // (this kind of ZIP archive is produced by - // XML resources compiler that ships with wxWin) - bool Load(const wxString& filemask, int type = wxXML_ARCHIVE); + // This method understands VFS (see filesys.h). + bool Load(const wxString& filemask); // Initialize handlers for all supported controls/windows. This will // make the executable quite big because it forces linking against diff --git a/contrib/src/xml/xmlpars.cpp b/contrib/src/xml/xmlpars.cpp index d35cd3722b..18ae1f0aa1 100644 --- a/contrib/src/xml/xmlpars.cpp +++ b/contrib/src/xml/xmlpars.cpp @@ -77,7 +77,6 @@ static void ReleaseLibxml() { if (gs_libxmlLoaded) { - wxLogDebug("Releasing libxml.so.2"); wxDllLoader::UnloadLibrary(gs_libxmlDLL.Handle); } gs_libxmlLoaded = FALSE; @@ -91,7 +90,6 @@ static bool LoadLibxml() if (gs_libxmlLoadFailed) return FALSE; gs_libxmlLoadFailed = TRUE; - wxLogDebug("Loading libxml.so.2..."); { wxLogNull lg; #ifdef __UNIX__ @@ -145,7 +143,6 @@ static bool LoadLibxml() gs_libxmlLoadFailed = FALSE; - wxLogDebug("...succeed"); return TRUE; } diff --git a/contrib/src/xml/xmlres.cpp b/contrib/src/xml/xmlres.cpp index 0318204747..b5b0415079 100644 --- a/contrib/src/xml/xmlres.cpp +++ b/contrib/src/xml/xmlres.cpp @@ -40,10 +40,10 @@ wxXmlResource::wxXmlResource() m_Handlers.DeleteContents(TRUE); } -wxXmlResource::wxXmlResource(const wxString& filemask, int type) +wxXmlResource::wxXmlResource(const wxString& filemask) { m_Handlers.DeleteContents(TRUE); - Load(filemask, type); + Load(filemask); } wxXmlResource::~wxXmlResource() @@ -52,10 +52,11 @@ wxXmlResource::~wxXmlResource() } -bool wxXmlResource::Load(const wxString& filemask, int type) +bool wxXmlResource::Load(const wxString& filemask) { wxString fnd; wxXmlResourceDataRecord *drec; + bool iswild = wxIsWild(filemask); #if wxUSE_FILESYSTEM wxFileSystem fsys; @@ -64,13 +65,16 @@ bool wxXmlResource::Load(const wxString& filemask, int type) #else # define wxXmlFindFirst wxFindFirstFile(filemask, wxFILE) # define wxXmlFindNext wxFindNextFile() - wxASSERT_MSG(type != wxXML_ARCHIVE, wxT("ZIP archive XML resources supported only with wxUSE_FILESYSTEM set to 1!")); #endif - fnd = wxXmlFindFirst; + if (iswild) + fnd = wxXmlFindFirst; + else + fnd = filemask; while (!!fnd) { #if wxUSE_FILESYSTEM - if (type == wxXML_ARCHIVE) + if (filemask.Lower().Matches("*.zip") || + filemask.Lower().Matches("*.rsc")) { wxFileSystem fs2; wxString fnd2; @@ -91,7 +95,11 @@ bool wxXmlResource::Load(const wxString& filemask, int type) drec->File = fnd; m_Data.Add(drec); } - fnd = wxXmlFindNext; + + if (iswild) + fnd = wxXmlFindNext; + else + fnd = wxEmptyString; } # undef wxXmlFindFirst # undef wxXmlFindNext @@ -249,12 +257,19 @@ void wxXmlResource::UpdateResources() m_Data[i].Doc = new wxXmlDocument; } if (!stream || !m_Data[i].Doc->Load(*stream)) + { wxLogError(_("Cannot load resources from file '%s'."), m_Data[i].File.c_str()); - - if (m_Data[i].Doc->GetRoot()->GetName() != _T("resource")) + delete m_Data[i].Doc; + m_Data[i].Doc = NULL; + } + else if (m_Data[i].Doc->GetRoot()->GetName() != _T("resource")) + { wxLogError(_("Invalid XML resource '%s': doesn't have root node 'resource'."), m_Data[i].File.c_str()); - - ProcessPlatformProperty(m_Data[i].Doc->GetRoot()); + delete m_Data[i].Doc; + m_Data[i].Doc = NULL; + } + else + ProcessPlatformProperty(m_Data[i].Doc->GetRoot()); # if wxUSE_FILESYSTEM delete file; @@ -274,6 +289,7 @@ wxXmlNode *wxXmlResource::FindResource(const wxString& name, const wxString& typ wxString dummy; for (size_t f = 0; f < m_Data.GetCount(); f++) { + if (m_Data[f].Doc == NULL || m_Data[f].Doc->GetRoot() == NULL) continue; for (wxXmlNode *node = m_Data[f].Doc->GetRoot()->GetChildren(); node; node = node->GetNext()) if ( node->GetType() == wxXML_ELEMENT_NODE && -- 2.45.2