mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-09-28 04:54:13 +02:00
Fix the build on Qt older than 6.5 (#1080)
QDomDocument::ParseOption::PreserveSpacingOnlyNodes, used since 84add7b3e
to keep a title-block variable set to a single space through a reload,
only exists from Qt 6.5. On older Qt the project file is parsed as it was
before that commit: the build works again, and such a value reloads as
empty there.
Checked on Ubuntu 22.04's Qt 6.2.4: qetproject.cpp fails on master with
"'QDomDocument::ParseOption' has not been declared" and compiles with
this change. On Qt 6.5 and later the code is unchanged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G2d2Zi8BfrYRPX88zhaoFG
This commit is contained in:
@@ -386,7 +386,13 @@ QETProject::ProjectState QETProject::openFile(QFile *file)
|
||||
// QET::findInDomElement()), so the extra whitespace-only text nodes
|
||||
// this keeps around are inert everywhere but the two elements that
|
||||
// call .text() on themselves -- which is exactly where the bug was.
|
||||
// The option exists since Qt 6.5; older Qt always drops such nodes,
|
||||
// so there an all-whitespace value still reloads as "".
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0)
|
||||
if (!xml_project.setContent(content, QDomDocument::ParseOption::PreserveSpacingOnlyNodes))
|
||||
#else
|
||||
if (!xml_project.setContent(content))
|
||||
#endif
|
||||
{
|
||||
if(opened_here) {
|
||||
file->close();
|
||||
|
||||
Reference in New Issue
Block a user