diff --git a/src/plugins/qmakeprojectmanager/qmakenodes.cpp b/src/plugins/qmakeprojectmanager/qmakenodes.cpp index 765387e2cf2..cb75ba2ee20 100644 --- a/src/plugins/qmakeprojectmanager/qmakenodes.cpp +++ b/src/plugins/qmakeprojectmanager/qmakenodes.cpp @@ -1793,7 +1793,7 @@ void QmakeProFileNode::asyncUpdate() m_project->incrementPendingEvaluateFutures(); setupReader(); if (!includedInExactParse()) - m_readerExact->setVerbose(false); + m_readerExact->setExact(false); m_parseFutureWatcher.waitForFinished(); EvalInput input = evalInput(); QFuture future = QtConcurrent::run(&QmakeProFileNode::asyncEvaluate, this, input); diff --git a/src/plugins/qtsupport/profilereader.cpp b/src/plugins/qtsupport/profilereader.cpp index a65ee78c3ad..989ff73bcb9 100644 --- a/src/plugins/qtsupport/profilereader.cpp +++ b/src/plugins/qtsupport/profilereader.cpp @@ -46,8 +46,11 @@ static QString format(const QString &fileName, int lineNo, const QString &msg) return msg; } -ProMessageHandler::ProMessageHandler(bool verbose) +ProMessageHandler::ProMessageHandler(bool verbose, bool exact) : m_verbose(verbose) + , m_exact(exact) + //: Prefix used for output from the cumulative evaluation of project files. + , m_prefix(tr("[Inexact] ")) { QObject::connect(this, SIGNAL(writeMessage(QString,Core::MessageManager::PrintToOutputPaneFlags)), Core::MessageManager::instance(), SLOT(write(QString,Core::MessageManager::PrintToOutputPaneFlags)), @@ -56,15 +59,24 @@ ProMessageHandler::ProMessageHandler(bool verbose) void ProMessageHandler::message(int type, const QString &msg, const QString &fileName, int lineNo) { - if ((type & CategoryMask) == ErrorMessage && ((type & SourceMask) == SourceParser || m_verbose)) - emit writeMessage(format(fileName, lineNo, msg), Core::MessageManager::NoModeSwitch); + if ((type & CategoryMask) == ErrorMessage && ((type & SourceMask) == SourceParser || m_verbose)) { + QString fmsg = format(fileName, lineNo, msg); + if ((type & SourceMask) == SourceParser || m_exact) + emit writeMessage(fmsg, Core::MessageManager::NoModeSwitch); + else + emit writeMessage(m_prefix + fmsg, Core::MessageManager::NoModeSwitch); + } } void ProMessageHandler::fileMessage(int type, const QString &msg) { Q_UNUSED(type) - if (m_verbose) - emit writeMessage(msg, Core::MessageManager::NoModeSwitch); + if (m_verbose) { + if (m_exact) + emit writeMessage(msg, Core::MessageManager::NoModeSwitch); + else + emit writeMessage(m_prefix + msg, Core::MessageManager::NoModeSwitch); + } } diff --git a/src/plugins/qtsupport/profilereader.h b/src/plugins/qtsupport/profilereader.h index dfdf9af140f..e734c1c1f49 100644 --- a/src/plugins/qtsupport/profilereader.h +++ b/src/plugins/qtsupport/profilereader.h @@ -49,7 +49,7 @@ class QTSUPPORT_EXPORT ProMessageHandler : public QObject, public QMakeHandler Q_OBJECT public: - ProMessageHandler(bool verbose = true); + ProMessageHandler(bool verbose = true, bool exact = true); virtual ~ProMessageHandler() {} virtual void aboutToEval(ProFile *, ProFile *, EvalFileType) {} @@ -58,12 +58,15 @@ public: virtual void fileMessage(int type, const QString &msg); void setVerbose(bool on) { m_verbose = on; } + void setExact(bool on) { m_exact = on; } signals: void writeMessage(const QString &error, Core::MessageManager::PrintToOutputPaneFlags flag); private: bool m_verbose; + bool m_exact; + QString m_prefix; }; class QTSUPPORT_EXPORT ProFileReader : public ProMessageHandler, public QMakeParser, public ProFileEvaluator