DisplayStatusBar.qml
author sl
Wed, 28 May 2014 21:31:03 +0200
changeset 14 9903a5edeb56
parent 9 52372bbbc0f8
permissions -rw-r--r--
Working around our font dialog option listing issues.
Font dialog options are now persisted.
Fixing issue with italic font being cut by using proper string width from boundigRect.
     1 import QtQuick 2.0
     2 import QtQuick.Controls 1.2
     3 import QtQuick.Layouts 1.1
     4 
     5 
     6 
     7 StatusBar {
     8 
     9     Component.onCompleted: {
    10         display.closed.connect(onDisplayClosed);
    11         display.opened.connect(onDisplayOpened);
    12         display.openError.connect(updateDisplayStatusError);
    13         display.powerStatus.connect(updatePowerStatus);
    14         display.deviceId.connect(updateDeviceId);
    15         display.firmwareVersion.connect(updateFirmwareVersion);
    16     }
    17 
    18     //We need to disconnect our signals to avoid receiving stray events
    19     Component.onDestruction: {
    20         display.closed.disconnect(onDisplayClosed);
    21         display.opened.disconnect(onDisplayOpened);
    22         display.openError.disconnect(updateDisplayStatusError);
    23         display.powerStatus.disconnect(updatePowerStatus);
    24         display.deviceId.disconnect(updateDeviceId);
    25         display.firmwareVersion.disconnect(updateFirmwareVersion);
    26     }
    27 
    28     function updatePowerStatus(powerOn)
    29     {
    30         if (powerOn)
    31         {
    32             labelDisplayPowerStatus.text=qsTr("Power: ON");
    33         }
    34         else
    35         {
    36             labelDisplayPowerStatus.text=qsTr("Power: OFF");
    37         }
    38     }
    39 
    40     function updateDeviceId(deviceId)
    41     {
    42         labelDisplayDeviceId.text = deviceId;
    43         display.requestFirmwareVersion();
    44     }
    45 
    46     function updateFirmwareVersion(version)
    47     {
    48         labelDisplayFirmwareVersion.text = "Firmware v" + version;
    49         display.requestPowerStatus();
    50     }
    51 
    52     function onDisplayOpened()
    53     {
    54         updateDisplayStatus();
    55         //
    56         display.requestDeviceId();
    57     }
    58 
    59     function onDisplayClosed()
    60     {
    61         updateDisplayStatus();
    62         labelDisplayDeviceId.text="";
    63         labelDisplayFirmwareVersion.text="";
    64         labelDisplayPowerStatus.text="";
    65     }
    66 
    67 
    68     function updateDisplayStatusError()
    69     {
    70         updateDisplayStatus();
    71         labelDisplayStatus.text=qsTr("Connection error");
    72     }
    73 
    74     function updateDisplayStatus()
    75     {
    76         if (display.isOpen)
    77         {
    78             labelDisplayStatus.text=qsTr("Connected");
    79         }
    80         else
    81         {
    82             labelDisplayStatus.text=qsTr("Disconnected");
    83         }
    84 
    85         labelDisplayVendor.text=display.vendor;
    86         labelDisplayProduct.text=display.product;
    87         labelDisplaySerialNumber.text=display.serialNumber;
    88     }
    89 
    90 
    91     RowLayout {
    92         Label {
    93             id: labelDisplayStatus
    94             text: qsTr("Disconnected")
    95         }
    96 
    97         Label {
    98             id: labelDisplayVendor
    99             text: qsTr("")
   100         }
   101 
   102         Label {
   103             id: labelDisplayProduct
   104             text: qsTr("")
   105         }
   106 
   107         Label {
   108             id: labelDisplaySerialNumber
   109             visible: false //We don't want to display that. GP1212A01A does not even provide a proper string.
   110             text: qsTr("")
   111         }
   112 
   113         Label {
   114             id: labelDisplayDeviceId
   115             text: qsTr("")
   116         }
   117 
   118         Label {
   119             id: labelDisplayFirmwareVersion
   120             text: qsTr("")
   121         }
   122 
   123         Label {
   124             id: labelDisplayPowerStatus
   125             text: qsTr("")
   126         }
   127 
   128     }
   129 }