From 13bb14dd3cc7f468ce8f63f576fb886d94c04c36 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 15 Jun 2010 16:34:03 +0200 Subject: [PATCH] error message delivery threading fixes the message manager is not thread-safe, so don't use it outside the main thread. --- src/plugins/qt4projectmanager/qt4nodes.cpp | 13 +++++-------- src/plugins/qt4projectmanager/qt4project.cpp | 3 ++- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp index 7ba83ad2dad..a70d713a5e4 100644 --- a/src/plugins/qt4projectmanager/qt4nodes.cpp +++ b/src/plugins/qt4projectmanager/qt4nodes.cpp @@ -962,15 +962,10 @@ void Qt4ProFileNode::setupReader() bool Qt4ProFileNode::evaluate() { bool parserError = false; - if (!m_readerExact->readProFile(m_projectFilePath)) { - m_project->proFileParseError(tr("Error while parsing file %1. Giving up.").arg(m_projectFilePath)); + if (!m_readerExact->readProFile(m_projectFilePath)) parserError = true; - } - - if (!m_readerCumulative->readProFile(m_projectFilePath)) { - m_project->proFileParseError(tr("Error while parsing file %1. Giving up.").arg(m_projectFilePath)); + if (!m_readerCumulative->readProFile(m_projectFilePath)) parserError = true; - } return parserError; } @@ -1012,8 +1007,10 @@ void Qt4ProFileNode::applyEvaluate(bool parseResult, bool async) if (m_readerCumulative) m_project->destroyProFileReader(m_readerCumulative); m_readerExact = m_readerCumulative = 0; - if (!parseResult) // Invalidate + if (!parseResult) { + m_project->proFileParseError(tr("Error while parsing file %1. Giving up.").arg(m_projectFilePath)); invalidate(); + } return; } diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp index ab57f72f593..c747106c225 100644 --- a/src/plugins/qt4projectmanager/qt4project.cpp +++ b/src/plugins/qt4projectmanager/qt4project.cpp @@ -932,7 +932,8 @@ ProFileReader *Qt4Project::createProFileReader(Qt4ProFileNode *qt4ProFileNode) ProFileReader *reader = new ProFileReader(m_proFileOption); connect(reader, SIGNAL(errorFound(QString)), - this, SLOT(proFileParseError(QString))); + this, SLOT(proFileParseError(QString)), + Qt::QueuedConnection); reader->setOutputDir(qt4ProFileNode->buildDir());