From 42adcb9116ed72a28cdc7d726f6ed32e182881c3 Mon Sep 17 00:00:00 2001 From: Jarek Kobus <jkobus@trolltech.com> Date: Tue, 7 Jul 2009 13:13:12 +0200 Subject: [PATCH] Add a public method which reads the content of pro file from string Rev-by: Oswald Buddenhagen <oswald.buddenhagen@trolltech.com> --- src/shared/proparser/profileevaluator.cpp | 25 ++++++++++++++++++++--- src/shared/proparser/profileevaluator.h | 1 + 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/shared/proparser/profileevaluator.cpp b/src/shared/proparser/profileevaluator.cpp index 5183a9edb43..295e094a9ce 100644 --- a/src/shared/proparser/profileevaluator.cpp +++ b/src/shared/proparser/profileevaluator.cpp @@ -134,6 +134,8 @@ public: /////////////// Reading pro file bool read(ProFile *pro); + bool read(ProFile *pro, const QString &content); + bool read(ProFile *pro, QTextStream *ts); ProBlock *currentBlock(); void updateItem(); @@ -284,6 +286,19 @@ bool ProFileEvaluator::Private::read(ProFile *pro) return false; } + QTextStream ts(&file); + return read(pro, &ts); +} + +bool ProFileEvaluator::Private::read(ProFile *pro, const QString &content) +{ + QString str(content); + QTextStream ts(&str, QIODevice::ReadOnly | QIODevice::Text); + return read(pro, &ts); +} + +bool ProFileEvaluator::Private::read(ProFile *pro, QTextStream *ts) +{ // Parser state m_block = 0; m_commentItem = 0; @@ -295,9 +310,8 @@ bool ProFileEvaluator::Private::read(ProFile *pro) m_blockstack.clear(); m_blockstack.push(pro); - QTextStream ts(&file); - while (!ts.atEnd()) { - QString line = ts.readLine(); + while (!ts->atEnd()) { + QString line = ts->readLine(); if (!parseLine(line)) { q->errorMessage(format(".pro parse failure.")); return false; @@ -2629,6 +2643,11 @@ bool ProFileEvaluator::queryProFile(ProFile *pro) return d->read(pro); } +bool ProFileEvaluator::queryProFile(ProFile *pro, const QString &content) +{ + return d->read(pro, content); +} + bool ProFileEvaluator::accept(ProFile *pro) { return pro->Accept(d); diff --git a/src/shared/proparser/profileevaluator.h b/src/shared/proparser/profileevaluator.h index 5fe787953c9..9bd88c0c03d 100644 --- a/src/shared/proparser/profileevaluator.h +++ b/src/shared/proparser/profileevaluator.h @@ -69,6 +69,7 @@ public: void setParsePreAndPostFiles(bool on); // Default is true bool queryProFile(ProFile *pro); + bool queryProFile(ProFile *pro, const QString &content); // the same as above but the content is read from "content" string, not from filesystem bool accept(ProFile *pro); void addVariables(const QHash<QString, QStringList> &variables); -- GitLab