diff options
author | Warwick Allison <warwick.allison@nokia.com> | 2010-07-07 04:12:19 (GMT) |
---|---|---|
committer | Warwick Allison <warwick.allison@nokia.com> | 2010-07-07 04:12:19 (GMT) |
commit | b4b1b118015d1dcef63b065a609234a18f332ba4 (patch) | |
tree | 3ed0cd064a056e02b44dbc2b0f9df92c09359d39 /tools/qml/main.cpp | |
parent | 628159323c60c434a202b036ecbaf5e433c703e8 (diff) | |
parent | e3bc34b40559e0cb88363039ee61300478e7c700 (diff) | |
download | Qt-b4b1b118015d1dcef63b065a609234a18f332ba4.zip Qt-b4b1b118015d1dcef63b065a609234a18f332ba4.tar.gz Qt-b4b1b118015d1dcef63b065a609234a18f332ba4.tar.bz2 |
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-qml into 4.7
Diffstat (limited to 'tools/qml/main.cpp')
-rw-r--r-- | tools/qml/main.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/tools/qml/main.cpp b/tools/qml/main.cpp index d0817bc..d5ad9ad 100644 --- a/tools/qml/main.cpp +++ b/tools/qml/main.cpp @@ -49,6 +49,7 @@ #include <QTranslator> #include <QDebug> #include <QMessageBox> +#include <QAtomicInt> #include "qdeclarativetester.h" QT_USE_NAMESPACE @@ -89,19 +90,25 @@ void showWarnings() } } +static QAtomicInt recursiveLock(0); + void myMessageOutput(QtMsgType type, const char *msg) { + QString strMsg = QString::fromLatin1(msg); + if (!logger.isNull() && !QCoreApplication::closingDown()) { - QString strMsg = QString::fromAscii(msg); - QMetaObject::invokeMethod(logger.data(), "append", Q_ARG(QString, strMsg)); + if (recursiveLock.testAndSetOrdered(0, 1)) { + QMetaObject::invokeMethod(logger.data(), "append", Q_ARG(QString, strMsg)); + recursiveLock = 0; + } } else { - warnings += msg; + warnings += strMsg; warnings += QLatin1Char('\n'); } if (systemMsgOutput) { // Windows systemMsgOutput(type, msg); } else { // Unix - fprintf(stderr, "%s\n",msg); + fprintf(stderr, "%s\n", msg); fflush(stderr); } } |