diff options
author | Maurice Kalinowski <maurice.kalinowski@qt.io> | 2017-09-27 13:06:15 +0200 |
---|---|---|
committer | Maurice Kalinowski <maurice.kalinowski@qt.io> | 2017-10-04 08:14:40 +0000 |
commit | ba42ff33c9d84bf8da482e673f61e9d1de33e1a3 (patch) | |
tree | 4d6b8240616206a96852c4a3f67ec784d296cb91 /tradeshow | |
parent | d53a691180070e8126c24fae2115cb7afd867a94 (diff) |
iot-sensortag: Add logging window
This is most useful in the embedded use-case. Usually there is
no debug connection and initialization of a bluetooth connection
can take very long.
Change-Id: If5b6e8a6e684d2340d6a52b8b21bec25630d6874
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Diffstat (limited to 'tradeshow')
-rw-r--r-- | tradeshow/iot-sensortag/main.cpp | 17 | ||||
-rw-r--r-- | tradeshow/iot-sensortag/resources/base/TopToolbar.qml | 24 | ||||
-rw-r--r-- | tradeshow/iot-sensortag/resources/base/main.qml | 1 |
3 files changed, 42 insertions, 0 deletions
diff --git a/tradeshow/iot-sensortag/main.cpp b/tradeshow/iot-sensortag/main.cpp index 5dd9a7e..ba5324b 100644 --- a/tradeshow/iot-sensortag/main.cpp +++ b/tradeshow/iot-sensortag/main.cpp @@ -78,8 +78,22 @@ Q_DECLARE_LOGGING_CATEGORY(boot2QtDemos) Q_LOGGING_CATEGORY(boot2QtDemos, "boot2qt.demos.iot") +QString loggingOutput; +QQuickWindow *loggingItem{nullptr}; +void handleMessageOutput(QtMsgType, const QMessageLogContext &, const QString &text) +{ + loggingOutput.prepend("\n"); + loggingOutput.prepend(text); + + loggingOutput.chop(loggingOutput.size() - 1024); + if (loggingItem) + loggingItem->setProperty("loggingOutput", loggingOutput); +} + int main(int argc, char *argv[]) { + auto oldHandler = qInstallMessageHandler(handleMessageOutput); + // QtChars mandate using QApplication as it uses the graphics view fw QApplication app(argc, argv); @@ -184,9 +198,12 @@ int main(int argc, char *argv[]) item->setProperty("contentFile", mainFile); item->setProperty("seriesStorage", QVariant::fromValue(&seriesStorage)); item->setProperty("addresses", addressString); + loggingItem = item; } int returnValue = app.exec(); remoteProviderPool->stopScanning(); + qInstallMessageHandler(oldHandler); + return returnValue; } diff --git a/tradeshow/iot-sensortag/resources/base/TopToolbar.qml b/tradeshow/iot-sensortag/resources/base/TopToolbar.qml index 6e5d9d2..69722b7 100644 --- a/tradeshow/iot-sensortag/resources/base/TopToolbar.qml +++ b/tradeshow/iot-sensortag/resources/base/TopToolbar.qml @@ -67,6 +67,26 @@ Item { visible: true } + Image { + id: logWindow + source: "images/bg_blue.jpg" + x: sensorItem.x + y: topToolbar.height + width: Math.min(mainWindow.width, 600) + height: Math.min(mainWindow.height - topToolbar.height, 400) + anchors.horizontalCenter: parent.horizontalCenter + visible: false + Text { + clip: true + color: "white" + font.pixelSize: 26 + text: mainWindow.loggingOutput ? mainWindow.loggingOutput : "...debug..." + anchors.fill: parent + anchors.margins: 15 + } + } + + Item { id: sensorItem height: topToolbar.height @@ -134,6 +154,10 @@ Item { font.pixelSize: Style.topToolbarLargeFontSize anchors.horizontalCenter: parent.horizontalCenter anchors.bottom: parent.bottom + MouseArea { + anchors.fill: parent + onClicked: clickBait.activate(logWindow) + } } Timer { diff --git a/tradeshow/iot-sensortag/resources/base/main.qml b/tradeshow/iot-sensortag/resources/base/main.qml index caa8617..c756c6d 100644 --- a/tradeshow/iot-sensortag/resources/base/main.qml +++ b/tradeshow/iot-sensortag/resources/base/main.qml @@ -63,6 +63,7 @@ Window { property real globalBlinkOpacity: 1.0 property string addresses : "" property bool localSelected : true + property var loggingOutput : null function getCurrentPool() { if (localSelected) |