From 2eaaf3aca438066677f732054188fee0be48433e Mon Sep 17 00:00:00 2001 From: albert-github Date: Fri, 26 Jul 2019 19:06:10 +0200 Subject: issue @7140 DoxygenLayout does not support UTF8 BOM format Read the DoxygenLayout file in a similar way as the header / footer etc. for HTML and feed the (converted) result into the XML reader. --- src/doxygen.cpp | 4 +--- src/layout.cpp | 5 +++-- src/layout.h | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/doxygen.cpp b/src/doxygen.cpp index 85ed747..3cb12a0 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -11270,9 +11270,7 @@ void parseInput() if (layoutFile.open(IO_ReadOnly)) { msg("Parsing layout file %s...\n",layoutFileName.data()); - QTextStream t(&layoutFile); - t.setEncoding(QTextStream::Latin1); - LayoutDocManager::instance().parse(t,layoutFileName); + LayoutDocManager::instance().parse(layoutFileName); } else if (!defaultLayoutUsed) { diff --git a/src/layout.cpp b/src/layout.cpp index a5df6f4..4ffdfb8 100644 --- a/src/layout.cpp +++ b/src/layout.cpp @@ -1538,10 +1538,11 @@ void LayoutDocManager::clear(LayoutDocManager::LayoutPart p) d->docEntries[(int)p].clear(); } -void LayoutDocManager::parse(QTextStream &t,const char *fileName) +void LayoutDocManager::parse(const char *fileName) { LayoutErrorHandler errorHandler(fileName); - QXmlInputSource source( t ); + QXmlInputSource source; + source.setData(fileToString(fileName)); QXmlSimpleReader reader; reader.setContentHandler( &LayoutParser::instance() ); reader.setErrorHandler( &errorHandler ); diff --git a/src/layout.h b/src/layout.h index b25aa4e..b1facf5 100644 --- a/src/layout.h +++ b/src/layout.h @@ -201,7 +201,7 @@ class LayoutDocManager LayoutNavEntry *rootNavEntry() const; /** Parses a user provided layout */ - void parse(QTextStream &t,const char *fileName); + void parse(const char *fileName); void init(); private: void addEntry(LayoutPart p,LayoutDocEntry*e); -- cgit v0.12