From ba42ff33c9d84bf8da482e673f61e9d1de33e1a3 Mon Sep 17 00:00:00 2001 From: Maurice Kalinowski Date: Wed, 27 Sep 2017 13:06:15 +0200 Subject: 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 --- tradeshow/iot-sensortag/main.cpp | 17 +++++++++++++++ .../iot-sensortag/resources/base/TopToolbar.qml | 24 ++++++++++++++++++++++ tradeshow/iot-sensortag/resources/base/main.qml | 1 + 3 files changed, 42 insertions(+) (limited to 'tradeshow') 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) -- cgit v1.2.3