From 5e96945ec8fc3774632c8726a3079ffb5882370b Mon Sep 17 00:00:00 2001 From: Alexander Ivash Date: Fri, 26 Jul 2024 14:05:19 +0200 Subject: [PATCH] analysis GUI blank until forced to generate new xml #869 --- .../dvrescue.tests/xmlparsingtest.cpp | 31 +++++++++++++++++-- .../dvrescue/dvrescue.tests/xmlparsingtest.h | 12 +++++++ Source/GUI/dvrescue/dvrescue/xmlparser.cpp | 2 ++ 3 files changed, 43 insertions(+), 2 deletions(-) diff --git a/Source/GUI/dvrescue/dvrescue.tests/xmlparsingtest.cpp b/Source/GUI/dvrescue/dvrescue.tests/xmlparsingtest.cpp index b20bf39a..c6f1f09b 100644 --- a/Source/GUI/dvrescue/dvrescue.tests/xmlparsingtest.cpp +++ b/Source/GUI/dvrescue/dvrescue.tests/xmlparsingtest.cpp @@ -15,9 +15,9 @@ XmlParsingTest::XmlParsingTest(QObject *parent) : QObject(parent) } -void XmlParsingTest::f1() +int XmlParsingTest::parse(QString fileName) { - QFile file(":/testdata/sample.xml"); + QFile file(fileName); bool opened = file.open(QIODevice::ReadOnly); qDebug() << "file: " << opened << file.size(); @@ -41,6 +41,14 @@ void XmlParsingTest::f1() parser.exec(&file); + return totalFrames; +} + +void XmlParsingTest::f1() +{ + auto fileName = ":/testdata/sample.xml"; + auto totalFrames = parse(fileName); + #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QXmlQuery query; @@ -74,3 +82,22 @@ void XmlParsingTest::f2() { } + +void XmlParsingTest::parseFile() +{ + auto totalFrames = parse(fileName()); + qDebug() << "totalFrames: " << totalFrames; +} + +QString XmlParsingTest::fileName() const +{ + return m_fileName; +} + +void XmlParsingTest::setFileName(const QString &newFileName) +{ + if (m_fileName == newFileName) + return; + m_fileName = newFileName; + emit fileNameChanged(); +} diff --git a/Source/GUI/dvrescue/dvrescue.tests/xmlparsingtest.h b/Source/GUI/dvrescue/dvrescue.tests/xmlparsingtest.h index dd33d354..ab357df6 100644 --- a/Source/GUI/dvrescue/dvrescue.tests/xmlparsingtest.h +++ b/Source/GUI/dvrescue/dvrescue.tests/xmlparsingtest.h @@ -6,14 +6,26 @@ class XmlParsingTest : public QObject { Q_OBJECT + Q_PROPERTY(QString fileName READ fileName WRITE setFileName NOTIFY fileNameChanged FINAL) public: explicit XmlParsingTest(QObject *parent = nullptr); + QString fileName() const; + void setFileName(const QString &newFileName); + Q_SIGNALS: + void fileNameChanged(); private Q_SLOTS: void f1(); void f2(); + void parseFile(); + +private: + int parse(QString fileName); + +private: + QString m_fileName; }; #endif // XMLPARSINGTEST_H diff --git a/Source/GUI/dvrescue/dvrescue/xmlparser.cpp b/Source/GUI/dvrescue/dvrescue/xmlparser.cpp index 69adbb60..d197b706 100644 --- a/Source/GUI/dvrescue/dvrescue/xmlparser.cpp +++ b/Source/GUI/dvrescue/dvrescue/xmlparser.cpp @@ -92,6 +92,8 @@ void XmlParser::parseMedia(QXmlStreamReader &xml) if(firstFrames) firstFrames = false; } + + xml.skipCurrentElement(); } }