Implement example charts for information tab
This commit is contained in:
@@ -15,7 +15,7 @@ endif(CCACHE_FOUND)
|
|||||||
add_definitions(-DQT_GUI_LIB)
|
add_definitions(-DQT_GUI_LIB)
|
||||||
add_subdirectory(3rdparty)
|
add_subdirectory(3rdparty)
|
||||||
|
|
||||||
find_package(Qt6 REQUIRED COMPONENTS Core Gui Quick WebSockets LinguistTools)
|
find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets Quick WebSockets LinguistTools)
|
||||||
|
|
||||||
qt_standard_project_setup(REQUIRES 6.6 I18N_TRANSLATED_LANGUAGES de)
|
qt_standard_project_setup(REQUIRES 6.6 I18N_TRANSLATED_LANGUAGES de)
|
||||||
|
|
||||||
@@ -114,6 +114,7 @@ qt_add_qml_module(evcharger-app
|
|||||||
RequestStatusText.qml
|
RequestStatusText.qml
|
||||||
SchedulerDayPage.qml
|
SchedulerDayPage.qml
|
||||||
SchedulerPage.qml
|
SchedulerPage.qml
|
||||||
|
ScrollableTabPage.qml
|
||||||
SecurityPage.qml
|
SecurityPage.qml
|
||||||
SelectLogicModeItem.qml
|
SelectLogicModeItem.qml
|
||||||
SelectPhaseSwitchModeItem.qml
|
SelectPhaseSwitchModeItem.qml
|
||||||
@@ -162,6 +163,7 @@ set_source_files_properties(Constants.qml PROPERTIES QT_QML_SINGLETON_TYPE TRUE)
|
|||||||
target_link_libraries(evcharger-app PUBLIC
|
target_link_libraries(evcharger-app PUBLIC
|
||||||
Qt6::Core
|
Qt6::Core
|
||||||
Qt6::Gui
|
Qt6::Gui
|
||||||
|
Qt6::Widgets
|
||||||
Qt6::Quick
|
Qt6::Quick
|
||||||
Qt6::WebSockets
|
Qt6::WebSockets
|
||||||
qmsgpack
|
qmsgpack
|
||||||
|
@@ -25,228 +25,218 @@ AnimatedStackView {
|
|||||||
onCloseRequested: stackView.closeRequested()
|
onCloseRequested: stackView.closeRequested()
|
||||||
}
|
}
|
||||||
|
|
||||||
Flickable {
|
ScrollableTabPage {
|
||||||
id: flickable
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
contentHeight: columnLayout.implicitHeight
|
|
||||||
clip: true
|
|
||||||
|
|
||||||
ColumnLayout {
|
RowLayout {
|
||||||
id: columnLayout
|
Layout.fillWidth: true
|
||||||
width: flickable.width - 30
|
|
||||||
x: 15
|
|
||||||
spacing: 5
|
|
||||||
|
|
||||||
RowLayout {
|
ColumnLayout {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
ColumnLayout {
|
Text {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
Text {
|
|
||||||
Layout.fillWidth: true
|
|
||||||
|
|
||||||
ApiKeyValueHelper {
|
|
||||||
id: errApiKeyHelper
|
|
||||||
deviceConnection: theDeviceConnection
|
|
||||||
apiKey: "err"
|
|
||||||
}
|
|
||||||
|
|
||||||
text: {
|
|
||||||
switch (carApiKeyHelper.value)
|
|
||||||
{
|
|
||||||
case 0: return qsTr("Internal error")
|
|
||||||
case 1: return qsTr("No car connected")
|
|
||||||
case 2: return qsTr("Car is charging")
|
|
||||||
case 3: return qsTr("Connecting to your car...")
|
|
||||||
case 4: return qsTr("Charging completed")
|
|
||||||
case 5: return qsTr("Unknown error %0").arg(errApiKeyHelper.value)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
font.pixelSize: 20
|
|
||||||
font.bold: true
|
|
||||||
wrapMode: Text.Wrap
|
|
||||||
}
|
|
||||||
|
|
||||||
Text {
|
|
||||||
ApiKeyValueHelper {
|
|
||||||
id: chargingDurationInfo
|
|
||||||
deviceConnection: theDeviceConnection
|
|
||||||
apiKey: "cdi"
|
|
||||||
}
|
|
||||||
ApiKeyValueHelper {
|
|
||||||
id: powerInfo
|
|
||||||
deviceConnection: theDeviceConnection
|
|
||||||
apiKey: "nrg"
|
|
||||||
}
|
|
||||||
ApiKeyValueHelper {
|
|
||||||
id: energyInfo
|
|
||||||
deviceConnection: theDeviceConnection
|
|
||||||
apiKey: "wh"
|
|
||||||
}
|
|
||||||
|
|
||||||
Layout.fillWidth: true
|
|
||||||
|
|
||||||
text: {
|
|
||||||
switch (carApiKeyHelper.value)
|
|
||||||
{
|
|
||||||
case 0: return null
|
|
||||||
case 1: return qsTr("Plug in the cable to start charging your car")
|
|
||||||
case 2: return qsTr("Duration: %0").arg(getDurationInfo()) + "\n" +
|
|
||||||
qsTr("Speed: %0").arg(getChargingSpeed()) + "\n" +
|
|
||||||
qsTr("Amount: %0").arg(getChargingAmount())
|
|
||||||
case 3: return qsTr("Charger is connecting to your car, it usually takes a few seconds")
|
|
||||||
case 4: return qsTr("Let's go-e :)")
|
|
||||||
case 5: return null
|
|
||||||
}
|
|
||||||
}
|
|
||||||
wrapMode: Text.Wrap
|
|
||||||
|
|
||||||
function getDurationInfo() {
|
|
||||||
if (!chargingDurationInfo.exists)
|
|
||||||
return qsTr("(api key doesnt exist)")
|
|
||||||
if (typeof chargingDurationInfo.value == null)
|
|
||||||
return qsTr("(api key is null)")
|
|
||||||
if (typeof chargingDurationInfo.value !== 'object')
|
|
||||||
return qsTr("(api key is not an object)")
|
|
||||||
if (!('type' in chargingDurationInfo.value))
|
|
||||||
return qsTr("(api key does not contain a type)")
|
|
||||||
switch (chargingDurationInfo.value.type)
|
|
||||||
{
|
|
||||||
case 0: // counter going up, use rbt
|
|
||||||
return formatDuration(rebootTime.value - chargingDurationInfo.value.value)
|
|
||||||
case 1: // counter frozen, absolute duration
|
|
||||||
return formatDuration(chargingDurationInfo.value.value)
|
|
||||||
}
|
|
||||||
return qsTr("(api key has unknown type %0)").arg(chargingDurationInfo.value.type)
|
|
||||||
}
|
|
||||||
|
|
||||||
function getChargingSpeed() {
|
|
||||||
return qsTr("%0 %1 %2")
|
|
||||||
.arg(qsTr("%0 A").arg(Qt.locale().toString(powerInfo.value[4], 'f', 1)))
|
|
||||||
.arg(qsTr("%0 A").arg(Qt.locale().toString(powerInfo.value[5], 'f', 1)))
|
|
||||||
.arg(qsTr("%0 A").arg(Qt.locale().toString(powerInfo.value[6], 'f', 1)))
|
|
||||||
}
|
|
||||||
|
|
||||||
function getChargingAmount() {
|
|
||||||
return qsTr("%0 kWh").arg(Qt.locale().toString(energyInfo.value / 1000., 'f', 1))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Image {
|
|
||||||
Layout.preferredWidth: parent.width / 4
|
|
||||||
Layout.preferredHeight: paintedHeight
|
|
||||||
|
|
||||||
fillMode: Image.PreserveAspectFit
|
|
||||||
|
|
||||||
ApiKeyValueHelper {
|
ApiKeyValueHelper {
|
||||||
id: devicetype
|
id: errApiKeyHelper
|
||||||
deviceConnection: theDeviceConnection
|
deviceConnection: theDeviceConnection
|
||||||
apiKey: "typ"
|
apiKey: "err"
|
||||||
}
|
}
|
||||||
|
|
||||||
ApiKeyValueHelper {
|
text: {
|
||||||
id: isgo
|
switch (carApiKeyHelper.value)
|
||||||
deviceConnection: theDeviceConnection
|
|
||||||
apiKey: "isgo"
|
|
||||||
}
|
|
||||||
|
|
||||||
source: {
|
|
||||||
if (devicetype.value == "go-eCharger_V5" ||
|
|
||||||
devicetype.value == "go-eCharger_V4")
|
|
||||||
{
|
{
|
||||||
if (isgo.value)
|
case 0: return qsTr("Internal error")
|
||||||
return "images/geminiFlex.png"
|
case 1: return qsTr("No car connected")
|
||||||
else
|
case 2: return qsTr("Car is charging")
|
||||||
return "images/geminiFix.png"
|
case 3: return qsTr("Connecting to your car...")
|
||||||
} else if (devicetype.value == "wattpilot_V2") {
|
case 4: return qsTr("Charging completed")
|
||||||
return "images/wattpilot.png"
|
case 5: return qsTr("Unknown error %0").arg(errApiKeyHelper.value)
|
||||||
} else if (devicetype.value == "go-eCharger" ||
|
|
||||||
devicetype.value == "wattpilot") {
|
|
||||||
return "images/homeFix.png"
|
|
||||||
} else if (devicetype.value == "go-eCharger_Phoenix") {
|
|
||||||
return "images/phoenix.png"
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
font.pixelSize: 20
|
||||||
|
font.bold: true
|
||||||
|
wrapMode: Text.Wrap
|
||||||
|
}
|
||||||
|
|
||||||
return "material-icons/grid_guides.svg"
|
Text {
|
||||||
|
ApiKeyValueHelper {
|
||||||
|
id: chargingDurationInfo
|
||||||
|
deviceConnection: theDeviceConnection
|
||||||
|
apiKey: "cdi"
|
||||||
|
}
|
||||||
|
ApiKeyValueHelper {
|
||||||
|
id: powerInfo
|
||||||
|
deviceConnection: theDeviceConnection
|
||||||
|
apiKey: "nrg"
|
||||||
|
}
|
||||||
|
ApiKeyValueHelper {
|
||||||
|
id: energyInfo
|
||||||
|
deviceConnection: theDeviceConnection
|
||||||
|
apiKey: "wh"
|
||||||
|
}
|
||||||
|
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
text: {
|
||||||
|
switch (carApiKeyHelper.value)
|
||||||
|
{
|
||||||
|
case 0: return null
|
||||||
|
case 1: return qsTr("Plug in the cable to start charging your car")
|
||||||
|
case 2: return qsTr("Duration: %0").arg(getDurationInfo()) + "\n" +
|
||||||
|
qsTr("Speed: %0").arg(getChargingSpeed()) + "\n" +
|
||||||
|
qsTr("Amount: %0").arg(getChargingAmount())
|
||||||
|
case 3: return qsTr("Charger is connecting to your car, it usually takes a few seconds")
|
||||||
|
case 4: return qsTr("Let's go-e :)")
|
||||||
|
case 5: return null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
wrapMode: Text.Wrap
|
||||||
|
|
||||||
|
function getDurationInfo() {
|
||||||
|
if (!chargingDurationInfo.exists)
|
||||||
|
return qsTr("(api key doesnt exist)")
|
||||||
|
if (typeof chargingDurationInfo.value == null)
|
||||||
|
return qsTr("(api key is null)")
|
||||||
|
if (typeof chargingDurationInfo.value !== 'object')
|
||||||
|
return qsTr("(api key is not an object)")
|
||||||
|
if (!('type' in chargingDurationInfo.value))
|
||||||
|
return qsTr("(api key does not contain a type)")
|
||||||
|
switch (chargingDurationInfo.value.type)
|
||||||
|
{
|
||||||
|
case 0: // counter going up, use rbt
|
||||||
|
return formatDuration(rebootTime.value - chargingDurationInfo.value.value)
|
||||||
|
case 1: // counter frozen, absolute duration
|
||||||
|
return formatDuration(chargingDurationInfo.value.value)
|
||||||
|
}
|
||||||
|
return qsTr("(api key has unknown type %0)").arg(chargingDurationInfo.value.type)
|
||||||
|
}
|
||||||
|
|
||||||
|
function getChargingSpeed() {
|
||||||
|
return qsTr("%0 %1 %2")
|
||||||
|
.arg(qsTr("%0 A").arg(Qt.locale().toString(powerInfo.value[4], 'f', 1)))
|
||||||
|
.arg(qsTr("%0 A").arg(Qt.locale().toString(powerInfo.value[5], 'f', 1)))
|
||||||
|
.arg(qsTr("%0 A").arg(Qt.locale().toString(powerInfo.value[6], 'f', 1)))
|
||||||
|
}
|
||||||
|
|
||||||
|
function getChargingAmount() {
|
||||||
|
return qsTr("%0 kWh").arg(Qt.locale().toString(energyInfo.value / 1000., 'f', 1))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
StartStopButton {
|
Image {
|
||||||
Layout.fillWidth: true
|
Layout.preferredWidth: parent.width / 4
|
||||||
deviceConnection: theDeviceConnection
|
Layout.preferredHeight: paintedHeight
|
||||||
}
|
|
||||||
|
|
||||||
ApiKeyValueHelper {
|
fillMode: Image.PreserveAspectFit
|
||||||
id: logicMode
|
|
||||||
deviceConnection: theDeviceConnection
|
|
||||||
apiKey: "lmo"
|
|
||||||
}
|
|
||||||
|
|
||||||
SelectLogicModeItem {
|
|
||||||
Layout.fillWidth: true
|
|
||||||
}
|
|
||||||
|
|
||||||
NavigationItem {
|
|
||||||
ApiKeyValueHelper {
|
ApiKeyValueHelper {
|
||||||
id: priceLimitHelper
|
id: devicetype
|
||||||
deviceConnection: theDeviceConnection
|
deviceConnection: theDeviceConnection
|
||||||
apiKey: "awp"
|
apiKey: "typ"
|
||||||
}
|
}
|
||||||
|
|
||||||
visible: logicMode.value == 4
|
ApiKeyValueHelper {
|
||||||
iconSource: "material-icons/grid_guides.svg"
|
id: isgo
|
||||||
title: qsTr("Price limit")
|
deviceConnection: theDeviceConnection
|
||||||
description: qsTr("%0 ct/kWh").arg(Qt.locale().toString(priceLimitHelper.value, 'f', 1))
|
apiKey: "isgo"
|
||||||
component: Component {
|
}
|
||||||
SetPriceLimitPage {
|
|
||||||
|
source: {
|
||||||
|
if (devicetype.value == "go-eCharger_V5" ||
|
||||||
|
devicetype.value == "go-eCharger_V4")
|
||||||
|
{
|
||||||
|
if (isgo.value)
|
||||||
|
return "images/geminiFlex.png"
|
||||||
|
else
|
||||||
|
return "images/geminiFix.png"
|
||||||
|
} else if (devicetype.value == "wattpilot_V2") {
|
||||||
|
return "images/wattpilot.png"
|
||||||
|
} else if (devicetype.value == "go-eCharger" ||
|
||||||
|
devicetype.value == "wattpilot") {
|
||||||
|
return "images/homeFix.png"
|
||||||
|
} else if (devicetype.value == "go-eCharger_Phoenix") {
|
||||||
|
return "images/phoenix.png"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return "material-icons/grid_guides.svg"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
NavigationItem {
|
StartStopButton {
|
||||||
visible: logicMode.value == 5
|
Layout.fillWidth: true
|
||||||
iconSource: "material-icons/grid_guides.svg"
|
deviceConnection: theDeviceConnection
|
||||||
title: qsTr("Daily trip")
|
}
|
||||||
description: qsTr("By %0 with %1").arg("08:00").arg(qsTr("%0 km").arg(100))
|
|
||||||
component: Component {
|
|
||||||
DailyTripPage {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
ApiKeyValueHelper {
|
||||||
|
id: logicMode
|
||||||
|
deviceConnection: theDeviceConnection
|
||||||
|
apiKey: "lmo"
|
||||||
|
}
|
||||||
|
|
||||||
|
SelectLogicModeItem {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
}
|
||||||
|
|
||||||
|
NavigationItem {
|
||||||
ApiKeyValueHelper {
|
ApiKeyValueHelper {
|
||||||
id: requestedCurrent
|
id: priceLimitHelper
|
||||||
deviceConnection: theDeviceConnection
|
deviceConnection: theDeviceConnection
|
||||||
apiKey: "amp"
|
apiKey: "awp"
|
||||||
}
|
}
|
||||||
|
|
||||||
ApiKeyValueHelper {
|
visible: logicMode.value == 4
|
||||||
id: phaseSwitchMode
|
iconSource: "material-icons/grid_guides.svg"
|
||||||
deviceConnection: theDeviceConnection
|
title: qsTr("Price limit")
|
||||||
apiKey: "psm"
|
description: qsTr("%0 ct/kWh").arg(Qt.locale().toString(priceLimitHelper.value, 'f', 1))
|
||||||
|
component: Component {
|
||||||
|
SetPriceLimitPage {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
NavigationItem {
|
NavigationItem {
|
||||||
iconSource: "material-icons/grid_guides.svg"
|
visible: logicMode.value == 5
|
||||||
title: qsTr("Charging speed")
|
iconSource: "material-icons/grid_guides.svg"
|
||||||
description: qsTr("%0 & %1")
|
title: qsTr("Daily trip")
|
||||||
.arg(qsTr("%0 Ampere").arg(requestedCurrent.value))
|
description: qsTr("By %0 with %1").arg("08:00").arg(qsTr("%0 km").arg(100))
|
||||||
.arg((function(){
|
component: Component {
|
||||||
switch (phaseSwitchMode.value)
|
DailyTripPage {
|
||||||
{
|
}
|
||||||
case 0: return qsTr("Automatic phase selection");
|
}
|
||||||
case 1: return qsTr("1-phase");
|
}
|
||||||
case 2: return qsTr("3-phase");
|
|
||||||
case 3: return qsTr("Unknown phase selection (%0)").arg(phaseSwitchMode.value);
|
ApiKeyValueHelper {
|
||||||
}
|
id: requestedCurrent
|
||||||
})())
|
deviceConnection: theDeviceConnection
|
||||||
component: Component {
|
apiKey: "amp"
|
||||||
ChargingSpeedPage {
|
}
|
||||||
|
|
||||||
|
ApiKeyValueHelper {
|
||||||
|
id: phaseSwitchMode
|
||||||
|
deviceConnection: theDeviceConnection
|
||||||
|
apiKey: "psm"
|
||||||
|
}
|
||||||
|
|
||||||
|
NavigationItem {
|
||||||
|
iconSource: "material-icons/grid_guides.svg"
|
||||||
|
title: qsTr("Charging speed")
|
||||||
|
description: qsTr("%0 & %1")
|
||||||
|
.arg(qsTr("%0 Ampere").arg(requestedCurrent.value))
|
||||||
|
.arg((function(){
|
||||||
|
switch (phaseSwitchMode.value)
|
||||||
|
{
|
||||||
|
case 0: return qsTr("Automatic phase selection");
|
||||||
|
case 1: return qsTr("1-phase");
|
||||||
|
case 2: return qsTr("3-phase");
|
||||||
|
case 3: return qsTr("Unknown phase selection (%0)").arg(phaseSwitchMode.value);
|
||||||
}
|
}
|
||||||
|
})())
|
||||||
|
component: Component {
|
||||||
|
ChargingSpeedPage {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -24,112 +24,102 @@ AnimatedStackView {
|
|||||||
onCloseRequested: stackView.closeRequested()
|
onCloseRequested: stackView.closeRequested()
|
||||||
}
|
}
|
||||||
|
|
||||||
Flickable {
|
ScrollableTabPage {
|
||||||
id: flickable
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
contentHeight: columnLayout.implicitHeight
|
|
||||||
clip: true
|
|
||||||
|
|
||||||
ColumnLayout {
|
RowLayout {
|
||||||
id: columnLayout
|
Layout.fillWidth: true
|
||||||
width: flickable.width - 30
|
|
||||||
x: 15
|
|
||||||
spacing: 5
|
|
||||||
|
|
||||||
RowLayout {
|
ColumnLayout {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
Layout.fillHeight: true
|
||||||
|
|
||||||
ColumnLayout {
|
Text {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.fillHeight: true
|
width: 100
|
||||||
|
|
||||||
Text {
|
text: qsTr("Connected")
|
||||||
Layout.fillWidth: true
|
font.pixelSize: 20
|
||||||
width: 100
|
font.bold: true
|
||||||
|
wrapMode: Text.Wrap
|
||||||
text: qsTr("Connected")
|
|
||||||
font.pixelSize: 20
|
|
||||||
font.bold: true
|
|
||||||
wrapMode: Text.Wrap
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Image {
|
|
||||||
Layout.preferredWidth: parent.width / 3
|
|
||||||
Layout.preferredHeight: paintedHeight
|
|
||||||
|
|
||||||
fillMode: Image.PreserveAspectFit
|
|
||||||
|
|
||||||
source: "images/controller.png"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
WhiteBox {
|
Image {
|
||||||
Layout.fillWidth: true
|
Layout.preferredWidth: parent.width / 3
|
||||||
Layout.preferredHeight: gridLayout.implicitHeight + 20
|
Layout.preferredHeight: paintedHeight
|
||||||
|
|
||||||
GridLayout {
|
fillMode: Image.PreserveAspectFit
|
||||||
id: gridLayout
|
|
||||||
anchors.fill: parent
|
|
||||||
columns: 3
|
|
||||||
|
|
||||||
Repeater {
|
source: "images/controller.png"
|
||||||
model: 9
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Pane {
|
WhiteBox {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.preferredHeight: 50
|
Layout.preferredHeight: gridLayout.implicitHeight + 20
|
||||||
|
|
||||||
Component.onCompleted: {
|
GridLayout {
|
||||||
background.color = "grey"
|
id: gridLayout
|
||||||
background.radius = 5
|
anchors.fill: parent
|
||||||
}
|
columns: 3
|
||||||
|
|
||||||
Text {
|
Repeater {
|
||||||
anchors.fill: parent
|
model: 9
|
||||||
text: qsTr("Category")
|
|
||||||
}
|
Pane {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.preferredHeight: 50
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
background.color = "grey"
|
||||||
|
background.radius = 5
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
anchors.fill: parent
|
||||||
|
text: qsTr("Category")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
text: "Controller TODO"
|
text: "Controller TODO"
|
||||||
}
|
}
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
text: "Controller TODO"
|
text: "Controller TODO"
|
||||||
}
|
}
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
text: "Controller TODO"
|
text: "Controller TODO"
|
||||||
}
|
}
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
text: "Controller TODO"
|
text: "Controller TODO"
|
||||||
}
|
}
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
text: "Controller TODO"
|
text: "Controller TODO"
|
||||||
}
|
}
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
text: "Controller TODO"
|
text: "Controller TODO"
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,7 +1,34 @@
|
|||||||
import QtQuick
|
import QtQuick
|
||||||
|
import QtQuick.Controls
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import QtCharts
|
||||||
|
|
||||||
|
ScrollableTabPage {
|
||||||
|
id: page
|
||||||
|
|
||||||
Item {
|
|
||||||
function backPressed() {
|
function backPressed() {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Repeater {
|
||||||
|
model: 5
|
||||||
|
|
||||||
|
ChartView {
|
||||||
|
title: "Line"
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.preferredHeight: page.height * 0.75
|
||||||
|
antialiasing: true
|
||||||
|
|
||||||
|
LineSeries {
|
||||||
|
name: "LineSeries"
|
||||||
|
XYPoint { x: 0; y: 0 }
|
||||||
|
XYPoint { x: 1.1; y: 2.1 }
|
||||||
|
XYPoint { x: 1.9; y: 3.3 }
|
||||||
|
XYPoint { x: 2.1; y: 2.1 }
|
||||||
|
XYPoint { x: 2.9; y: 4.9 }
|
||||||
|
XYPoint { x: 3.4; y: 3.0 }
|
||||||
|
XYPoint { x: 4.1; y: 3.3 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
20
ScrollableTabPage.qml
Normal file
20
ScrollableTabPage.qml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
import QtQuick
|
||||||
|
import QtQuick.Controls
|
||||||
|
import QtQuick.Layouts
|
||||||
|
|
||||||
|
Flickable {
|
||||||
|
default property alias data: columnLayout.data
|
||||||
|
|
||||||
|
id: flickable
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.fillHeight: true
|
||||||
|
contentHeight: columnLayout.implicitHeight
|
||||||
|
clip: true
|
||||||
|
|
||||||
|
ColumnLayout {
|
||||||
|
id: columnLayout
|
||||||
|
width: flickable.width - 30
|
||||||
|
x: 15
|
||||||
|
spacing: 5
|
||||||
|
}
|
||||||
|
}
|
144
i18n/qml_de.ts
144
i18n/qml_de.ts
@@ -367,192 +367,192 @@
|
|||||||
<translation type="vanished">Geräte</translation>
|
<translation type="vanished">Geräte</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="59"/>
|
<location filename="../ChargerTabPage.qml" line="50"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="59"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="50"/>
|
||||||
<source>Internal error</source>
|
<source>Internal error</source>
|
||||||
<translation>Interner Fehler</translation>
|
<translation>Interner Fehler</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="60"/>
|
<location filename="../ChargerTabPage.qml" line="51"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="60"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="51"/>
|
||||||
<source>No car connected</source>
|
<source>No car connected</source>
|
||||||
<translation>Kein Auto angeschlossen</translation>
|
<translation>Kein Auto angeschlossen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="61"/>
|
<location filename="../ChargerTabPage.qml" line="52"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="61"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="52"/>
|
||||||
<source>Car is charging</source>
|
<source>Car is charging</source>
|
||||||
<translation>Auto wird geladen</translation>
|
<translation>Auto wird geladen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="62"/>
|
<location filename="../ChargerTabPage.qml" line="53"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="62"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="53"/>
|
||||||
<source>Connecting to your car...</source>
|
<source>Connecting to your car...</source>
|
||||||
<translation>Verbinde mit Auto...</translation>
|
<translation>Verbinde mit Auto...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="63"/>
|
<location filename="../ChargerTabPage.qml" line="54"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="63"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="54"/>
|
||||||
<source>Charging completed</source>
|
<source>Charging completed</source>
|
||||||
<translation>Ladevorgang abgeschlossen</translation>
|
<translation>Ladevorgang abgeschlossen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="64"/>
|
<location filename="../ChargerTabPage.qml" line="55"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="64"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="55"/>
|
||||||
<source>Unknown error %0</source>
|
<source>Unknown error %0</source>
|
||||||
<translation>Unbekannter Fehler %0</translation>
|
<translation>Unbekannter Fehler %0</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="95"/>
|
<location filename="../ChargerTabPage.qml" line="86"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="95"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="86"/>
|
||||||
<source>Plug in the cable to start charging your car</source>
|
<source>Plug in the cable to start charging your car</source>
|
||||||
<translation>Stecke das Kabel ein, um dein Auto aufzuladen</translation>
|
<translation>Stecke das Kabel ein, um dein Auto aufzuladen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="96"/>
|
<location filename="../ChargerTabPage.qml" line="87"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="96"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="87"/>
|
||||||
<source>Duration: %0</source>
|
<source>Duration: %0</source>
|
||||||
<translation>Dauer: %0</translation>
|
<translation>Dauer: %0</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="97"/>
|
<location filename="../ChargerTabPage.qml" line="88"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="97"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="88"/>
|
||||||
<source>Speed: %0</source>
|
<source>Speed: %0</source>
|
||||||
<translation>Geschwindigkeit: %0</translation>
|
<translation>Geschwindigkeit: %0</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="98"/>
|
<location filename="../ChargerTabPage.qml" line="89"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="98"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="89"/>
|
||||||
<source>Amount: %0</source>
|
<source>Amount: %0</source>
|
||||||
<translation>Menge: %0</translation>
|
<translation>Menge: %0</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="99"/>
|
<location filename="../ChargerTabPage.qml" line="90"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="99"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="90"/>
|
||||||
<source>Charger is connecting to your car, it usually takes a few seconds</source>
|
<source>Charger is connecting to your car, it usually takes a few seconds</source>
|
||||||
<translation>Der Charger stellt die Verbindung zu deinem Auto her, das dauert in der Regel ein paar Sekunden</translation>
|
<translation>Der Charger stellt die Verbindung zu deinem Auto her, das dauert in der Regel ein paar Sekunden</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="100"/>
|
<location filename="../ChargerTabPage.qml" line="91"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="100"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="91"/>
|
||||||
<source>Let's go-e :)</source>
|
<source>Let's go-e :)</source>
|
||||||
<translation>Let's go-e :)</translation>
|
<translation>Let's go-e :)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="108"/>
|
<location filename="../ChargerTabPage.qml" line="99"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="108"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="99"/>
|
||||||
<source>(api key doesnt exist)</source>
|
<source>(api key doesnt exist)</source>
|
||||||
<translation>(api key existiert nicht)</translation>
|
<translation>(api key existiert nicht)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="110"/>
|
<location filename="../ChargerTabPage.qml" line="101"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="110"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="101"/>
|
||||||
<source>(api key is null)</source>
|
<source>(api key is null)</source>
|
||||||
<translation>(api key is null)</translation>
|
<translation>(api key is null)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="112"/>
|
<location filename="../ChargerTabPage.qml" line="103"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="112"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="103"/>
|
||||||
<source>(api key is not an object)</source>
|
<source>(api key is not an object)</source>
|
||||||
<translation>(api key ist kein Objekt)</translation>
|
<translation>(api key ist kein Objekt)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="114"/>
|
<location filename="../ChargerTabPage.qml" line="105"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="114"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="105"/>
|
||||||
<source>(api key does not contain a type)</source>
|
<source>(api key does not contain a type)</source>
|
||||||
<translation>(api key beinhaltet keinen Typ)</translation>
|
<translation>(api key beinhaltet keinen Typ)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="122"/>
|
<location filename="../ChargerTabPage.qml" line="113"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="122"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="113"/>
|
||||||
<source>(api key has unknown type %0)</source>
|
<source>(api key has unknown type %0)</source>
|
||||||
<translation>(api key hat unbekannten Typ %0)</translation>
|
<translation>(api key hat unbekannten Typ %0)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="126"/>
|
<location filename="../ChargerTabPage.qml" line="117"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="126"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="117"/>
|
||||||
<source>%0 %1 %2</source>
|
<source>%0 %1 %2</source>
|
||||||
<translation>%0 %1 %2</translation>
|
<translation>%0 %1 %2</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="127"/>
|
<location filename="../ChargerTabPage.qml" line="118"/>
|
||||||
<location filename="../ChargerTabPage.qml" line="128"/>
|
<location filename="../ChargerTabPage.qml" line="119"/>
|
||||||
<location filename="../ChargerTabPage.qml" line="129"/>
|
<location filename="../ChargerTabPage.qml" line="120"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="127"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="118"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="128"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="119"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="129"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="120"/>
|
||||||
<source>%0 A</source>
|
<source>%0 A</source>
|
||||||
<translation>%0 A</translation>
|
<translation>%0 A</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="133"/>
|
<location filename="../ChargerTabPage.qml" line="124"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="133"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="124"/>
|
||||||
<source>%0 kWh</source>
|
<source>%0 kWh</source>
|
||||||
<translation>%0 kWh</translation>
|
<translation>%0 kWh</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="202"/>
|
<location filename="../ChargerTabPage.qml" line="193"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="202"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="193"/>
|
||||||
<source>Price limit</source>
|
<source>Price limit</source>
|
||||||
<translation>Preisgrenze</translation>
|
<translation>Preisgrenze</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="203"/>
|
<location filename="../ChargerTabPage.qml" line="194"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="203"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="194"/>
|
||||||
<source>%0 ct/kWh</source>
|
<source>%0 ct/kWh</source>
|
||||||
<translation>%0 ct/kWh</translation>
|
<translation>%0 ct/kWh</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="214"/>
|
<location filename="../ChargerTabPage.qml" line="205"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="214"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="205"/>
|
||||||
<source>By %0 with %1</source>
|
<source>By %0 with %1</source>
|
||||||
<translation>Bis %0 mit %1</translation>
|
<translation>Bis %0 mit %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="214"/>
|
<location filename="../ChargerTabPage.qml" line="205"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="214"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="205"/>
|
||||||
<source>%0 km</source>
|
<source>%0 km</source>
|
||||||
<translation>%0 km</translation>
|
<translation>%0 km</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="235"/>
|
<location filename="../ChargerTabPage.qml" line="226"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="235"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="226"/>
|
||||||
<source>Charging speed</source>
|
<source>Charging speed</source>
|
||||||
<translation>Ladegeschwindigkeit</translation>
|
<translation>Ladegeschwindigkeit</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="236"/>
|
<location filename="../ChargerTabPage.qml" line="227"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="236"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="227"/>
|
||||||
<source>%0 & %1</source>
|
<source>%0 & %1</source>
|
||||||
<translation>%0 & %1</translation>
|
<translation>%0 & %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="237"/>
|
<location filename="../ChargerTabPage.qml" line="228"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="237"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="228"/>
|
||||||
<source>%0 Ampere</source>
|
<source>%0 Ampere</source>
|
||||||
<translation>%0 Ampere</translation>
|
<translation>%0 Ampere</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="241"/>
|
<location filename="../ChargerTabPage.qml" line="232"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="241"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="232"/>
|
||||||
<source>Automatic phase selection</source>
|
<source>Automatic phase selection</source>
|
||||||
<translation>Automatische Phasenwahl</translation>
|
<translation>Automatische Phasenwahl</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="242"/>
|
<location filename="../ChargerTabPage.qml" line="233"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="242"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="233"/>
|
||||||
<source>1-phase</source>
|
<source>1-phase</source>
|
||||||
<translation>1-phasig</translation>
|
<translation>1-phasig</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="243"/>
|
<location filename="../ChargerTabPage.qml" line="234"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="243"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="234"/>
|
||||||
<source>3-phase</source>
|
<source>3-phase</source>
|
||||||
<translation>3-phasig</translation>
|
<translation>3-phasig</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="244"/>
|
<location filename="../ChargerTabPage.qml" line="235"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="244"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="235"/>
|
||||||
<source>Unknown phase selection (%0)</source>
|
<source>Unknown phase selection (%0)</source>
|
||||||
<translation>Unbekannte Phasen Selektion (%0)</translation>
|
<translation>Unbekannte Phasen Selektion (%0)</translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -569,8 +569,8 @@
|
|||||||
<translation type="vanished">Start</translation>
|
<translation type="vanished">Start</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ChargerTabPage.qml" line="213"/>
|
<location filename="../ChargerTabPage.qml" line="204"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="213"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ChargerTabPage.qml" line="204"/>
|
||||||
<source>Daily trip</source>
|
<source>Daily trip</source>
|
||||||
<translation>Daily trip</translation>
|
<translation>Daily trip</translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -852,14 +852,14 @@
|
|||||||
<translation type="vanished">Geräte</translation>
|
<translation type="vanished">Geräte</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ControllerTabPage.qml" line="51"/>
|
<location filename="../ControllerTabPage.qml" line="42"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ControllerTabPage.qml" line="51"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ControllerTabPage.qml" line="42"/>
|
||||||
<source>Connected</source>
|
<source>Connected</source>
|
||||||
<translation>Verbunden</translation>
|
<translation>Verbunden</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ControllerTabPage.qml" line="91"/>
|
<location filename="../ControllerTabPage.qml" line="82"/>
|
||||||
<location filename="../build/Desktop-Debug/EVChargerApp/ControllerTabPage.qml" line="91"/>
|
<location filename="../build/Desktop-Debug/EVChargerApp/ControllerTabPage.qml" line="82"/>
|
||||||
<source>Category</source>
|
<source>Category</source>
|
||||||
<translation>Kategorie</translation>
|
<translation>Kategorie</translation>
|
||||||
</message>
|
</message>
|
||||||
|
4
main.cpp
4
main.cpp
@@ -1,4 +1,4 @@
|
|||||||
#include <QGuiApplication>
|
#include <QApplication>
|
||||||
#include <QTranslator>
|
#include <QTranslator>
|
||||||
#include <QQmlApplicationEngine>
|
#include <QQmlApplicationEngine>
|
||||||
#include <QQmlContext>
|
#include <QQmlContext>
|
||||||
@@ -20,7 +20,7 @@ int main(int argc, char *argv[])
|
|||||||
QCoreApplication::setOrganizationDomain("brunner.ninja");
|
QCoreApplication::setOrganizationDomain("brunner.ninja");
|
||||||
QCoreApplication::setApplicationName("evcharger-app");
|
QCoreApplication::setApplicationName("evcharger-app");
|
||||||
|
|
||||||
QGuiApplication app(argc, argv);
|
QApplication app(argc, argv);
|
||||||
|
|
||||||
QTranslator translator;
|
QTranslator translator;
|
||||||
if (!translator.load(QLocale(), "qml", "_", ":/EVChargerApp/i18n/"))
|
if (!translator.load(QLocale(), "qml", "_", ":/EVChargerApp/i18n/"))
|
||||||
|
1
qmldir
1
qmldir
@@ -64,6 +64,7 @@ EVChargerApp 1.0 RebootPage.qml
|
|||||||
EVChargerApp 1.0 RequestStatusText.qml
|
EVChargerApp 1.0 RequestStatusText.qml
|
||||||
EVChargerApp 1.0 SchedulerDayPage.qml
|
EVChargerApp 1.0 SchedulerDayPage.qml
|
||||||
EVChargerApp 1.0 SchedulerPage.qml
|
EVChargerApp 1.0 SchedulerPage.qml
|
||||||
|
EVChargerApp 1.0 ScrollableTabPage.qml
|
||||||
EVChargerApp 1.0 SecurityPage.qml
|
EVChargerApp 1.0 SecurityPage.qml
|
||||||
EVChargerApp 1.0 SelectLogicModeItem.qml
|
EVChargerApp 1.0 SelectLogicModeItem.qml
|
||||||
EVChargerApp 1.0 SelectPhaseSwitchModeItem.qml
|
EVChargerApp 1.0 SelectPhaseSwitchModeItem.qml
|
||||||
|
Reference in New Issue
Block a user