Index: sources/gui/qml/dialogs/headerbar/InformationDialog.qml =================================================================== diff -u -r44eb40bd3d3676d972c035a8fad1bf51eb01f4af -rea225816887fd5bf505727812721fd4531d3e125 --- sources/gui/qml/dialogs/headerbar/InformationDialog.qml (.../InformationDialog.qml) (revision 44eb40bd3d3676d972c035a8fad1bf51eb01f4af) +++ sources/gui/qml/dialogs/headerbar/InformationDialog.qml (.../InformationDialog.qml) (revision ea225816887fd5bf505727812721fd4531d3e125) @@ -4,57 +4,114 @@ import "qrc:/globals" HeaderBarPopup { id: _root - property int delegateWidth : calculateLargestTextWidth() + padding : Variables.defaultMargin - function calculateLargestTextWidth() { - var maxWidth = 0; - for (var i = 0; i < _repeater.count; i++) { - var delegateItem = _repeater.itemAt(i); - if (delegateItem && delegateItem.children.length > 0) { - var textItem = delegateItem.children[0]; // Assuming Text is the first child - if (textItem && textItem.implicitWidth > maxWidth) { - maxWidth = textItem.implicitWidth; - } + property var _dataModel: [ + { name: qsTr("OS Version" ) , value: vDevice.osVersion }, + { name: qsTr("UI Version" ) , value: Qt.application.version }, + { name: qsTr("TD Version" ) , value: vAdjustmentVersions.tdVerDevice }, + { name: qsTr("TD FPGA Version" ) , value: vAdjustmentVersions.tdVerFPGA }, + { name: qsTr("TD Serial Number") , value: vAdjustmentVersions.tdSerial }, + { name: qsTr("DD Version" ) , value: vAdjustmentVersions.ddVerDevice }, + { name: qsTr("DD FPGA Version" ) , value: vAdjustmentVersions.ddVerFPGA }, + { name: qsTr("DD Serial Number") , value: vAdjustmentVersions.ddSerial } + ] + + property int _rightColumnWidth : 0 + property int _leftColumnWidth : 0 + property int _columnSpacing : Variables.defaultMargin * 2 + + TextMetrics { id: textMetrics + font.pixelSize: Fonts.fontPixelDialogText + } + + Component.onCompleted: { + _qrCode.qrcode ="www.diality.com/moda-flx" + + Qt.callLater(function() { + var max = 0 + for (var i = 0; i < _dataModel.length; ++i) { + textMetrics.text = _dataModel[i].value + max = Math.max(max, textMetrics.width) } - } - return maxWidth; + _rightColumnWidth = max + }) + + Qt.callLater(function() { + var max = 0 + for (var i = 0; i < _dataModel.length; ++i) { + textMetrics.text = _dataModel[i].name + max = Math.max(max, textMetrics.width) + } + _leftColumnWidth = max + }) } - contentItem: Row { + contentItem: Column { id: _contentColumn anchors.centerIn : parent + spacing : Variables.defaultMargin * 2 - QRCode { id: _qrCode + Item { id: _versionList + width : _rightColumnWidth + _leftColumnWidth + _columnSpacing + height : _versionColumn.implicitHeight - // FIX ME .. QML ERROR - NR - qrcode : "https://www.diality.com/moda-flx" + Column { id: _versionColumn + spacing: 4 + anchors.fill: parent - } + Repeater { + model: _dataModel - Column { id : _versionList - Repeater { id: _repeater - model: [("%1: %2").arg(qsTr("OS Version" )).arg(vDevice.osVersion ), - ("%1: %2").arg(qsTr("UI Version" )).arg(Qt.application.version ), - ("%1: %2").arg(qsTr("TD Version" )).arg(vAdjustmentVersions.tdVerDevice ), - ("%1: %2").arg(qsTr("TD FPGA Version" )).arg(vAdjustmentVersions.tdVerFPGA ), - ("%1: %2").arg(qsTr("TD Serial Number" )).arg(vAdjustmentVersions.tdSerial ), - ("%1: %2").arg(qsTr("DD Version" )).arg(vAdjustmentVersions.ddVerDevice ), - ("%1: %2").arg(qsTr("DD FPGA Version" )).arg(vAdjustmentVersions.ddVerFPGA ), - ("%1: %2").arg(qsTr("DD Serial Number" )).arg(vAdjustmentVersions.ddSerial )] + delegate: Item { id: _delegate + width : _versionColumn.width + height : _name.implicitHeight - delegate: Rectangle { id: _delegate - width : _root.delegateWidth - height : _text.contentHeight + Row { id: _row + spacing : _columnSpacing + width : _versionColumn.width - color : index % 2 == 0 ? "transparent" : Colors.dialogShadowColor + Text { id: _name + color : Colors.dialogText + text : modelData.name + width : _leftColumnWidth + font.pixelSize : Fonts.fontPixelDialogText + font.weight : Font.Medium + horizontalAlignment : Text.AlignLeft + } - Text { id: _text - anchors.fill : parent - color : Colors.dialogText - text : modelData - font.pixelSize : Fonts.fontPixelDialogText + Text { id: _value + color : Colors.dialogText + text : modelData.value + width : _rightColumnWidth + font.pixelSize : Fonts.fontPixelDialogText + horizontalAlignment: Text.AlignRight + } + } + + Line { id : _spacerLine + length : _versionList.width + visible : index > 0 + color : Colors.dialogShadowColor + } } } } } + + Row { id: _qrRow + spacing : Variables.defaultMargin * 2 + anchors.horizontalCenter: parent.horizontalCenter + + QRCode { id: _qrCode + anchors.verticalCenter: parent.verticalCenter + } + + Text { id: _qrCodeInstructions + anchors.verticalCenter : parent.verticalCenter + text : qsTr("Scan for electronic instructions for use (eIFU)" ) + color : Colors.dialogText + font.pixelSize : Fonts.fontPixelDialogText + } + } } }