Added scrollbars for lists and text fields. Added saving to the path settings for configuration files and the current language. Various UI improvements

This commit is contained in:
Yury Shuvakin
2022-08-28 16:32:07 +03:00
parent 4a0f78c247
commit 545977a4b7
18 changed files with 607 additions and 415 deletions

View File

@@ -332,9 +332,16 @@ Item {
onVisibleChanged: getValues()
Timer {
id: refreshValuesTimer
interval: 5000
onTriggered: getValues()
}
function getValues() {
if (BmsInterface.isPortConnected() && visible) {
BmsInterface.commands().getValues()
refreshValuesTimer.start()
}
}
}

View File

@@ -12,12 +12,20 @@ ColumnLayout {
Keys.onEnterPressed: sendButton.clicked()
Controls.Frame {
ScrollView {
Flickable {
id: outputFlickable
clip: true
anchors.fill: parent
Controls.TextArea {
boundsBehavior: Flickable.StopAtBounds
TextArea.flickable: Controls.TextArea {
id: outputArea
}
ScrollBar.horizontal: Controls.ScrollBar {}
ScrollBar.vertical: Controls.ScrollBar {}
}
Layout.fillWidth: true
Layout.fillHeight: true
}
@@ -58,6 +66,9 @@ ColumnLayout {
Connections {
target: BmsInterface.commands()
onPrintReceived: outputArea.append(str)
onPrintReceived: {
outputArea.append(str)
outputArea.cursorPosition = outputArea.length
}
}
}

View File

@@ -2,6 +2,7 @@ import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.12
import QtQuick.Dialogs 1.2
import Qt.labs.settings 1.1
import Controls 1.0 as Controls
import Cubo 1.0
@@ -20,6 +21,7 @@ RowLayout {
id: settingsFlickable
clip: true
contentHeight: configLayout.height
boundsBehavior: Flickable.StopAtBounds
ColumnLayout {
id: configLayout
@@ -587,9 +589,17 @@ RowLayout {
folder: shortcuts.documents
nameFilters: [ qsTr("Configuration files (*.xml)"), qsTr("All files (*)") ]
onAccepted: {
BmsInterface.bmsConfig().loadXml(loadFileDialog.fileUrl.toString().replace(/^(file:\/{3})/, ""), "bmsConfiguration")
let result = BmsInterface.bmsConfig().loadXml(loadFileDialog.fileUrl.toString().replace(/^(file:\/{3})/, ""), "bmsConfiguration")
if (!result) {
BmsInterface.emitStatusMessage(BmsInterface.bmsConfig().xmlStatus(), false)
}
}
}
Settings {
category: "loadConfiguration"
property alias folder: loadFileDialog.folder
}
}
Controls.OutlineButton {
@@ -604,15 +614,23 @@ RowLayout {
folder: shortcuts.documents
nameFilters: [ qsTr("Configuration files (*.xml)"), qsTr("All files (*)") ]
onAccepted: {
BmsInterface.bmsConfig().saveXml(saveFileDialog.fileUrl.toString().replace(/^(file:\/{3})/, ""), "bmsConfiguration")
let result = BmsInterface.bmsConfig().saveXml(saveFileDialog.fileUrl.toString().replace(/^(file:\/{3})/, ""), "bmsConfiguration")
if (!result) {
BmsInterface.emitStatusMessage(BmsInterface.bmsConfig().xmlStatus(), false)
} else {
BmsInterface.emitStatusMessage(qsTr("BMS configuration saved to file"), true)
}
}
}
Settings {
category: "saveConfiguration"
property alias folder: saveFileDialog.folder
}
}
}
ScrollBar.vertical: Controls.ScrollBar {
// policy: ScrollBar.AlwaysOn
}
ScrollBar.vertical: Controls.ScrollBar {}
Layout.fillWidth: true
Layout.fillHeight: true
@@ -658,7 +676,10 @@ RowLayout {
Controls.LinkLabel {
text: qsTr("Current sensor value \"0\"")
onClicked: settingsFlickable.contentY = zeroSensorSettingsFrame.mapToItem(settingsFlickable.contentItem, 0, 0).y
onClicked: {
settingsFlickable.contentY = zeroSensorSettingsFrame.mapToItem(settingsFlickable.contentItem, 0, 0).y
settingsFlickable.returnToBounds()
}
}
Item {

View File

@@ -1,4 +1,5 @@
import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.12
import QtGraphicalEffects 1.0
@@ -123,6 +124,7 @@ Item {
header: cellListHeader
delegate: cellListDelegate
ScrollBar.vertical: Controls.ScrollBar {}
}
Layout.fillWidth: true
@@ -145,6 +147,7 @@ Item {
header: cellListHeader
delegate: cellListDelegate
ScrollBar.vertical: Controls.ScrollBar {}
}
Layout.fillWidth: true
@@ -182,9 +185,16 @@ Item {
onVisibleChanged: getValues()
Timer {
id: refreshValuesTimer
interval: 5000
onTriggered: getValues()
}
function getValues() {
if (BmsInterface.isPortConnected() && visible) {
BmsInterface.commands().getCells()
refreshValuesTimer.start()
}
}
}

View File

@@ -4,17 +4,27 @@ import QtQuick.Layouts 1.12
import Controls 1.0 as Controls
import Cubo 1.0
import Utils 1.0
ColumnLayout {
spacing: 20
Controls.Frame {
ScrollView {
Flickable {
id: outputFlickable
clip: true
anchors.fill: parent
Controls.TextArea {
boundsBehavior: Flickable.StopAtBounds
TextArea.flickable: Controls.TextArea {
id: outputArea
textFormat: Text.RichText
}
ScrollBar.horizontal: Controls.ScrollBar { }
ScrollBar.vertical: Controls.ScrollBar { }
}
Layout.fillWidth: true
Layout.fillHeight: true
}
@@ -27,9 +37,27 @@ ColumnLayout {
Connections {
target: BmsInterface
onStatusMessage: printMessage(msg, isGood)
}
onStatusMessage: {
outputArea.append(msg)
function printMessage(msg, isGood) {
var message = ""
if (!isGood) {
message += "<font color=\"" + Palette.invalidColor + "\">"
}
message += new Date().toLocaleString(Qt.locale("en-US"), "dd.MM.yyyy hh:mm:ss") + ": " + msg
if (!isGood) {
message += "</font>"
}
message += "<br>"
outputArea.insert(outputArea.length, message)
outputArea.cursorPosition = outputArea.length
outputFlickable.contentX = 0
}
}

View File

@@ -1,4 +1,5 @@
import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.12
import QtCharts 2.3
@@ -169,6 +170,8 @@ ColumnLayout {
model: seriesCount
delegate: legendDelegate
visible: !horizontalLegend
boundsBehavior: Flickable.StopAtBounds
ScrollBar.vertical: Controls.ScrollBar {}
property Controls.ChartView chartItem: chart