sl@8: import QtQuick 2.0 sl@8: import QtQuick.Controls 1.2 sl@8: import QtQuick.Layouts 1.1 sl@8: sl@8: sl@8: sl@8: StatusBar { sl@8: sl@8: Component.onCompleted: { sl@9: display.closed.connect(onDisplayClosed); sl@9: display.opened.connect(onDisplayOpened); sl@8: display.openError.connect(updateDisplayStatusError); sl@9: display.powerStatus.connect(updatePowerStatus); sl@9: display.deviceId.connect(updateDeviceId); sl@9: display.firmwareVersion.connect(updateFirmwareVersion); sl@8: } sl@8: sl@11: //We need to disconnect our signals to avoid receiving stray events sl@11: Component.onDestruction: { sl@11: display.closed.disconnect(onDisplayClosed); sl@11: display.opened.disconnect(onDisplayOpened); sl@11: display.openError.disconnect(updateDisplayStatusError); sl@11: display.powerStatus.disconnect(updatePowerStatus); sl@11: display.deviceId.disconnect(updateDeviceId); sl@11: display.firmwareVersion.disconnect(updateFirmwareVersion); sl@11: } sl@11: sl@9: function updatePowerStatus(powerOn) sl@9: { sl@9: if (powerOn) sl@9: { sl@9: labelDisplayPowerStatus.text=qsTr("Power: ON"); sl@9: } sl@9: else sl@9: { sl@9: labelDisplayPowerStatus.text=qsTr("Power: OFF"); sl@9: } sl@9: } sl@9: sl@9: function updateDeviceId(deviceId) sl@9: { sl@9: labelDisplayDeviceId.text = deviceId; sl@9: display.requestFirmwareVersion(); sl@9: } sl@9: sl@9: function updateFirmwareVersion(version) sl@9: { sl@9: labelDisplayFirmwareVersion.text = "Firmware v" + version; sl@9: display.requestPowerStatus(); sl@9: } sl@9: sl@9: function onDisplayOpened() sl@9: { sl@9: updateDisplayStatus(); sl@9: // sl@9: display.requestDeviceId(); sl@9: } sl@9: sl@9: function onDisplayClosed() sl@9: { sl@9: updateDisplayStatus(); sl@9: labelDisplayDeviceId.text=""; sl@9: labelDisplayFirmwareVersion.text=""; sl@9: labelDisplayPowerStatus.text=""; sl@9: } sl@9: sl@9: sl@8: function updateDisplayStatusError() sl@8: { sl@8: updateDisplayStatus(); sl@8: labelDisplayStatus.text=qsTr("Connection error"); sl@8: } sl@8: sl@8: function updateDisplayStatus() sl@8: { sl@8: if (display.isOpen) sl@8: { sl@8: labelDisplayStatus.text=qsTr("Connected"); sl@8: } sl@8: else sl@8: { sl@8: labelDisplayStatus.text=qsTr("Disconnected"); sl@8: } sl@8: sl@8: labelDisplayVendor.text=display.vendor; sl@8: labelDisplayProduct.text=display.product; sl@8: labelDisplaySerialNumber.text=display.serialNumber; sl@8: } sl@8: sl@8: sl@8: RowLayout { sl@8: Label { sl@8: id: labelDisplayStatus sl@8: text: qsTr("Disconnected") sl@8: } sl@8: sl@8: Label { sl@8: id: labelDisplayVendor sl@8: text: qsTr("") sl@8: } sl@8: sl@8: Label { sl@8: id: labelDisplayProduct sl@8: text: qsTr("") sl@8: } sl@8: sl@8: Label { sl@8: id: labelDisplaySerialNumber sl@8: visible: false //We don't want to display that. GP1212A01A does not even provide a proper string. sl@8: text: qsTr("") sl@8: } sl@9: sl@9: Label { sl@9: id: labelDisplayDeviceId sl@9: text: qsTr("") sl@9: } sl@9: sl@9: Label { sl@9: id: labelDisplayFirmwareVersion sl@9: text: qsTr("") sl@9: } sl@9: sl@9: Label { sl@9: id: labelDisplayPowerStatus sl@9: text: qsTr("") sl@9: } sl@9: sl@8: } sl@8: }