From e1a02c2c917327c3dcce42a9a65a977341d2a349 Mon Sep 17 00:00:00 2001 From: kwindrem <58538395+kwindrem@users.noreply.github.com> Date: Tue, 5 Nov 2024 13:30:26 -0800 Subject: [PATCH] added support for v3.51 --- FileSets/PatchSource/main.qml-v3.51 | 608 ++++++++++++++++++ FileSets/PatchSource/main.qml-v3.51.orig | 390 +++++++++++ FileSets/PatchSource/main.qml-v3.51.patch | 462 +++++++++++++ FileSets/v3.10/ObjectAcConnection.qml | 2 +- FileSets/v3.10/OverviewAcValuesEnhanced.qml | 2 +- .../v3.10/OverviewGeneratorRelayEnhanced.qml | 2 +- FileSets/v3.10/TileRelay.qml | 2 +- FileSets/v3.11/ObjectAcConnection.qml | 2 +- FileSets/v3.11/OverviewAcValuesEnhanced.qml | 2 +- .../v3.11/OverviewGeneratorRelayEnhanced.qml | 2 +- FileSets/v3.11/TileRelay.qml | 2 +- FileSets/v3.12/ObjectAcConnection.qml | 2 +- FileSets/v3.12/OverviewAcValuesEnhanced.qml | 2 +- .../v3.12/OverviewGeneratorRelayEnhanced.qml | 2 +- FileSets/v3.12/TileRelay.qml | 2 +- FileSets/v3.13/ObjectAcConnection.qml | 2 +- FileSets/v3.13/OverviewAcValuesEnhanced.qml | 2 +- .../v3.13/OverviewGeneratorRelayEnhanced.qml | 2 +- FileSets/v3.13/TileRelay.qml | 2 +- FileSets/v3.14/ObjectAcConnection.qml | 2 +- FileSets/v3.14/OverviewAcValuesEnhanced.qml | 2 +- .../v3.14/OverviewGeneratorRelayEnhanced.qml | 2 +- FileSets/v3.14/TileRelay.qml | 2 +- FileSets/v3.20/ObjectAcConnection.qml | 2 +- FileSets/v3.20/OverviewAcValuesEnhanced.qml | 2 +- .../v3.20/OverviewGeneratorRelayEnhanced.qml | 2 +- FileSets/v3.20/TileRelay.qml | 2 +- FileSets/v3.21/ObjectAcConnection.qml | 2 +- FileSets/v3.21/OverviewAcValuesEnhanced.qml | 2 +- .../v3.21/OverviewGeneratorRelayEnhanced.qml | 2 +- FileSets/v3.21/TileRelay.qml | 2 +- FileSets/v3.22/ObjectAcConnection.qml | 2 +- FileSets/v3.22/OverviewAcValuesEnhanced.qml | 2 +- .../v3.22/OverviewGeneratorRelayEnhanced.qml | 2 +- FileSets/v3.22/TileRelay.qml | 2 +- FileSets/v3.30/ObjectAcConnection.qml | 2 +- FileSets/v3.30/OverviewAcValuesEnhanced.qml | 2 +- .../v3.30/OverviewGeneratorRelayEnhanced.qml | 2 +- FileSets/v3.30/TileRelay.qml | 2 +- FileSets/v3.31/ObjectAcConnection.qml | 2 +- FileSets/v3.31/OverviewAcValuesEnhanced.qml | 2 +- .../v3.31/OverviewGeneratorRelayEnhanced.qml | 2 +- FileSets/v3.31/TileRelay.qml | 2 +- FileSets/v3.33/ObjectAcConnection.qml | 2 +- FileSets/v3.33/OverviewAcValuesEnhanced.qml | 2 +- .../v3.33/OverviewGeneratorRelayEnhanced.qml | 2 +- FileSets/v3.33/TileRelay.qml | 2 +- FileSets/v3.34/ObjectAcConnection.qml | 2 +- FileSets/v3.34/OverviewAcValuesEnhanced.qml | 2 +- .../v3.34/OverviewGeneratorRelayEnhanced.qml | 2 +- FileSets/v3.34/TileRelay.qml | 2 +- FileSets/v3.40/DetailAcInput.qml | 2 +- FileSets/v3.40/DetailInverter.qml | 2 +- FileSets/v3.40/DetailLoadsCombined.qml | 2 +- FileSets/v3.40/DetailLoadsOnInput.qml | 2 +- FileSets/v3.40/DetailLoadsOnOutput.qml | 2 +- FileSets/v3.40/HubData.qml | 2 +- FileSets/v3.40/ObjectAcConnection.qml | 2 +- FileSets/v3.40/OverviewAcValuesEnhanced.qml | 2 +- FileSets/v3.40/OverviewFlowComplex.qml | 2 +- .../v3.40/OverviewGeneratorRelayEnhanced.qml | 2 +- FileSets/v3.40/OverviewGridParallel.qml | 2 +- FileSets/v3.40/OverviewHub.qml | 2 +- FileSets/v3.40/OverviewHubEnhanced.qml | 2 +- FileSets/v3.40/PowerGauge.qml | 2 +- FileSets/v3.40/TileRelay.qml | 2 +- FileSets/v3.41/DetailAcInput.qml | 2 +- FileSets/v3.41/DetailInverter.qml | 2 +- FileSets/v3.41/DetailLoadsCombined.qml | 2 +- FileSets/v3.41/DetailLoadsOnInput.qml | 2 +- FileSets/v3.41/DetailLoadsOnOutput.qml | 2 +- FileSets/v3.41/HubData.qml | 2 +- FileSets/v3.41/ObjectAcConnection.qml | 2 +- FileSets/v3.41/OverviewAcValuesEnhanced.qml | 2 +- FileSets/v3.41/OverviewFlowComplex.qml | 2 +- .../v3.41/OverviewGeneratorRelayEnhanced.qml | 2 +- FileSets/v3.41/OverviewGridParallel.qml | 2 +- FileSets/v3.41/OverviewHub.qml | 2 +- FileSets/v3.41/OverviewHubEnhanced.qml | 2 +- FileSets/v3.41/PowerGauge.qml | 2 +- FileSets/v3.41/TileRelay.qml | 2 +- FileSets/v3.50/DetailAcInput.qml | 2 +- FileSets/v3.50/DetailInverter.qml | 2 +- FileSets/v3.50/DetailLoadsCombined.qml | 2 +- FileSets/v3.50/DetailLoadsOnInput.qml | 2 +- FileSets/v3.50/DetailLoadsOnOutput.qml | 2 +- FileSets/v3.50/HubData.qml | 2 +- FileSets/v3.50/ObjectAcConnection.qml | 2 +- FileSets/v3.50/OverviewAcValuesEnhanced.qml | 2 +- FileSets/v3.50/OverviewFlowComplex.qml | 2 +- FileSets/v3.50/OverviewGeneratorEnhanced.qml | 2 +- .../v3.50/OverviewGeneratorRelayEnhanced.qml | 2 +- FileSets/v3.50/OverviewGridParallel.qml | 2 +- FileSets/v3.50/OverviewHub.qml | 2 +- FileSets/v3.50/OverviewHubEnhanced.qml | 2 +- FileSets/v3.50/OverviewMobileEnhanced.qml | 2 +- .../v3.50/OverviewTanksTempsDigInputs.qml | 2 +- FileSets/v3.50/PageSettingsGenerator.qml | 2 +- FileSets/v3.50/PageSettingsGuiMods.qml | 2 +- FileSets/v3.50/PageSettingsRelay.qml | 2 +- FileSets/v3.50/PowerGauge.qml | 2 +- FileSets/v3.50/TileDigIn.qml | 2 +- FileSets/v3.50/TileRelay.qml | 2 +- FileSets/v3.50/dbus_digitalinputs.py | 2 +- FileSets/v3.50/startstop.py | 2 +- FileSets/{v3.51~2 => v3.51}/COMPLETE | 0 FileSets/{v3.51~2 => v3.51}/DetailAcInput.qml | 0 .../{v3.51~2 => v3.51}/DetailAcInput.qml.orig | 0 .../{v3.51~2 => v3.51}/DetailInverter.qml | 0 .../DetailInverter.qml.orig | 0 .../DetailLoadsCombined.qml | 0 .../DetailLoadsCombined.qml.orig | 0 .../{v3.51~2 => v3.51}/DetailLoadsOnInput.qml | 0 .../DetailLoadsOnInput.qml.orig | 0 .../DetailLoadsOnOutput.qml | 0 .../DetailLoadsOnOutput.qml.orig | 0 FileSets/{v3.51~2 => v3.51}/HubData.qml | 0 FileSets/{v3.51~2 => v3.51}/HubData.qml.orig | 0 .../{v3.51~2 => v3.51}/ObjectAcConnection.qml | 0 .../ObjectAcConnection.qml.orig | 0 .../OverviewAcValuesEnhanced.qml | 0 .../OverviewAcValuesEnhanced.qml.orig | 0 .../OverviewFlowComplex.qml | 0 .../OverviewFlowComplex.qml.orig | 0 .../OverviewGeneratorEnhanced.qml | 0 .../OverviewGeneratorEnhanced.qml.orig | 0 .../OverviewGeneratorRelayEnhanced.qml | 0 .../OverviewGeneratorRelayEnhanced.qml.orig | 0 .../OverviewGridParallel.qml | 0 .../OverviewGridParallel.qml.orig | 0 FileSets/{v3.51~2 => v3.51}/OverviewHub.qml | 0 .../{v3.51~2 => v3.51}/OverviewHub.qml.orig | 0 .../OverviewHubEnhanced.qml | 0 .../OverviewHubEnhanced.qml.orig | 0 .../OverviewMobileEnhanced.qml | 0 .../OverviewMobileEnhanced.qml.orig | 0 .../OverviewTanksTempsDigInputs.qml | 0 .../OverviewTanksTempsDigInputs.qml.orig | 0 .../PageGenerator.qml.USE_ORIGINAL | 0 .../PageSettingsGenerator.qml | 0 .../PageSettingsGenerator.qml.orig | 0 .../PageSettingsGuiMods.qml | 0 .../PageSettingsGuiMods.qml.orig | 0 .../{v3.51~2 => v3.51}/PageSettingsRelay.qml | 0 .../PageSettingsRelay.qml.orig | 0 FileSets/{v3.51~2 => v3.51}/PowerGauge.qml | 0 .../{v3.51~2 => v3.51}/PowerGauge.qml.orig | 0 FileSets/{v3.51~2 => v3.51}/TileDigIn.qml | 0 .../{v3.51~2 => v3.51}/TileDigIn.qml.orig | 0 FileSets/{v3.51~2 => v3.51}/TileRelay.qml | 0 .../{v3.51~2 => v3.51}/TileRelay.qml.orig | 0 .../{v3.51~2 => v3.51}/dbus_digitalinputs.py | 0 .../dbus_digitalinputs.py.orig | 0 FileSets/{v3.51~2 => v3.51}/startstop.py | 0 FileSets/{v3.51~2 => v3.51}/startstop.py.orig | 0 changes | 3 + version | 2 +- 157 files changed, 1566 insertions(+), 103 deletions(-) create mode 100644 FileSets/PatchSource/main.qml-v3.51 create mode 100644 FileSets/PatchSource/main.qml-v3.51.orig create mode 100644 FileSets/PatchSource/main.qml-v3.51.patch rename FileSets/{v3.51~2 => v3.51}/COMPLETE (100%) rename FileSets/{v3.51~2 => v3.51}/DetailAcInput.qml (100%) rename FileSets/{v3.51~2 => v3.51}/DetailAcInput.qml.orig (100%) rename FileSets/{v3.51~2 => v3.51}/DetailInverter.qml (100%) rename FileSets/{v3.51~2 => v3.51}/DetailInverter.qml.orig (100%) rename FileSets/{v3.51~2 => v3.51}/DetailLoadsCombined.qml (100%) rename FileSets/{v3.51~2 => v3.51}/DetailLoadsCombined.qml.orig (100%) rename FileSets/{v3.51~2 => v3.51}/DetailLoadsOnInput.qml (100%) rename FileSets/{v3.51~2 => v3.51}/DetailLoadsOnInput.qml.orig (100%) rename FileSets/{v3.51~2 => v3.51}/DetailLoadsOnOutput.qml (100%) rename FileSets/{v3.51~2 => v3.51}/DetailLoadsOnOutput.qml.orig (100%) rename FileSets/{v3.51~2 => v3.51}/HubData.qml (100%) rename FileSets/{v3.51~2 => v3.51}/HubData.qml.orig (100%) rename FileSets/{v3.51~2 => v3.51}/ObjectAcConnection.qml (100%) rename FileSets/{v3.51~2 => v3.51}/ObjectAcConnection.qml.orig (100%) rename FileSets/{v3.51~2 => v3.51}/OverviewAcValuesEnhanced.qml (100%) rename FileSets/{v3.51~2 => v3.51}/OverviewAcValuesEnhanced.qml.orig (100%) rename FileSets/{v3.51~2 => v3.51}/OverviewFlowComplex.qml (100%) rename FileSets/{v3.51~2 => v3.51}/OverviewFlowComplex.qml.orig (100%) rename FileSets/{v3.51~2 => v3.51}/OverviewGeneratorEnhanced.qml (100%) rename FileSets/{v3.51~2 => v3.51}/OverviewGeneratorEnhanced.qml.orig (100%) rename FileSets/{v3.51~2 => v3.51}/OverviewGeneratorRelayEnhanced.qml (100%) rename FileSets/{v3.51~2 => v3.51}/OverviewGeneratorRelayEnhanced.qml.orig (100%) rename FileSets/{v3.51~2 => v3.51}/OverviewGridParallel.qml (100%) rename FileSets/{v3.51~2 => v3.51}/OverviewGridParallel.qml.orig (100%) rename FileSets/{v3.51~2 => v3.51}/OverviewHub.qml (100%) rename FileSets/{v3.51~2 => v3.51}/OverviewHub.qml.orig (100%) rename FileSets/{v3.51~2 => v3.51}/OverviewHubEnhanced.qml (100%) rename FileSets/{v3.51~2 => v3.51}/OverviewHubEnhanced.qml.orig (100%) rename FileSets/{v3.51~2 => v3.51}/OverviewMobileEnhanced.qml (100%) rename FileSets/{v3.51~2 => v3.51}/OverviewMobileEnhanced.qml.orig (100%) rename FileSets/{v3.51~2 => v3.51}/OverviewTanksTempsDigInputs.qml (100%) rename FileSets/{v3.51~2 => v3.51}/OverviewTanksTempsDigInputs.qml.orig (100%) rename FileSets/{v3.51~2 => v3.51}/PageGenerator.qml.USE_ORIGINAL (100%) rename FileSets/{v3.51~2 => v3.51}/PageSettingsGenerator.qml (100%) rename FileSets/{v3.51~2 => v3.51}/PageSettingsGenerator.qml.orig (100%) rename FileSets/{v3.51~2 => v3.51}/PageSettingsGuiMods.qml (100%) rename FileSets/{v3.51~2 => v3.51}/PageSettingsGuiMods.qml.orig (100%) rename FileSets/{v3.51~2 => v3.51}/PageSettingsRelay.qml (100%) rename FileSets/{v3.51~2 => v3.51}/PageSettingsRelay.qml.orig (100%) rename FileSets/{v3.51~2 => v3.51}/PowerGauge.qml (100%) rename FileSets/{v3.51~2 => v3.51}/PowerGauge.qml.orig (100%) rename FileSets/{v3.51~2 => v3.51}/TileDigIn.qml (100%) rename FileSets/{v3.51~2 => v3.51}/TileDigIn.qml.orig (100%) rename FileSets/{v3.51~2 => v3.51}/TileRelay.qml (100%) rename FileSets/{v3.51~2 => v3.51}/TileRelay.qml.orig (100%) rename FileSets/{v3.51~2 => v3.51}/dbus_digitalinputs.py (100%) rename FileSets/{v3.51~2 => v3.51}/dbus_digitalinputs.py.orig (100%) rename FileSets/{v3.51~2 => v3.51}/startstop.py (100%) rename FileSets/{v3.51~2 => v3.51}/startstop.py.orig (100%) diff --git a/FileSets/PatchSource/main.qml-v3.51 b/FileSets/PatchSource/main.qml-v3.51 new file mode 100644 index 00000000..5ad419f3 --- /dev/null +++ b/FileSets/PatchSource/main.qml-v3.51 @@ -0,0 +1,608 @@ +//////// Modified to hide the OverviewTiles page +//////// Modified to substitute flow overview pages + +import QtQuick 1.1 + +import Qt.labs.components.native 1.0 +import com.victron.velib 1.0 +import "utils.js" as Utils + +PageStackWindow { + id: rootWindow + + gpsConnected: gpsFix.value === 1 + onCompletedChanged: { checkAlarm(); showNewUiPopup() } + initialPage: PageMain {} + + property VeQuickItem gpsService: VeQuickItem { uid: "dbus/com.victronenergy.system/GpsService" } + property VeQuickItem gpsFix: VeQuickItem { uid: Utils.path("dbus/", gpsService.value, "/Fix") } + property bool completed: false + property bool alarm: alarmNotification.valid ? alarmNotification.value : 0 + property bool showAlert: alertNotification.valid ? alertNotification.value : 0 +//////// added for GuiMods flow pages + property bool overviewsLoaded: defaultOverview.valid && generatorOverview.valid && mobileOverview.valid && tanksOverview.valid && startWithMenu.valid && mobileOverviewEnhanced.valid && guiModsFlowOverview.valid && generatorOverviewEnhanced.valid + property string bindPrefix: "com.victronenergy.settings" + + property bool isNotificationPage: pageStack.currentPage && pageStack.currentPage.title === qsTr("Notifications") + property bool isOverviewPage: pageStack.currentPage && pageStack.currentPage.model === overviewModel; + property bool isOfflineFwUpdatePage: pageStack.currentPage && pageStack.currentPage.objectName === "offlineFwUpdatePage"; + + property bool hasVebusEss: ['ESS', 'Hub-4'].indexOf(theSystem.systemType.value) > -1 + property bool showInputLoads: theSystem.acInLoad.power.valid && (hasVebusEss ? (theSystem.hasGridMeter && withoutGridMeter.value === 0) : theSystem.hasGridMeter) + property int newUiAnnouncementVersion: 2 // Increase to make the popup appear again + +//////// modified for GuiMods pages + property string currentHubOverview: "OverviewHub.qml" + property string currentMobileOverview: "" + property string currentGeneratorOverview: "" + + // Keep track of the current view (menu/overview) to show as default next time the + // CCGX is restarted + onIsOverviewPageChanged: startWithMenu.setValue(isOverviewPage ? 0 : 1) + + // Add the correct OverviewHub page +//////// modified for OverviewHubEnhanced page + onShowInputLoadsChanged: selectHubOverview () + + VBusItem + { + id: guiModsFlowOverview + bind: "com.victronenergy.settings/Settings/GuiMods/FlowOverview" + onValueChanged: selectHubOverview () + } + +////// GuiMods — DarkMode + property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } + property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 + +////// GuiMods — DarkMode + Rectangle { + anchors + { + fill: parent + } + color: !darkMode ? "transparent" : "#202020" + z: -1 + } + +////// GuiMods - base a new hub selection on the hub type and the enhanced flow overview flag + function selectHubOverview () + { + var newHubOverview = currentHubOverview + // Victron stock overviews with automatic selection + if (guiModsFlowOverview.value == 0) + { + if (showInputLoads) + newHubOverview = "OverviewGridParallel.qml" + else + newHubOverview = "OverviewHub.qml" + } + // Gui Mods simple flow + else if (guiModsFlowOverview.value === 1) + { + newHubOverview = "OverviewHubEnhanced.qml" + } + // Gui Mods complex flow (AC coupled or DC coupled) + else + { + newHubOverview = "OverviewFlowComplex.qml" + } + + if (newHubOverview != currentHubOverview) + { + replaceOverview(currentHubOverview, newHubOverview); + currentHubOverview = newHubOverview + } + } + + VBusItem + { + id: generatorOverviewEnhanced + bind: "com.victronenergy.settings/Settings/GuiMods/UseEnhancedGeneratorOverview" + onValueChanged: selectGeneratorOverview () + } + + VBusItem { + id: generatorOverview + bind: "com.victronenergy.settings/Settings/Relay/Function" + onValueChanged: selectGeneratorOverview () + } +////// end GuiMods + + VBusItem { + bind: "com.victronenergy.generator.startstop1/GensetProductId" + onValueChanged: { + // Show specific overview for FischerPanda + extraOverview("OverviewGeneratorFp.qml", value === 0xB040) + + // Show generic overview for ComAp and DSE + extraOverview("OverviewGeneratorOther.qml", + [0xB044, 0xB046, 0xB048, 0xB049].indexOf(value) > -1) + + // Switch to FP overview in case it is the default one + if (isOverviewPage) { + pageStack.currentPage.currentIndex = getDefaultOverviewIndex() + } + } + } + +////// GuiMods + function selectGeneratorOverview () + { + var newGeneratorOverview + if (generatorOverview.value === 1) + { + if (generatorOverviewEnhanced.value === 1) + newGeneratorOverview = "OverviewGeneratorRelayEnhanced.qml" + else + newGeneratorOverview = "OverviewGeneratorRelay.qml" + if (currentGeneratorOverview === "") + extraOverview (newGeneratorOverview, true) + else + replaceOverview (currentGeneratorOverview, newGeneratorOverview) + currentGeneratorOverview = newGeneratorOverview + } + else + { + // hide existing generator overview if any + if (currentGeneratorOverview != "") + { + extraOverview (currentGeneratorOverview, false) + currentGeneratorOverview = "" + } + } + } + +//////// GuiMods handle OverviewMobileEnhanced page + VBusItem + { + id: mobileOverview + bind: "com.victronenergy.settings/Settings/Gui/MobileOverview" + onValueChanged: selectMobileOverview () + } +////// GuiMods + VBusItem + { + id: mobileOverviewEnhanced + bind: "com.victronenergy.settings/Settings/GuiMods/UseEnhancedMobileOverview" + onValueChanged: selectMobileOverview () + } + +////// GuiMods + // base a new mobile overview selection on the the mobile overview and enhanced mobile overview flags + function selectMobileOverview () + { + var newMobileOverview + if (mobileOverview.value === 1) + { + if (mobileOverviewEnhanced.value === 1) + newMobileOverview = "OverviewMobileEnhanced.qml" + else + newMobileOverview = "OverviewMobile.qml" + if (currentMobileOverview === "") + extraOverview (newMobileOverview, true) + else + replaceOverview (currentMobileOverview, newMobileOverview) + currentMobileOverview = newMobileOverview + } + else + { + // hide existing mobile overview if any + if (currentMobileOverview != "") + { + extraOverview (currentMobileOverview, false) + currentMobileOverview = "" + } + } + } + +////// GuiMods - show/hide the OverviewTiles page + VBusItem + { + id: showOverviewTiles + bind: "com.victronenergy.settings/Settings/GuiMods/ShowTileOverview" + onValueChanged: extraOverview ("OverviewTiles.qml", value === 1) + } + +////// GuiMods - show/hide the OverviewRelays page + VBusItem { + id: showOverviewRelays + bind: "com.victronenergy.settings/Settings/GuiMods/ShowRelayOverview" + onValueChanged: extraOverview ("OverviewRelays.qml", value === 1) + } + +////// GuiMods - show/hide the Overview Tanks/Temps/Digital Inputs page + VBusItem { + id: showOverviewTanksTemps + bind: "com.victronenergy.settings/Settings/GuiMods/ShowTanksTempsDigIn" + onValueChanged: extraOverview ("OverviewTanksTempsDigInputs.qml", value === 1) + } + + VBusItem { + id: tanksOverview + bind: "com.victronenergy.settings/Settings/Gui/TanksOverview" + onValueChanged:{ + extraOverview("OverviewTanks.qml", value === 1) + } + } + + VBusItem { + id: startWithMenu + bind: "com.victronenergy.settings/Settings/Gui/StartWithMenuView" + } + + VBusItem { + id: withoutGridMeter + bind: "com.victronenergy.settings/Settings/CGwacs/RunWithoutGridMeter" + } + + + VBusItem { + id: defaultOverview + bind: "com.victronenergy.settings/Settings/Gui/DefaultOverview" + } + + VBusItem { + id: touchEnabled + bind: "com.victronenergy.settings/Settings/Gui/TouchEnabled" + onValueChanged: { + if (completed && value !== undefined) + toast.createToast(value ? qsTr("Touch input on") : qsTr("Touch input off"), 3000) + } + } + + VBusItem { + id: alertNotification + bind: "com.victronenergy.platform/Notifications/Alert" + } + + VBusItem { + id: alarmNotification + bind: "com.victronenergy.platform/Notifications/Alarm" + } + + VBusItem { + id: newUiAnnouncement + bind: "com.victronenergy.settings/Settings/Gui/NewGuiLastAnnouncement" + } + + // Note: finding a firmware image on the storage device is error 4 for vrm storage + // since it should not be used for logging. That fact is used here to determine if + // there is a firmware image. + Connections { + target: storageEvents + onVrmStorageError: { + if (error === 4) { + setTopPage(offlineFwUpdates) + } + } + } + + Connections { + target: vePlatform + onMouseRejected: toast.createToast(qsTr("Touch input disabled"), 1000) + } + + onAlarmChanged: { + if (completed) + checkAlarm() + } + + // always keep track of system information + HubData { + id: theSystem + } + + // note: used for leaving the overviews as well + function backToMainMenu() + { + pageStack.pop(initialPage); + } + + Toast { + id: toast + transform: Scale { + xScale: screen.scaleX + yScale: screen.scaleY + origin.x: toast.width / 2 + origin.y: toast.height / 2 + } + } + + SignalToaster {} + + ToolbarHandlerPages { + id: mainToolbarHandler + isDefault: true + } + + ToolBarLayout { + id: mbTools + height: parent.height + +//// GuiMods - DarkMode + Row + { + spacing: 0 + anchors.fill: parent + Item { + id: pagesItem + anchors.verticalCenter: parent.verticalCenter + height: mbTools.height + width: 170 + + MouseArea { + anchors.fill: parent + onClicked: { + if (pageStack.currentPage) + pageStack.currentPage.toolbarHandler.leftAction(true) + } + } + + Row { + anchors.verticalCenter: parent.verticalCenter + anchors.horizontalCenter: parent.horizontalCenter + + MbIcon { + anchors.verticalCenter: parent.verticalCenter + iconId: pageStack.currentPage ? pageStack.currentPage.leftIcon : "" + } + + Text { + anchors.verticalCenter: parent.verticalCenter + text: pageStack.currentPage ? pageStack.currentPage.leftText : "" + color: "white" + font.bold: true + font.pixelSize: 16 + } + } + } + + Item { + anchors.verticalCenter: parent.verticalCenter + height: mbTools.height + width: mbTools.width - pagesItem.width - menusItem.width - centerScrollIndicator.width + + MouseArea + { + anchors.fill: parent + onClicked: + { + if (darkModeItem.valid) + darkModeItem.setValue (! darkMode) + } + } + + Text + { + anchors.fill: parent + horizontalAlignment: Text.AlignHCenter + text: qsTr ("change to") + "\n" + (darkMode ? qsTr ("Light mode") : qsTr ("Dark mode")) + color: "white" + font.bold: true + font.pixelSize: 12 + visible: darkModeItem.valid + } + } + Item + { + id: centerScrollIndicator + anchors.verticalCenter: parent.verticalCenter + height: mbTools.height + width: 20 + MbIcon { + anchors.verticalCenter: parent.verticalCenter + iconId: pageStack.currentPage ? pageStack.currentPage.scrollIndicator : "" + } + } + + Item { + id: menusItem + anchors.verticalCenter: parent.verticalCenter + height: mbTools.height + width: pagesItem.width + + MouseArea { + anchors.fill: parent + onClicked: { + if (pageStack.currentPage) + pageStack.currentPage.toolbarHandler.rightAction(true) + } + } + + Row { + anchors.centerIn: parent + + MbIcon { + iconId: pageStack.currentPage ? pageStack.currentPage.rightIcon : "" + anchors.verticalCenter: parent.verticalCenter + } + + Text { + text: pageStack.currentPage ? pageStack.currentPage.rightText : "" + anchors.verticalCenter: parent.verticalCenter + color: "white" + font.bold: true + font.pixelSize: 16 + } + } + } + } + } + + Component.onCompleted: { + completed = true + } + + ListModel { + id: overviewModel + ListElement { + pageSource: "OverviewHub.qml" + } +//// GuiMods - (commented out) -- added dynamically above +// ListElement { +// pageSource: "OverviewTiles.qml" +// } + } + + Component { + id: overviewComponent + PageFlow { + // Display default overview when loaded + defaultIndex: getDefaultOverviewIndex() + // Store the current overview page as default + onCurrentIndexChanged: if (active) defaultOverview.setValue(overviewModel.get(currentIndex).pageSource.replace(".qml", "")) + model: overviewModel + } + } + + // When all the related settings items are valid, show the overview page if was the last oppened page + // before restarting + Timer { + interval: 2000 + running: completed && overviewsLoaded && startWithMenu.valid + onTriggered: if (startWithMenu.value === 0) showOverview() + } + + Timer { + id: newUiPopupTimer + interval: 10000 + running: false + onTriggered: + { +//// GuiMods - modified for OverviewGridParallelEnhanced page + selectHubOverview () + if (startWithMenu.value === 0) showOverview() + } + } + + function showNewUiPopup() + { + var announce = newUiAnnouncement.value < newUiAnnouncementVersion + if (announce && vePlatform.isGuiv2Installed() && vePlatform.displayPresent()) { + newUiPopupTimer.start() + } + } + + function getDefaultOverviewIndex() + { + if(!defaultOverview.valid) + return 0 + for (var i = 0; i < overviewModel.count; i++){ + if (overviewModel.get(i).pageSource.replace(".qml", "") === defaultOverview.value) { + return i + } + } + return 0 + } + + Component { + id: noticationsComponent + PageNotifications {} + } + + Component { + id: offlineFwUpdates + PageSettingsFirmwareOffline { checkOnCompleted: true} + } + + // Add or remove extra overviews. for example, generator overview + // shouldn't be shown if the start/stop functionality is not enabled. + // Index parameter is optional, usefull to keep an order. + function extraOverview(name, show, index) + { + var i = 0 + if (show) { + if (index !== undefined) { + if (overviewModel.get(index).pageSource === name) + return + // First append the page + overviewModel.append({"pageSource": name}) + // Then move all the pages behind index + overviewModel.move(index, overviewModel.count - 2, overviewModel.count - 2) + } else { + for (i = 0; i < overviewModel.count; i++) + if (overviewModel.get(i).pageSource === name) + // Don't append if already exists + return + overviewModel.append({"pageSource": name}) + } + } else { + for (i = 0; i < overviewModel.count; i++) + if (overviewModel.get(i).pageSource === name) + overviewModel.remove(i) + } + } + +//// GuiMods - Modified to append page if oldPage not found + function replaceOverview(oldPage, newPage) + { + for (var i = 0; i < overviewModel.count; i++) + { + if (overviewModel.get(i).pageSource === oldPage) + { + overviewModel.get(i).pageSource = newPage + return + } + } + // here if oldPage wasn't found -- append the new page + overviewModel.append({"pageSource": newPage}) + } + + // Central mover for the ball animation on the overviews + // Instead of using a timer per line, using a central one + // reduces the CPU usage a little bit and makes the animations + // smoother. + Timer { + id: mover + property double pos: _counter / _loops + property int _counter + property int _loops: 13 + + interval: 100 + running: true + repeat: true + onTriggered: if (_counter >= (_loops - 1)) _counter = 0; else _counter++ + } + + // If an overview or notifications is active, the new page will replace it + // instead to be pushed. This way we prevent an unwanted stackpage depth + // increment everytime another page wants to be on top. + function setTopPage(page) + { + if (touchEnabled.valid && !touchEnabled.value) + return + + if (isNotificationPage || isOverviewPage || isOfflineFwUpdatePage) + rootWindow.pageStack.replace(page); + else + rootWindow.pageStack.push(page); + } + + function spuriousKeyPress() + { + return !pageStack.currentPage || !pageStack.currentPage.active + } + + function showOverview() + { + if (spuriousKeyPress() || isOverviewPage) + return + setTopPage(overviewComponent) + } + + function showPageNotifications() + { + if (spuriousKeyPress() || isNotificationPage) + return + setTopPage(noticationsComponent) + } + + function checkAlarm() + { + if (alarm) + showPageNotifications() + } + + FirmwareUpdate { id: firmwareUpdate } +} diff --git a/FileSets/PatchSource/main.qml-v3.51.orig b/FileSets/PatchSource/main.qml-v3.51.orig new file mode 100644 index 00000000..751bc77c --- /dev/null +++ b/FileSets/PatchSource/main.qml-v3.51.orig @@ -0,0 +1,390 @@ +import QtQuick 1.1 + +import Qt.labs.components.native 1.0 +import com.victron.velib 1.0 +import "utils.js" as Utils + +PageStackWindow { + id: rootWindow + + gpsConnected: gpsFix.value === 1 + onCompletedChanged: checkAlarm() + initialPage: PageMain {} + + property VeQuickItem gpsService: VeQuickItem { uid: "dbus/com.victronenergy.system/GpsService" } + property VeQuickItem gpsFix: VeQuickItem { uid: Utils.path("dbus/", gpsService.value, "/Fix") } + property bool completed: false + property bool alarm: alarmNotification.valid ? alarmNotification.value : 0 + property bool showAlert: alertNotification.valid ? alertNotification.value : 0 + property bool overviewsLoaded: defaultOverview.valid && generatorOverview.valid && mobileOverview.valid && tanksOverview.valid && startWithMenu.valid + property string bindPrefix: "com.victronenergy.settings" + + property bool isNotificationPage: pageStack.currentPage && pageStack.currentPage.title === qsTr("Notifications") + property bool isOverviewPage: pageStack.currentPage && pageStack.currentPage.model === overviewModel; + property bool isOfflineFwUpdatePage: pageStack.currentPage && pageStack.currentPage.objectName === "offlineFwUpdatePage"; + + property bool hasVebusEss: ['ESS', 'Hub-4'].indexOf(theSystem.systemType.value) > -1 + property bool showInputLoads: theSystem.acInLoad.power.valid && (hasVebusEss ? (theSystem.hasGridMeter && withoutGridMeter.value === 0) : theSystem.hasGridMeter) + + // Keep track of the current view (menu/overview) to show as default next time the + // CCGX is restarted + onIsOverviewPageChanged: startWithMenu.setValue(isOverviewPage ? 0 : 1) + + // Add the correct OverviewHub page + onShowInputLoadsChanged: { + if (showInputLoads) { + replaceOverview("OverviewHub.qml", "OverviewGridParallel.qml"); + } else { + replaceOverview("OverviewGridParallel.qml", "OverviewHub.qml"); + } + } + + VBusItem { + id: generatorOverview + bind: "com.victronenergy.settings/Settings/Relay/Function" + onValueChanged: extraOverview("OverviewGeneratorRelay.qml", value === 1) + } + + VBusItem { + bind: "com.victronenergy.generator.startstop1/GensetProductId" + onValueChanged: { + // Show specific overview for FischerPanda + extraOverview("OverviewGeneratorFp.qml", value === 0xB040) + + // Show generic overview for ComAp and DSE + extraOverview("OverviewGeneratorOther.qml", + [0xB044, 0xB046, 0xB048, 0xB049].indexOf(value) > -1) + + // Switch to FP overview in case it is the default one + if (isOverviewPage) { + pageStack.currentPage.currentIndex = getDefaultOverviewIndex() + } + } + } + + VBusItem { + id: mobileOverview + bind: "com.victronenergy.settings/Settings/Gui/MobileOverview" + onValueChanged:{ + extraOverview("OverviewMobile.qml", value === 1) + } + } + VBusItem { + id: tanksOverview + bind: "com.victronenergy.settings/Settings/Gui/TanksOverview" + onValueChanged:{ + extraOverview("OverviewTanks.qml", value === 1) + } + } + + VBusItem { + id: startWithMenu + bind: "com.victronenergy.settings/Settings/Gui/StartWithMenuView" + } + + VBusItem { + id: withoutGridMeter + bind: "com.victronenergy.settings/Settings/CGwacs/RunWithoutGridMeter" + } + + + VBusItem { + id: defaultOverview + bind: "com.victronenergy.settings/Settings/Gui/DefaultOverview" + } + + VBusItem { + id: touchEnabled + bind: "com.victronenergy.settings/Settings/Gui/TouchEnabled" + onValueChanged: { + if (completed && value !== undefined) + toast.createToast(value ? qsTr("Touch input on") : qsTr("Touch input off"), 3000) + } + } + + VBusItem { + id: alertNotification + bind: "com.victronenergy.platform/Notifications/Alert" + } + + VBusItem { + id: alarmNotification + bind: "com.victronenergy.platform/Notifications/Alarm" + } + + // Note: finding a firmware image on the storage device is error 4 for vrm storage + // since it should not be used for logging. That fact is used here to determine if + // there is a firmware image. + Connections { + target: storageEvents + onVrmStorageError: { + if (error === 4) { + setTopPage(offlineFwUpdates) + } + } + } + + Connections { + target: vePlatform + onMouseRejected: toast.createToast(qsTr("Touch input disabled"), 1000) + } + + onAlarmChanged: { + if (completed) + checkAlarm() + } + + // always keep track of system information + HubData { + id: theSystem + } + + // note: used for leaving the overviews as well + function backToMainMenu() + { + pageStack.pop(initialPage); + } + + Toast { + id: toast + transform: Scale { + xScale: screen.scaleX + yScale: screen.scaleY + origin.x: toast.width / 2 + origin.y: toast.height / 2 + } + } + + SignalToaster {} + + ToolbarHandlerPages { + id: mainToolbarHandler + isDefault: true + } + + ToolBarLayout { + id: mbTools + height: parent.height + + Item { + anchors.verticalCenter: parent.verticalCenter + anchors.left: mbTools.left + height: mbTools.height + width: 200 + + MouseArea { + anchors.fill: parent + onClicked: { + if (pageStack.currentPage) + pageStack.currentPage.toolbarHandler.leftAction(true) + } + } + + Row { + anchors.centerIn: parent + + MbIcon { + anchors.verticalCenter: parent.verticalCenter + iconId: pageStack.currentPage ? pageStack.currentPage.leftIcon : "" + } + + Text { + anchors.verticalCenter: parent.verticalCenter + text: pageStack.currentPage ? pageStack.currentPage.leftText : "" + color: "white" + font.bold: true + font.pixelSize: 16 + } + } + } + + MbIcon { + id: centerScrollIndicator + + anchors { + horizontalCenter: parent.horizontalCenter + verticalCenter: mbTools.verticalCenter + } + iconId: pageStack.currentPage ? pageStack.currentPage.scrollIndicator : "" + } + + Item { + anchors.verticalCenter: parent.verticalCenter + height: mbTools.height + anchors.right: mbTools.right + width: 200 + + MouseArea { + anchors.fill: parent + onClicked: { + if (pageStack.currentPage) + pageStack.currentPage.toolbarHandler.rightAction(true) + } + } + + Row { + anchors.centerIn: parent + + MbIcon { + iconId: pageStack.currentPage ? pageStack.currentPage.rightIcon : "" + anchors.verticalCenter: parent.verticalCenter + } + + Text { + text: pageStack.currentPage ? pageStack.currentPage.rightText : "" + anchors.verticalCenter: parent.verticalCenter + color: "white" + font.bold: true + font.pixelSize: 16 + } + } + } + } + + Component.onCompleted: { + completed = true + } + + ListModel { + id: overviewModel + ListElement { + pageSource: "OverviewHub.qml" + } + ListElement { + pageSource: "OverviewTiles.qml" + } + } + + Component { + id: overviewComponent + PageFlow { + // Display default overview when loaded + defaultIndex: getDefaultOverviewIndex() + // Store the current overview page as default + onCurrentIndexChanged: if (active) defaultOverview.setValue(overviewModel.get(currentIndex).pageSource.replace(".qml", "")) + model: overviewModel + } + } + + // When all the related settings items are valid, show the overview page if was the last oppened page + // before restarting + Timer { + interval: 2000 + running: completed && overviewsLoaded && startWithMenu.valid + onTriggered: if (startWithMenu.value === 0) showOverview() + } + + function getDefaultOverviewIndex() + { + if(!defaultOverview.valid) + return 0 + for (var i = 0; i < overviewModel.count; i++){ + if (overviewModel.get(i).pageSource.replace(".qml", "") === defaultOverview.value) { + return i + } + } + return 0 + } + + Component { + id: noticationsComponent + PageNotifications {} + } + + Component { + id: offlineFwUpdates + PageSettingsFirmwareOffline { checkOnCompleted: true} + } + + // Add or remove extra overviews. for example, generator overview + // shouldn't be shown if the start/stop functionality is not enabled. + // Index parameter is optional, usefull to keep an order. + function extraOverview(name, show, index) + { + var i = 0 + if (show) { + if (index !== undefined) { + if (overviewModel.get(index).pageSource === name) + return + // First append the page + overviewModel.append({"pageSource": name}) + // Then move all the pages behind index + overviewModel.move(index, overviewModel.count - 2, overviewModel.count - 2) + } else { + for (i = 0; i < overviewModel.count; i++) + if (overviewModel.get(i).pageSource === name) + // Don't append if already exists + return + overviewModel.append({"pageSource": name}) + } + } else { + for (i = 0; i < overviewModel.count; i++) + if (overviewModel.get(i).pageSource === name) + overviewModel.remove(i) + } + } + + function replaceOverview(oldPage, newPage) + { + for (var i = 0; i < overviewModel.count; i++) + if (overviewModel.get(i).pageSource === oldPage) + overviewModel.get(i).pageSource = newPage + } + + // Central mover for the ball animation on the overviews + // Instead of using a timer per line, using a central one + // reduces the CPU usage a little bit and makes the animations + // smoother. + Timer { + id: mover + property double pos: _counter / _loops + property int _counter + property int _loops: 13 + + interval: 100 + running: true + repeat: true + onTriggered: if (_counter >= (_loops - 1)) _counter = 0; else _counter++ + } + + // If an overview or notifications is active, the new page will replace it + // instead to be pushed. This way we prevent an unwanted stackpage depth + // increment everytime another page wants to be on top. + function setTopPage(page) + { + if (touchEnabled.valid && !touchEnabled.value) + return + + if (isNotificationPage || isOverviewPage || isOfflineFwUpdatePage) + rootWindow.pageStack.replace(page); + else + rootWindow.pageStack.push(page); + } + + function spuriousKeyPress() + { + return !pageStack.currentPage || !pageStack.currentPage.active + } + + function showOverview() + { + if (spuriousKeyPress() || isOverviewPage) + return + setTopPage(overviewComponent) + } + + function showPageNotifications() + { + if (spuriousKeyPress() || isNotificationPage) + return + setTopPage(noticationsComponent) + } + + function checkAlarm() + { + if (alarm) + showPageNotifications() + } + + FirmwareUpdate { id: firmwareUpdate } +} diff --git a/FileSets/PatchSource/main.qml-v3.51.patch b/FileSets/PatchSource/main.qml-v3.51.patch new file mode 100644 index 00000000..4e4b7016 --- /dev/null +++ b/FileSets/PatchSource/main.qml-v3.51.patch @@ -0,0 +1,462 @@ +--- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/main.qml-v3.51.orig 2024-11-04 09:10:11 ++++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/main.qml-v3.51 2024-11-05 11:00:48 +@@ -1,3 +1,6 @@ ++//////// Modified to hide the OverviewTiles page ++//////// Modified to substitute flow overview pages ++ + import QtQuick 1.1 + + import Qt.labs.components.native 1.0 +@@ -8,7 +11,7 @@ + id: rootWindow + + gpsConnected: gpsFix.value === 1 +- onCompletedChanged: checkAlarm() ++ onCompletedChanged: { checkAlarm(); showNewUiPopup() } + initialPage: PageMain {} + + property VeQuickItem gpsService: VeQuickItem { uid: "dbus/com.victronenergy.system/GpsService" } +@@ -16,7 +19,8 @@ + property bool completed: false + property bool alarm: alarmNotification.valid ? alarmNotification.value : 0 + property bool showAlert: alertNotification.valid ? alertNotification.value : 0 +- property bool overviewsLoaded: defaultOverview.valid && generatorOverview.valid && mobileOverview.valid && tanksOverview.valid && startWithMenu.valid ++//////// added for GuiMods flow pages ++ property bool overviewsLoaded: defaultOverview.valid && generatorOverview.valid && mobileOverview.valid && tanksOverview.valid && startWithMenu.valid && mobileOverviewEnhanced.valid && guiModsFlowOverview.valid && generatorOverviewEnhanced.valid + property string bindPrefix: "com.victronenergy.settings" + + property bool isNotificationPage: pageStack.currentPage && pageStack.currentPage.title === qsTr("Notifications") +@@ -25,25 +29,85 @@ + + property bool hasVebusEss: ['ESS', 'Hub-4'].indexOf(theSystem.systemType.value) > -1 + property bool showInputLoads: theSystem.acInLoad.power.valid && (hasVebusEss ? (theSystem.hasGridMeter && withoutGridMeter.value === 0) : theSystem.hasGridMeter) ++ property int newUiAnnouncementVersion: 2 // Increase to make the popup appear again + ++//////// modified for GuiMods pages ++ property string currentHubOverview: "OverviewHub.qml" ++ property string currentMobileOverview: "" ++ property string currentGeneratorOverview: "" ++ + // Keep track of the current view (menu/overview) to show as default next time the + // CCGX is restarted + onIsOverviewPageChanged: startWithMenu.setValue(isOverviewPage ? 0 : 1) + + // Add the correct OverviewHub page +- onShowInputLoadsChanged: { +- if (showInputLoads) { +- replaceOverview("OverviewHub.qml", "OverviewGridParallel.qml"); +- } else { +- replaceOverview("OverviewGridParallel.qml", "OverviewHub.qml"); ++//////// modified for OverviewHubEnhanced page ++ onShowInputLoadsChanged: selectHubOverview () ++ ++ VBusItem ++ { ++ id: guiModsFlowOverview ++ bind: "com.victronenergy.settings/Settings/GuiMods/FlowOverview" ++ onValueChanged: selectHubOverview () ++ } ++ ++////// GuiMods — DarkMode ++ property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } ++ property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 ++ ++////// GuiMods — DarkMode ++ Rectangle { ++ anchors ++ { ++ fill: parent + } ++ color: !darkMode ? "transparent" : "#202020" ++ z: -1 + } + ++////// GuiMods - base a new hub selection on the hub type and the enhanced flow overview flag ++ function selectHubOverview () ++ { ++ var newHubOverview = currentHubOverview ++ // Victron stock overviews with automatic selection ++ if (guiModsFlowOverview.value == 0) ++ { ++ if (showInputLoads) ++ newHubOverview = "OverviewGridParallel.qml" ++ else ++ newHubOverview = "OverviewHub.qml" ++ } ++ // Gui Mods simple flow ++ else if (guiModsFlowOverview.value === 1) ++ { ++ newHubOverview = "OverviewHubEnhanced.qml" ++ } ++ // Gui Mods complex flow (AC coupled or DC coupled) ++ else ++ { ++ newHubOverview = "OverviewFlowComplex.qml" ++ } ++ ++ if (newHubOverview != currentHubOverview) ++ { ++ replaceOverview(currentHubOverview, newHubOverview); ++ currentHubOverview = newHubOverview ++ } ++ } ++ ++ VBusItem ++ { ++ id: generatorOverviewEnhanced ++ bind: "com.victronenergy.settings/Settings/GuiMods/UseEnhancedGeneratorOverview" ++ onValueChanged: selectGeneratorOverview () ++ } ++ + VBusItem { + id: generatorOverview + bind: "com.victronenergy.settings/Settings/Relay/Function" +- onValueChanged: extraOverview("OverviewGeneratorRelay.qml", value === 1) ++ onValueChanged: selectGeneratorOverview () + } ++////// end GuiMods + + VBusItem { + bind: "com.victronenergy.generator.startstop1/GensetProductId" +@@ -62,13 +126,98 @@ + } + } + +- VBusItem { +- id: mobileOverview +- bind: "com.victronenergy.settings/Settings/Gui/MobileOverview" +- onValueChanged:{ +- extraOverview("OverviewMobile.qml", value === 1) +- } ++////// GuiMods ++ function selectGeneratorOverview () ++ { ++ var newGeneratorOverview ++ if (generatorOverview.value === 1) ++ { ++ if (generatorOverviewEnhanced.value === 1) ++ newGeneratorOverview = "OverviewGeneratorRelayEnhanced.qml" ++ else ++ newGeneratorOverview = "OverviewGeneratorRelay.qml" ++ if (currentGeneratorOverview === "") ++ extraOverview (newGeneratorOverview, true) ++ else ++ replaceOverview (currentGeneratorOverview, newGeneratorOverview) ++ currentGeneratorOverview = newGeneratorOverview ++ } ++ else ++ { ++ // hide existing generator overview if any ++ if (currentGeneratorOverview != "") ++ { ++ extraOverview (currentGeneratorOverview, false) ++ currentGeneratorOverview = "" ++ } ++ } + } ++ ++//////// GuiMods handle OverviewMobileEnhanced page ++ VBusItem ++ { ++ id: mobileOverview ++ bind: "com.victronenergy.settings/Settings/Gui/MobileOverview" ++ onValueChanged: selectMobileOverview () ++ } ++////// GuiMods ++ VBusItem ++ { ++ id: mobileOverviewEnhanced ++ bind: "com.victronenergy.settings/Settings/GuiMods/UseEnhancedMobileOverview" ++ onValueChanged: selectMobileOverview () ++ } ++ ++////// GuiMods ++ // base a new mobile overview selection on the the mobile overview and enhanced mobile overview flags ++ function selectMobileOverview () ++ { ++ var newMobileOverview ++ if (mobileOverview.value === 1) ++ { ++ if (mobileOverviewEnhanced.value === 1) ++ newMobileOverview = "OverviewMobileEnhanced.qml" ++ else ++ newMobileOverview = "OverviewMobile.qml" ++ if (currentMobileOverview === "") ++ extraOverview (newMobileOverview, true) ++ else ++ replaceOverview (currentMobileOverview, newMobileOverview) ++ currentMobileOverview = newMobileOverview ++ } ++ else ++ { ++ // hide existing mobile overview if any ++ if (currentMobileOverview != "") ++ { ++ extraOverview (currentMobileOverview, false) ++ currentMobileOverview = "" ++ } ++ } ++ } ++ ++////// GuiMods - show/hide the OverviewTiles page ++ VBusItem ++ { ++ id: showOverviewTiles ++ bind: "com.victronenergy.settings/Settings/GuiMods/ShowTileOverview" ++ onValueChanged: extraOverview ("OverviewTiles.qml", value === 1) ++ } ++ ++////// GuiMods - show/hide the OverviewRelays page ++ VBusItem { ++ id: showOverviewRelays ++ bind: "com.victronenergy.settings/Settings/GuiMods/ShowRelayOverview" ++ onValueChanged: extraOverview ("OverviewRelays.qml", value === 1) ++ } ++ ++////// GuiMods - show/hide the Overview Tanks/Temps/Digital Inputs page ++ VBusItem { ++ id: showOverviewTanksTemps ++ bind: "com.victronenergy.settings/Settings/GuiMods/ShowTanksTempsDigIn" ++ onValueChanged: extraOverview ("OverviewTanksTempsDigInputs.qml", value === 1) ++ } ++ + VBusItem { + id: tanksOverview + bind: "com.victronenergy.settings/Settings/Gui/TanksOverview" +@@ -112,6 +261,11 @@ + bind: "com.victronenergy.platform/Notifications/Alarm" + } + ++ VBusItem { ++ id: newUiAnnouncement ++ bind: "com.victronenergy.settings/Settings/Gui/NewGuiLastAnnouncement" ++ } ++ + // Note: finding a firmware image on the storage device is error 4 for vrm storage + // since it should not be used for logging. That fact is used here to determine if + // there is a firmware image. +@@ -166,76 +320,111 @@ + id: mbTools + height: parent.height + +- Item { +- anchors.verticalCenter: parent.verticalCenter +- anchors.left: mbTools.left +- height: mbTools.height +- width: 200 ++//// GuiMods - DarkMode ++ Row ++ { ++ spacing: 0 ++ anchors.fill: parent ++ Item { ++ id: pagesItem ++ anchors.verticalCenter: parent.verticalCenter ++ height: mbTools.height ++ width: 170 + +- MouseArea { +- anchors.fill: parent +- onClicked: { +- if (pageStack.currentPage) +- pageStack.currentPage.toolbarHandler.leftAction(true) ++ MouseArea { ++ anchors.fill: parent ++ onClicked: { ++ if (pageStack.currentPage) ++ pageStack.currentPage.toolbarHandler.leftAction(true) ++ } + } ++ ++ Row { ++ anchors.verticalCenter: parent.verticalCenter ++ anchors.horizontalCenter: parent.horizontalCenter ++ ++ MbIcon { ++ anchors.verticalCenter: parent.verticalCenter ++ iconId: pageStack.currentPage ? pageStack.currentPage.leftIcon : "" ++ } ++ ++ Text { ++ anchors.verticalCenter: parent.verticalCenter ++ text: pageStack.currentPage ? pageStack.currentPage.leftText : "" ++ color: "white" ++ font.bold: true ++ font.pixelSize: 16 ++ } ++ } + } + +- Row { +- anchors.centerIn: parent ++ Item { ++ anchors.verticalCenter: parent.verticalCenter ++ height: mbTools.height ++ width: mbTools.width - pagesItem.width - menusItem.width - centerScrollIndicator.width + +- MbIcon { +- anchors.verticalCenter: parent.verticalCenter +- iconId: pageStack.currentPage ? pageStack.currentPage.leftIcon : "" ++ MouseArea ++ { ++ anchors.fill: parent ++ onClicked: ++ { ++ if (darkModeItem.valid) ++ darkModeItem.setValue (! darkMode) ++ } + } + +- Text { +- anchors.verticalCenter: parent.verticalCenter +- text: pageStack.currentPage ? pageStack.currentPage.leftText : "" ++ Text ++ { ++ anchors.fill: parent ++ horizontalAlignment: Text.AlignHCenter ++ text: qsTr ("change to") + "\n" + (darkMode ? qsTr ("Light mode") : qsTr ("Dark mode")) + color: "white" + font.bold: true +- font.pixelSize: 16 ++ font.pixelSize: 12 ++ visible: darkModeItem.valid + } + } +- } +- +- MbIcon { +- id: centerScrollIndicator +- +- anchors { +- horizontalCenter: parent.horizontalCenter +- verticalCenter: mbTools.verticalCenter ++ Item ++ { ++ id: centerScrollIndicator ++ anchors.verticalCenter: parent.verticalCenter ++ height: mbTools.height ++ width: 20 ++ MbIcon { ++ anchors.verticalCenter: parent.verticalCenter ++ iconId: pageStack.currentPage ? pageStack.currentPage.scrollIndicator : "" ++ } + } +- iconId: pageStack.currentPage ? pageStack.currentPage.scrollIndicator : "" +- } + +- Item { +- anchors.verticalCenter: parent.verticalCenter +- height: mbTools.height +- anchors.right: mbTools.right +- width: 200 ++ Item { ++ id: menusItem ++ anchors.verticalCenter: parent.verticalCenter ++ height: mbTools.height ++ width: pagesItem.width + +- MouseArea { +- anchors.fill: parent +- onClicked: { +- if (pageStack.currentPage) +- pageStack.currentPage.toolbarHandler.rightAction(true) ++ MouseArea { ++ anchors.fill: parent ++ onClicked: { ++ if (pageStack.currentPage) ++ pageStack.currentPage.toolbarHandler.rightAction(true) ++ } + } +- } + +- Row { +- anchors.centerIn: parent ++ Row { ++ anchors.centerIn: parent + +- MbIcon { +- iconId: pageStack.currentPage ? pageStack.currentPage.rightIcon : "" +- anchors.verticalCenter: parent.verticalCenter +- } ++ MbIcon { ++ iconId: pageStack.currentPage ? pageStack.currentPage.rightIcon : "" ++ anchors.verticalCenter: parent.verticalCenter ++ } + +- Text { +- text: pageStack.currentPage ? pageStack.currentPage.rightText : "" +- anchors.verticalCenter: parent.verticalCenter +- color: "white" +- font.bold: true +- font.pixelSize: 16 ++ Text { ++ text: pageStack.currentPage ? pageStack.currentPage.rightText : "" ++ anchors.verticalCenter: parent.verticalCenter ++ color: "white" ++ font.bold: true ++ font.pixelSize: 16 ++ } + } + } + } +@@ -250,9 +439,10 @@ + ListElement { + pageSource: "OverviewHub.qml" + } +- ListElement { +- pageSource: "OverviewTiles.qml" +- } ++//// GuiMods - (commented out) -- added dynamically above ++// ListElement { ++// pageSource: "OverviewTiles.qml" ++// } + } + + Component { +@@ -274,6 +464,26 @@ + onTriggered: if (startWithMenu.value === 0) showOverview() + } + ++ Timer { ++ id: newUiPopupTimer ++ interval: 10000 ++ running: false ++ onTriggered: ++ { ++//// GuiMods - modified for OverviewGridParallelEnhanced page ++ selectHubOverview () ++ if (startWithMenu.value === 0) showOverview() ++ } ++ } ++ ++ function showNewUiPopup() ++ { ++ var announce = newUiAnnouncement.value < newUiAnnouncementVersion ++ if (announce && vePlatform.isGuiv2Installed() && vePlatform.displayPresent()) { ++ newUiPopupTimer.start() ++ } ++ } ++ + function getDefaultOverviewIndex() + { + if(!defaultOverview.valid) +@@ -324,11 +534,19 @@ + } + } + ++//// GuiMods - Modified to append page if oldPage not found + function replaceOverview(oldPage, newPage) + { + for (var i = 0; i < overviewModel.count; i++) ++ { + if (overviewModel.get(i).pageSource === oldPage) ++ { + overviewModel.get(i).pageSource = newPage ++ return ++ } ++ } ++ // here if oldPage wasn't found -- append the new page ++ overviewModel.append({"pageSource": newPage}) + } + + // Central mover for the ball animation on the overviews diff --git a/FileSets/v3.10/ObjectAcConnection.qml b/FileSets/v3.10/ObjectAcConnection.qml index a59b2c6d..aad59c8b 120000 --- a/FileSets/v3.10/ObjectAcConnection.qml +++ b/FileSets/v3.10/ObjectAcConnection.qml @@ -1 +1 @@ -../v3.51~2/ObjectAcConnection.qml \ No newline at end of file +../v3.51/ObjectAcConnection.qml \ No newline at end of file diff --git a/FileSets/v3.10/OverviewAcValuesEnhanced.qml b/FileSets/v3.10/OverviewAcValuesEnhanced.qml index 06278feb..7ef5c3ad 120000 --- a/FileSets/v3.10/OverviewAcValuesEnhanced.qml +++ b/FileSets/v3.10/OverviewAcValuesEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewAcValuesEnhanced.qml \ No newline at end of file +../v3.51/OverviewAcValuesEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.10/OverviewGeneratorRelayEnhanced.qml b/FileSets/v3.10/OverviewGeneratorRelayEnhanced.qml index e4fe32d3..4f3958c0 120000 --- a/FileSets/v3.10/OverviewGeneratorRelayEnhanced.qml +++ b/FileSets/v3.10/OverviewGeneratorRelayEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file +../v3.51/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.10/TileRelay.qml b/FileSets/v3.10/TileRelay.qml index 9cf7d223..9c63a544 120000 --- a/FileSets/v3.10/TileRelay.qml +++ b/FileSets/v3.10/TileRelay.qml @@ -1 +1 @@ -../v3.51~2/TileRelay.qml \ No newline at end of file +../v3.51/TileRelay.qml \ No newline at end of file diff --git a/FileSets/v3.11/ObjectAcConnection.qml b/FileSets/v3.11/ObjectAcConnection.qml index a59b2c6d..aad59c8b 120000 --- a/FileSets/v3.11/ObjectAcConnection.qml +++ b/FileSets/v3.11/ObjectAcConnection.qml @@ -1 +1 @@ -../v3.51~2/ObjectAcConnection.qml \ No newline at end of file +../v3.51/ObjectAcConnection.qml \ No newline at end of file diff --git a/FileSets/v3.11/OverviewAcValuesEnhanced.qml b/FileSets/v3.11/OverviewAcValuesEnhanced.qml index 06278feb..7ef5c3ad 120000 --- a/FileSets/v3.11/OverviewAcValuesEnhanced.qml +++ b/FileSets/v3.11/OverviewAcValuesEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewAcValuesEnhanced.qml \ No newline at end of file +../v3.51/OverviewAcValuesEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.11/OverviewGeneratorRelayEnhanced.qml b/FileSets/v3.11/OverviewGeneratorRelayEnhanced.qml index e4fe32d3..4f3958c0 120000 --- a/FileSets/v3.11/OverviewGeneratorRelayEnhanced.qml +++ b/FileSets/v3.11/OverviewGeneratorRelayEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file +../v3.51/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.11/TileRelay.qml b/FileSets/v3.11/TileRelay.qml index 9cf7d223..9c63a544 120000 --- a/FileSets/v3.11/TileRelay.qml +++ b/FileSets/v3.11/TileRelay.qml @@ -1 +1 @@ -../v3.51~2/TileRelay.qml \ No newline at end of file +../v3.51/TileRelay.qml \ No newline at end of file diff --git a/FileSets/v3.12/ObjectAcConnection.qml b/FileSets/v3.12/ObjectAcConnection.qml index a59b2c6d..aad59c8b 120000 --- a/FileSets/v3.12/ObjectAcConnection.qml +++ b/FileSets/v3.12/ObjectAcConnection.qml @@ -1 +1 @@ -../v3.51~2/ObjectAcConnection.qml \ No newline at end of file +../v3.51/ObjectAcConnection.qml \ No newline at end of file diff --git a/FileSets/v3.12/OverviewAcValuesEnhanced.qml b/FileSets/v3.12/OverviewAcValuesEnhanced.qml index 06278feb..7ef5c3ad 120000 --- a/FileSets/v3.12/OverviewAcValuesEnhanced.qml +++ b/FileSets/v3.12/OverviewAcValuesEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewAcValuesEnhanced.qml \ No newline at end of file +../v3.51/OverviewAcValuesEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.12/OverviewGeneratorRelayEnhanced.qml b/FileSets/v3.12/OverviewGeneratorRelayEnhanced.qml index e4fe32d3..4f3958c0 120000 --- a/FileSets/v3.12/OverviewGeneratorRelayEnhanced.qml +++ b/FileSets/v3.12/OverviewGeneratorRelayEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file +../v3.51/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.12/TileRelay.qml b/FileSets/v3.12/TileRelay.qml index 9cf7d223..9c63a544 120000 --- a/FileSets/v3.12/TileRelay.qml +++ b/FileSets/v3.12/TileRelay.qml @@ -1 +1 @@ -../v3.51~2/TileRelay.qml \ No newline at end of file +../v3.51/TileRelay.qml \ No newline at end of file diff --git a/FileSets/v3.13/ObjectAcConnection.qml b/FileSets/v3.13/ObjectAcConnection.qml index a59b2c6d..aad59c8b 120000 --- a/FileSets/v3.13/ObjectAcConnection.qml +++ b/FileSets/v3.13/ObjectAcConnection.qml @@ -1 +1 @@ -../v3.51~2/ObjectAcConnection.qml \ No newline at end of file +../v3.51/ObjectAcConnection.qml \ No newline at end of file diff --git a/FileSets/v3.13/OverviewAcValuesEnhanced.qml b/FileSets/v3.13/OverviewAcValuesEnhanced.qml index 06278feb..7ef5c3ad 120000 --- a/FileSets/v3.13/OverviewAcValuesEnhanced.qml +++ b/FileSets/v3.13/OverviewAcValuesEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewAcValuesEnhanced.qml \ No newline at end of file +../v3.51/OverviewAcValuesEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.13/OverviewGeneratorRelayEnhanced.qml b/FileSets/v3.13/OverviewGeneratorRelayEnhanced.qml index e4fe32d3..4f3958c0 120000 --- a/FileSets/v3.13/OverviewGeneratorRelayEnhanced.qml +++ b/FileSets/v3.13/OverviewGeneratorRelayEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file +../v3.51/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.13/TileRelay.qml b/FileSets/v3.13/TileRelay.qml index 9cf7d223..9c63a544 120000 --- a/FileSets/v3.13/TileRelay.qml +++ b/FileSets/v3.13/TileRelay.qml @@ -1 +1 @@ -../v3.51~2/TileRelay.qml \ No newline at end of file +../v3.51/TileRelay.qml \ No newline at end of file diff --git a/FileSets/v3.14/ObjectAcConnection.qml b/FileSets/v3.14/ObjectAcConnection.qml index a59b2c6d..aad59c8b 120000 --- a/FileSets/v3.14/ObjectAcConnection.qml +++ b/FileSets/v3.14/ObjectAcConnection.qml @@ -1 +1 @@ -../v3.51~2/ObjectAcConnection.qml \ No newline at end of file +../v3.51/ObjectAcConnection.qml \ No newline at end of file diff --git a/FileSets/v3.14/OverviewAcValuesEnhanced.qml b/FileSets/v3.14/OverviewAcValuesEnhanced.qml index 06278feb..7ef5c3ad 120000 --- a/FileSets/v3.14/OverviewAcValuesEnhanced.qml +++ b/FileSets/v3.14/OverviewAcValuesEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewAcValuesEnhanced.qml \ No newline at end of file +../v3.51/OverviewAcValuesEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.14/OverviewGeneratorRelayEnhanced.qml b/FileSets/v3.14/OverviewGeneratorRelayEnhanced.qml index e4fe32d3..4f3958c0 120000 --- a/FileSets/v3.14/OverviewGeneratorRelayEnhanced.qml +++ b/FileSets/v3.14/OverviewGeneratorRelayEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file +../v3.51/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.14/TileRelay.qml b/FileSets/v3.14/TileRelay.qml index 9cf7d223..9c63a544 120000 --- a/FileSets/v3.14/TileRelay.qml +++ b/FileSets/v3.14/TileRelay.qml @@ -1 +1 @@ -../v3.51~2/TileRelay.qml \ No newline at end of file +../v3.51/TileRelay.qml \ No newline at end of file diff --git a/FileSets/v3.20/ObjectAcConnection.qml b/FileSets/v3.20/ObjectAcConnection.qml index a59b2c6d..aad59c8b 120000 --- a/FileSets/v3.20/ObjectAcConnection.qml +++ b/FileSets/v3.20/ObjectAcConnection.qml @@ -1 +1 @@ -../v3.51~2/ObjectAcConnection.qml \ No newline at end of file +../v3.51/ObjectAcConnection.qml \ No newline at end of file diff --git a/FileSets/v3.20/OverviewAcValuesEnhanced.qml b/FileSets/v3.20/OverviewAcValuesEnhanced.qml index 06278feb..7ef5c3ad 120000 --- a/FileSets/v3.20/OverviewAcValuesEnhanced.qml +++ b/FileSets/v3.20/OverviewAcValuesEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewAcValuesEnhanced.qml \ No newline at end of file +../v3.51/OverviewAcValuesEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.20/OverviewGeneratorRelayEnhanced.qml b/FileSets/v3.20/OverviewGeneratorRelayEnhanced.qml index e4fe32d3..4f3958c0 120000 --- a/FileSets/v3.20/OverviewGeneratorRelayEnhanced.qml +++ b/FileSets/v3.20/OverviewGeneratorRelayEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file +../v3.51/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.20/TileRelay.qml b/FileSets/v3.20/TileRelay.qml index 9cf7d223..9c63a544 120000 --- a/FileSets/v3.20/TileRelay.qml +++ b/FileSets/v3.20/TileRelay.qml @@ -1 +1 @@ -../v3.51~2/TileRelay.qml \ No newline at end of file +../v3.51/TileRelay.qml \ No newline at end of file diff --git a/FileSets/v3.21/ObjectAcConnection.qml b/FileSets/v3.21/ObjectAcConnection.qml index a59b2c6d..aad59c8b 120000 --- a/FileSets/v3.21/ObjectAcConnection.qml +++ b/FileSets/v3.21/ObjectAcConnection.qml @@ -1 +1 @@ -../v3.51~2/ObjectAcConnection.qml \ No newline at end of file +../v3.51/ObjectAcConnection.qml \ No newline at end of file diff --git a/FileSets/v3.21/OverviewAcValuesEnhanced.qml b/FileSets/v3.21/OverviewAcValuesEnhanced.qml index 06278feb..7ef5c3ad 120000 --- a/FileSets/v3.21/OverviewAcValuesEnhanced.qml +++ b/FileSets/v3.21/OverviewAcValuesEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewAcValuesEnhanced.qml \ No newline at end of file +../v3.51/OverviewAcValuesEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.21/OverviewGeneratorRelayEnhanced.qml b/FileSets/v3.21/OverviewGeneratorRelayEnhanced.qml index e4fe32d3..4f3958c0 120000 --- a/FileSets/v3.21/OverviewGeneratorRelayEnhanced.qml +++ b/FileSets/v3.21/OverviewGeneratorRelayEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file +../v3.51/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.21/TileRelay.qml b/FileSets/v3.21/TileRelay.qml index 9cf7d223..9c63a544 120000 --- a/FileSets/v3.21/TileRelay.qml +++ b/FileSets/v3.21/TileRelay.qml @@ -1 +1 @@ -../v3.51~2/TileRelay.qml \ No newline at end of file +../v3.51/TileRelay.qml \ No newline at end of file diff --git a/FileSets/v3.22/ObjectAcConnection.qml b/FileSets/v3.22/ObjectAcConnection.qml index a59b2c6d..aad59c8b 120000 --- a/FileSets/v3.22/ObjectAcConnection.qml +++ b/FileSets/v3.22/ObjectAcConnection.qml @@ -1 +1 @@ -../v3.51~2/ObjectAcConnection.qml \ No newline at end of file +../v3.51/ObjectAcConnection.qml \ No newline at end of file diff --git a/FileSets/v3.22/OverviewAcValuesEnhanced.qml b/FileSets/v3.22/OverviewAcValuesEnhanced.qml index 06278feb..7ef5c3ad 120000 --- a/FileSets/v3.22/OverviewAcValuesEnhanced.qml +++ b/FileSets/v3.22/OverviewAcValuesEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewAcValuesEnhanced.qml \ No newline at end of file +../v3.51/OverviewAcValuesEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.22/OverviewGeneratorRelayEnhanced.qml b/FileSets/v3.22/OverviewGeneratorRelayEnhanced.qml index e4fe32d3..4f3958c0 120000 --- a/FileSets/v3.22/OverviewGeneratorRelayEnhanced.qml +++ b/FileSets/v3.22/OverviewGeneratorRelayEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file +../v3.51/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.22/TileRelay.qml b/FileSets/v3.22/TileRelay.qml index 9cf7d223..9c63a544 120000 --- a/FileSets/v3.22/TileRelay.qml +++ b/FileSets/v3.22/TileRelay.qml @@ -1 +1 @@ -../v3.51~2/TileRelay.qml \ No newline at end of file +../v3.51/TileRelay.qml \ No newline at end of file diff --git a/FileSets/v3.30/ObjectAcConnection.qml b/FileSets/v3.30/ObjectAcConnection.qml index a59b2c6d..aad59c8b 120000 --- a/FileSets/v3.30/ObjectAcConnection.qml +++ b/FileSets/v3.30/ObjectAcConnection.qml @@ -1 +1 @@ -../v3.51~2/ObjectAcConnection.qml \ No newline at end of file +../v3.51/ObjectAcConnection.qml \ No newline at end of file diff --git a/FileSets/v3.30/OverviewAcValuesEnhanced.qml b/FileSets/v3.30/OverviewAcValuesEnhanced.qml index 06278feb..7ef5c3ad 120000 --- a/FileSets/v3.30/OverviewAcValuesEnhanced.qml +++ b/FileSets/v3.30/OverviewAcValuesEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewAcValuesEnhanced.qml \ No newline at end of file +../v3.51/OverviewAcValuesEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.30/OverviewGeneratorRelayEnhanced.qml b/FileSets/v3.30/OverviewGeneratorRelayEnhanced.qml index e4fe32d3..4f3958c0 120000 --- a/FileSets/v3.30/OverviewGeneratorRelayEnhanced.qml +++ b/FileSets/v3.30/OverviewGeneratorRelayEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file +../v3.51/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.30/TileRelay.qml b/FileSets/v3.30/TileRelay.qml index 9cf7d223..9c63a544 120000 --- a/FileSets/v3.30/TileRelay.qml +++ b/FileSets/v3.30/TileRelay.qml @@ -1 +1 @@ -../v3.51~2/TileRelay.qml \ No newline at end of file +../v3.51/TileRelay.qml \ No newline at end of file diff --git a/FileSets/v3.31/ObjectAcConnection.qml b/FileSets/v3.31/ObjectAcConnection.qml index a59b2c6d..aad59c8b 120000 --- a/FileSets/v3.31/ObjectAcConnection.qml +++ b/FileSets/v3.31/ObjectAcConnection.qml @@ -1 +1 @@ -../v3.51~2/ObjectAcConnection.qml \ No newline at end of file +../v3.51/ObjectAcConnection.qml \ No newline at end of file diff --git a/FileSets/v3.31/OverviewAcValuesEnhanced.qml b/FileSets/v3.31/OverviewAcValuesEnhanced.qml index 06278feb..7ef5c3ad 120000 --- a/FileSets/v3.31/OverviewAcValuesEnhanced.qml +++ b/FileSets/v3.31/OverviewAcValuesEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewAcValuesEnhanced.qml \ No newline at end of file +../v3.51/OverviewAcValuesEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.31/OverviewGeneratorRelayEnhanced.qml b/FileSets/v3.31/OverviewGeneratorRelayEnhanced.qml index e4fe32d3..4f3958c0 120000 --- a/FileSets/v3.31/OverviewGeneratorRelayEnhanced.qml +++ b/FileSets/v3.31/OverviewGeneratorRelayEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file +../v3.51/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.31/TileRelay.qml b/FileSets/v3.31/TileRelay.qml index 9cf7d223..9c63a544 120000 --- a/FileSets/v3.31/TileRelay.qml +++ b/FileSets/v3.31/TileRelay.qml @@ -1 +1 @@ -../v3.51~2/TileRelay.qml \ No newline at end of file +../v3.51/TileRelay.qml \ No newline at end of file diff --git a/FileSets/v3.33/ObjectAcConnection.qml b/FileSets/v3.33/ObjectAcConnection.qml index a59b2c6d..aad59c8b 120000 --- a/FileSets/v3.33/ObjectAcConnection.qml +++ b/FileSets/v3.33/ObjectAcConnection.qml @@ -1 +1 @@ -../v3.51~2/ObjectAcConnection.qml \ No newline at end of file +../v3.51/ObjectAcConnection.qml \ No newline at end of file diff --git a/FileSets/v3.33/OverviewAcValuesEnhanced.qml b/FileSets/v3.33/OverviewAcValuesEnhanced.qml index 06278feb..7ef5c3ad 120000 --- a/FileSets/v3.33/OverviewAcValuesEnhanced.qml +++ b/FileSets/v3.33/OverviewAcValuesEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewAcValuesEnhanced.qml \ No newline at end of file +../v3.51/OverviewAcValuesEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.33/OverviewGeneratorRelayEnhanced.qml b/FileSets/v3.33/OverviewGeneratorRelayEnhanced.qml index e4fe32d3..4f3958c0 120000 --- a/FileSets/v3.33/OverviewGeneratorRelayEnhanced.qml +++ b/FileSets/v3.33/OverviewGeneratorRelayEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file +../v3.51/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.33/TileRelay.qml b/FileSets/v3.33/TileRelay.qml index 9cf7d223..9c63a544 120000 --- a/FileSets/v3.33/TileRelay.qml +++ b/FileSets/v3.33/TileRelay.qml @@ -1 +1 @@ -../v3.51~2/TileRelay.qml \ No newline at end of file +../v3.51/TileRelay.qml \ No newline at end of file diff --git a/FileSets/v3.34/ObjectAcConnection.qml b/FileSets/v3.34/ObjectAcConnection.qml index a59b2c6d..aad59c8b 120000 --- a/FileSets/v3.34/ObjectAcConnection.qml +++ b/FileSets/v3.34/ObjectAcConnection.qml @@ -1 +1 @@ -../v3.51~2/ObjectAcConnection.qml \ No newline at end of file +../v3.51/ObjectAcConnection.qml \ No newline at end of file diff --git a/FileSets/v3.34/OverviewAcValuesEnhanced.qml b/FileSets/v3.34/OverviewAcValuesEnhanced.qml index 06278feb..7ef5c3ad 120000 --- a/FileSets/v3.34/OverviewAcValuesEnhanced.qml +++ b/FileSets/v3.34/OverviewAcValuesEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewAcValuesEnhanced.qml \ No newline at end of file +../v3.51/OverviewAcValuesEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.34/OverviewGeneratorRelayEnhanced.qml b/FileSets/v3.34/OverviewGeneratorRelayEnhanced.qml index e4fe32d3..4f3958c0 120000 --- a/FileSets/v3.34/OverviewGeneratorRelayEnhanced.qml +++ b/FileSets/v3.34/OverviewGeneratorRelayEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file +../v3.51/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.34/TileRelay.qml b/FileSets/v3.34/TileRelay.qml index 9cf7d223..9c63a544 120000 --- a/FileSets/v3.34/TileRelay.qml +++ b/FileSets/v3.34/TileRelay.qml @@ -1 +1 @@ -../v3.51~2/TileRelay.qml \ No newline at end of file +../v3.51/TileRelay.qml \ No newline at end of file diff --git a/FileSets/v3.40/DetailAcInput.qml b/FileSets/v3.40/DetailAcInput.qml index 66967128..7ccb024e 120000 --- a/FileSets/v3.40/DetailAcInput.qml +++ b/FileSets/v3.40/DetailAcInput.qml @@ -1 +1 @@ -../v3.51~2/DetailAcInput.qml \ No newline at end of file +../v3.51/DetailAcInput.qml \ No newline at end of file diff --git a/FileSets/v3.40/DetailInverter.qml b/FileSets/v3.40/DetailInverter.qml index 674958be..4b6c46da 120000 --- a/FileSets/v3.40/DetailInverter.qml +++ b/FileSets/v3.40/DetailInverter.qml @@ -1 +1 @@ -../v3.51~2/DetailInverter.qml \ No newline at end of file +../v3.51/DetailInverter.qml \ No newline at end of file diff --git a/FileSets/v3.40/DetailLoadsCombined.qml b/FileSets/v3.40/DetailLoadsCombined.qml index f51dfec1..5782674a 120000 --- a/FileSets/v3.40/DetailLoadsCombined.qml +++ b/FileSets/v3.40/DetailLoadsCombined.qml @@ -1 +1 @@ -../v3.51~2/DetailLoadsCombined.qml \ No newline at end of file +../v3.51/DetailLoadsCombined.qml \ No newline at end of file diff --git a/FileSets/v3.40/DetailLoadsOnInput.qml b/FileSets/v3.40/DetailLoadsOnInput.qml index 4813eff7..29728481 120000 --- a/FileSets/v3.40/DetailLoadsOnInput.qml +++ b/FileSets/v3.40/DetailLoadsOnInput.qml @@ -1 +1 @@ -../v3.51~2/DetailLoadsOnInput.qml \ No newline at end of file +../v3.51/DetailLoadsOnInput.qml \ No newline at end of file diff --git a/FileSets/v3.40/DetailLoadsOnOutput.qml b/FileSets/v3.40/DetailLoadsOnOutput.qml index 746a0773..5c5d66be 120000 --- a/FileSets/v3.40/DetailLoadsOnOutput.qml +++ b/FileSets/v3.40/DetailLoadsOnOutput.qml @@ -1 +1 @@ -../v3.51~2/DetailLoadsOnOutput.qml \ No newline at end of file +../v3.51/DetailLoadsOnOutput.qml \ No newline at end of file diff --git a/FileSets/v3.40/HubData.qml b/FileSets/v3.40/HubData.qml index 4321b049..05118dd8 120000 --- a/FileSets/v3.40/HubData.qml +++ b/FileSets/v3.40/HubData.qml @@ -1 +1 @@ -../v3.51~2/HubData.qml \ No newline at end of file +../v3.51/HubData.qml \ No newline at end of file diff --git a/FileSets/v3.40/ObjectAcConnection.qml b/FileSets/v3.40/ObjectAcConnection.qml index a59b2c6d..aad59c8b 120000 --- a/FileSets/v3.40/ObjectAcConnection.qml +++ b/FileSets/v3.40/ObjectAcConnection.qml @@ -1 +1 @@ -../v3.51~2/ObjectAcConnection.qml \ No newline at end of file +../v3.51/ObjectAcConnection.qml \ No newline at end of file diff --git a/FileSets/v3.40/OverviewAcValuesEnhanced.qml b/FileSets/v3.40/OverviewAcValuesEnhanced.qml index 06278feb..7ef5c3ad 120000 --- a/FileSets/v3.40/OverviewAcValuesEnhanced.qml +++ b/FileSets/v3.40/OverviewAcValuesEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewAcValuesEnhanced.qml \ No newline at end of file +../v3.51/OverviewAcValuesEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.40/OverviewFlowComplex.qml b/FileSets/v3.40/OverviewFlowComplex.qml index 117e095b..f928901c 120000 --- a/FileSets/v3.40/OverviewFlowComplex.qml +++ b/FileSets/v3.40/OverviewFlowComplex.qml @@ -1 +1 @@ -../v3.51~2/OverviewFlowComplex.qml \ No newline at end of file +../v3.51/OverviewFlowComplex.qml \ No newline at end of file diff --git a/FileSets/v3.40/OverviewGeneratorRelayEnhanced.qml b/FileSets/v3.40/OverviewGeneratorRelayEnhanced.qml index e4fe32d3..4f3958c0 120000 --- a/FileSets/v3.40/OverviewGeneratorRelayEnhanced.qml +++ b/FileSets/v3.40/OverviewGeneratorRelayEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file +../v3.51/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.40/OverviewGridParallel.qml b/FileSets/v3.40/OverviewGridParallel.qml index 3210810c..29c51682 120000 --- a/FileSets/v3.40/OverviewGridParallel.qml +++ b/FileSets/v3.40/OverviewGridParallel.qml @@ -1 +1 @@ -../v3.51~2/OverviewGridParallel.qml \ No newline at end of file +../v3.51/OverviewGridParallel.qml \ No newline at end of file diff --git a/FileSets/v3.40/OverviewHub.qml b/FileSets/v3.40/OverviewHub.qml index 1bfb809c..9033848d 120000 --- a/FileSets/v3.40/OverviewHub.qml +++ b/FileSets/v3.40/OverviewHub.qml @@ -1 +1 @@ -../v3.51~2/OverviewHub.qml \ No newline at end of file +../v3.51/OverviewHub.qml \ No newline at end of file diff --git a/FileSets/v3.40/OverviewHubEnhanced.qml b/FileSets/v3.40/OverviewHubEnhanced.qml index 0ee6c316..421c62e5 120000 --- a/FileSets/v3.40/OverviewHubEnhanced.qml +++ b/FileSets/v3.40/OverviewHubEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewHubEnhanced.qml \ No newline at end of file +../v3.51/OverviewHubEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.40/PowerGauge.qml b/FileSets/v3.40/PowerGauge.qml index 8c1f5473..d063e557 120000 --- a/FileSets/v3.40/PowerGauge.qml +++ b/FileSets/v3.40/PowerGauge.qml @@ -1 +1 @@ -../v3.51~2/PowerGauge.qml \ No newline at end of file +../v3.51/PowerGauge.qml \ No newline at end of file diff --git a/FileSets/v3.40/TileRelay.qml b/FileSets/v3.40/TileRelay.qml index 9cf7d223..9c63a544 120000 --- a/FileSets/v3.40/TileRelay.qml +++ b/FileSets/v3.40/TileRelay.qml @@ -1 +1 @@ -../v3.51~2/TileRelay.qml \ No newline at end of file +../v3.51/TileRelay.qml \ No newline at end of file diff --git a/FileSets/v3.41/DetailAcInput.qml b/FileSets/v3.41/DetailAcInput.qml index 66967128..7ccb024e 120000 --- a/FileSets/v3.41/DetailAcInput.qml +++ b/FileSets/v3.41/DetailAcInput.qml @@ -1 +1 @@ -../v3.51~2/DetailAcInput.qml \ No newline at end of file +../v3.51/DetailAcInput.qml \ No newline at end of file diff --git a/FileSets/v3.41/DetailInverter.qml b/FileSets/v3.41/DetailInverter.qml index 674958be..4b6c46da 120000 --- a/FileSets/v3.41/DetailInverter.qml +++ b/FileSets/v3.41/DetailInverter.qml @@ -1 +1 @@ -../v3.51~2/DetailInverter.qml \ No newline at end of file +../v3.51/DetailInverter.qml \ No newline at end of file diff --git a/FileSets/v3.41/DetailLoadsCombined.qml b/FileSets/v3.41/DetailLoadsCombined.qml index f51dfec1..5782674a 120000 --- a/FileSets/v3.41/DetailLoadsCombined.qml +++ b/FileSets/v3.41/DetailLoadsCombined.qml @@ -1 +1 @@ -../v3.51~2/DetailLoadsCombined.qml \ No newline at end of file +../v3.51/DetailLoadsCombined.qml \ No newline at end of file diff --git a/FileSets/v3.41/DetailLoadsOnInput.qml b/FileSets/v3.41/DetailLoadsOnInput.qml index 4813eff7..29728481 120000 --- a/FileSets/v3.41/DetailLoadsOnInput.qml +++ b/FileSets/v3.41/DetailLoadsOnInput.qml @@ -1 +1 @@ -../v3.51~2/DetailLoadsOnInput.qml \ No newline at end of file +../v3.51/DetailLoadsOnInput.qml \ No newline at end of file diff --git a/FileSets/v3.41/DetailLoadsOnOutput.qml b/FileSets/v3.41/DetailLoadsOnOutput.qml index 746a0773..5c5d66be 120000 --- a/FileSets/v3.41/DetailLoadsOnOutput.qml +++ b/FileSets/v3.41/DetailLoadsOnOutput.qml @@ -1 +1 @@ -../v3.51~2/DetailLoadsOnOutput.qml \ No newline at end of file +../v3.51/DetailLoadsOnOutput.qml \ No newline at end of file diff --git a/FileSets/v3.41/HubData.qml b/FileSets/v3.41/HubData.qml index 4321b049..05118dd8 120000 --- a/FileSets/v3.41/HubData.qml +++ b/FileSets/v3.41/HubData.qml @@ -1 +1 @@ -../v3.51~2/HubData.qml \ No newline at end of file +../v3.51/HubData.qml \ No newline at end of file diff --git a/FileSets/v3.41/ObjectAcConnection.qml b/FileSets/v3.41/ObjectAcConnection.qml index a59b2c6d..aad59c8b 120000 --- a/FileSets/v3.41/ObjectAcConnection.qml +++ b/FileSets/v3.41/ObjectAcConnection.qml @@ -1 +1 @@ -../v3.51~2/ObjectAcConnection.qml \ No newline at end of file +../v3.51/ObjectAcConnection.qml \ No newline at end of file diff --git a/FileSets/v3.41/OverviewAcValuesEnhanced.qml b/FileSets/v3.41/OverviewAcValuesEnhanced.qml index 06278feb..7ef5c3ad 120000 --- a/FileSets/v3.41/OverviewAcValuesEnhanced.qml +++ b/FileSets/v3.41/OverviewAcValuesEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewAcValuesEnhanced.qml \ No newline at end of file +../v3.51/OverviewAcValuesEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.41/OverviewFlowComplex.qml b/FileSets/v3.41/OverviewFlowComplex.qml index 117e095b..f928901c 120000 --- a/FileSets/v3.41/OverviewFlowComplex.qml +++ b/FileSets/v3.41/OverviewFlowComplex.qml @@ -1 +1 @@ -../v3.51~2/OverviewFlowComplex.qml \ No newline at end of file +../v3.51/OverviewFlowComplex.qml \ No newline at end of file diff --git a/FileSets/v3.41/OverviewGeneratorRelayEnhanced.qml b/FileSets/v3.41/OverviewGeneratorRelayEnhanced.qml index e4fe32d3..4f3958c0 120000 --- a/FileSets/v3.41/OverviewGeneratorRelayEnhanced.qml +++ b/FileSets/v3.41/OverviewGeneratorRelayEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file +../v3.51/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.41/OverviewGridParallel.qml b/FileSets/v3.41/OverviewGridParallel.qml index 3210810c..29c51682 120000 --- a/FileSets/v3.41/OverviewGridParallel.qml +++ b/FileSets/v3.41/OverviewGridParallel.qml @@ -1 +1 @@ -../v3.51~2/OverviewGridParallel.qml \ No newline at end of file +../v3.51/OverviewGridParallel.qml \ No newline at end of file diff --git a/FileSets/v3.41/OverviewHub.qml b/FileSets/v3.41/OverviewHub.qml index 1bfb809c..9033848d 120000 --- a/FileSets/v3.41/OverviewHub.qml +++ b/FileSets/v3.41/OverviewHub.qml @@ -1 +1 @@ -../v3.51~2/OverviewHub.qml \ No newline at end of file +../v3.51/OverviewHub.qml \ No newline at end of file diff --git a/FileSets/v3.41/OverviewHubEnhanced.qml b/FileSets/v3.41/OverviewHubEnhanced.qml index 0ee6c316..421c62e5 120000 --- a/FileSets/v3.41/OverviewHubEnhanced.qml +++ b/FileSets/v3.41/OverviewHubEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewHubEnhanced.qml \ No newline at end of file +../v3.51/OverviewHubEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.41/PowerGauge.qml b/FileSets/v3.41/PowerGauge.qml index 8c1f5473..d063e557 120000 --- a/FileSets/v3.41/PowerGauge.qml +++ b/FileSets/v3.41/PowerGauge.qml @@ -1 +1 @@ -../v3.51~2/PowerGauge.qml \ No newline at end of file +../v3.51/PowerGauge.qml \ No newline at end of file diff --git a/FileSets/v3.41/TileRelay.qml b/FileSets/v3.41/TileRelay.qml index 9cf7d223..9c63a544 120000 --- a/FileSets/v3.41/TileRelay.qml +++ b/FileSets/v3.41/TileRelay.qml @@ -1 +1 @@ -../v3.51~2/TileRelay.qml \ No newline at end of file +../v3.51/TileRelay.qml \ No newline at end of file diff --git a/FileSets/v3.50/DetailAcInput.qml b/FileSets/v3.50/DetailAcInput.qml index 66967128..7ccb024e 120000 --- a/FileSets/v3.50/DetailAcInput.qml +++ b/FileSets/v3.50/DetailAcInput.qml @@ -1 +1 @@ -../v3.51~2/DetailAcInput.qml \ No newline at end of file +../v3.51/DetailAcInput.qml \ No newline at end of file diff --git a/FileSets/v3.50/DetailInverter.qml b/FileSets/v3.50/DetailInverter.qml index 674958be..4b6c46da 120000 --- a/FileSets/v3.50/DetailInverter.qml +++ b/FileSets/v3.50/DetailInverter.qml @@ -1 +1 @@ -../v3.51~2/DetailInverter.qml \ No newline at end of file +../v3.51/DetailInverter.qml \ No newline at end of file diff --git a/FileSets/v3.50/DetailLoadsCombined.qml b/FileSets/v3.50/DetailLoadsCombined.qml index f51dfec1..5782674a 120000 --- a/FileSets/v3.50/DetailLoadsCombined.qml +++ b/FileSets/v3.50/DetailLoadsCombined.qml @@ -1 +1 @@ -../v3.51~2/DetailLoadsCombined.qml \ No newline at end of file +../v3.51/DetailLoadsCombined.qml \ No newline at end of file diff --git a/FileSets/v3.50/DetailLoadsOnInput.qml b/FileSets/v3.50/DetailLoadsOnInput.qml index 4813eff7..29728481 120000 --- a/FileSets/v3.50/DetailLoadsOnInput.qml +++ b/FileSets/v3.50/DetailLoadsOnInput.qml @@ -1 +1 @@ -../v3.51~2/DetailLoadsOnInput.qml \ No newline at end of file +../v3.51/DetailLoadsOnInput.qml \ No newline at end of file diff --git a/FileSets/v3.50/DetailLoadsOnOutput.qml b/FileSets/v3.50/DetailLoadsOnOutput.qml index 746a0773..5c5d66be 120000 --- a/FileSets/v3.50/DetailLoadsOnOutput.qml +++ b/FileSets/v3.50/DetailLoadsOnOutput.qml @@ -1 +1 @@ -../v3.51~2/DetailLoadsOnOutput.qml \ No newline at end of file +../v3.51/DetailLoadsOnOutput.qml \ No newline at end of file diff --git a/FileSets/v3.50/HubData.qml b/FileSets/v3.50/HubData.qml index 4321b049..05118dd8 120000 --- a/FileSets/v3.50/HubData.qml +++ b/FileSets/v3.50/HubData.qml @@ -1 +1 @@ -../v3.51~2/HubData.qml \ No newline at end of file +../v3.51/HubData.qml \ No newline at end of file diff --git a/FileSets/v3.50/ObjectAcConnection.qml b/FileSets/v3.50/ObjectAcConnection.qml index a59b2c6d..aad59c8b 120000 --- a/FileSets/v3.50/ObjectAcConnection.qml +++ b/FileSets/v3.50/ObjectAcConnection.qml @@ -1 +1 @@ -../v3.51~2/ObjectAcConnection.qml \ No newline at end of file +../v3.51/ObjectAcConnection.qml \ No newline at end of file diff --git a/FileSets/v3.50/OverviewAcValuesEnhanced.qml b/FileSets/v3.50/OverviewAcValuesEnhanced.qml index 06278feb..7ef5c3ad 120000 --- a/FileSets/v3.50/OverviewAcValuesEnhanced.qml +++ b/FileSets/v3.50/OverviewAcValuesEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewAcValuesEnhanced.qml \ No newline at end of file +../v3.51/OverviewAcValuesEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.50/OverviewFlowComplex.qml b/FileSets/v3.50/OverviewFlowComplex.qml index 117e095b..f928901c 120000 --- a/FileSets/v3.50/OverviewFlowComplex.qml +++ b/FileSets/v3.50/OverviewFlowComplex.qml @@ -1 +1 @@ -../v3.51~2/OverviewFlowComplex.qml \ No newline at end of file +../v3.51/OverviewFlowComplex.qml \ No newline at end of file diff --git a/FileSets/v3.50/OverviewGeneratorEnhanced.qml b/FileSets/v3.50/OverviewGeneratorEnhanced.qml index 7e8fab79..48162d1b 120000 --- a/FileSets/v3.50/OverviewGeneratorEnhanced.qml +++ b/FileSets/v3.50/OverviewGeneratorEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewGeneratorEnhanced.qml \ No newline at end of file +../v3.51/OverviewGeneratorEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.50/OverviewGeneratorRelayEnhanced.qml b/FileSets/v3.50/OverviewGeneratorRelayEnhanced.qml index e4fe32d3..4f3958c0 120000 --- a/FileSets/v3.50/OverviewGeneratorRelayEnhanced.qml +++ b/FileSets/v3.50/OverviewGeneratorRelayEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file +../v3.51/OverviewGeneratorRelayEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.50/OverviewGridParallel.qml b/FileSets/v3.50/OverviewGridParallel.qml index 3210810c..29c51682 120000 --- a/FileSets/v3.50/OverviewGridParallel.qml +++ b/FileSets/v3.50/OverviewGridParallel.qml @@ -1 +1 @@ -../v3.51~2/OverviewGridParallel.qml \ No newline at end of file +../v3.51/OverviewGridParallel.qml \ No newline at end of file diff --git a/FileSets/v3.50/OverviewHub.qml b/FileSets/v3.50/OverviewHub.qml index 1bfb809c..9033848d 120000 --- a/FileSets/v3.50/OverviewHub.qml +++ b/FileSets/v3.50/OverviewHub.qml @@ -1 +1 @@ -../v3.51~2/OverviewHub.qml \ No newline at end of file +../v3.51/OverviewHub.qml \ No newline at end of file diff --git a/FileSets/v3.50/OverviewHubEnhanced.qml b/FileSets/v3.50/OverviewHubEnhanced.qml index 0ee6c316..421c62e5 120000 --- a/FileSets/v3.50/OverviewHubEnhanced.qml +++ b/FileSets/v3.50/OverviewHubEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewHubEnhanced.qml \ No newline at end of file +../v3.51/OverviewHubEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.50/OverviewMobileEnhanced.qml b/FileSets/v3.50/OverviewMobileEnhanced.qml index 5055ce73..8c8c4a88 120000 --- a/FileSets/v3.50/OverviewMobileEnhanced.qml +++ b/FileSets/v3.50/OverviewMobileEnhanced.qml @@ -1 +1 @@ -../v3.51~2/OverviewMobileEnhanced.qml \ No newline at end of file +../v3.51/OverviewMobileEnhanced.qml \ No newline at end of file diff --git a/FileSets/v3.50/OverviewTanksTempsDigInputs.qml b/FileSets/v3.50/OverviewTanksTempsDigInputs.qml index 02c45346..384bbb44 120000 --- a/FileSets/v3.50/OverviewTanksTempsDigInputs.qml +++ b/FileSets/v3.50/OverviewTanksTempsDigInputs.qml @@ -1 +1 @@ -../v3.51~2/OverviewTanksTempsDigInputs.qml \ No newline at end of file +../v3.51/OverviewTanksTempsDigInputs.qml \ No newline at end of file diff --git a/FileSets/v3.50/PageSettingsGenerator.qml b/FileSets/v3.50/PageSettingsGenerator.qml index bf3cf00e..02ea04a1 120000 --- a/FileSets/v3.50/PageSettingsGenerator.qml +++ b/FileSets/v3.50/PageSettingsGenerator.qml @@ -1 +1 @@ -../v3.51~2/PageSettingsGenerator.qml \ No newline at end of file +../v3.51/PageSettingsGenerator.qml \ No newline at end of file diff --git a/FileSets/v3.50/PageSettingsGuiMods.qml b/FileSets/v3.50/PageSettingsGuiMods.qml index 28eb98af..02b84d3d 120000 --- a/FileSets/v3.50/PageSettingsGuiMods.qml +++ b/FileSets/v3.50/PageSettingsGuiMods.qml @@ -1 +1 @@ -../v3.51~2/PageSettingsGuiMods.qml \ No newline at end of file +../v3.51/PageSettingsGuiMods.qml \ No newline at end of file diff --git a/FileSets/v3.50/PageSettingsRelay.qml b/FileSets/v3.50/PageSettingsRelay.qml index 0872b024..7545b2f2 120000 --- a/FileSets/v3.50/PageSettingsRelay.qml +++ b/FileSets/v3.50/PageSettingsRelay.qml @@ -1 +1 @@ -../v3.51~2/PageSettingsRelay.qml \ No newline at end of file +../v3.51/PageSettingsRelay.qml \ No newline at end of file diff --git a/FileSets/v3.50/PowerGauge.qml b/FileSets/v3.50/PowerGauge.qml index 8c1f5473..d063e557 120000 --- a/FileSets/v3.50/PowerGauge.qml +++ b/FileSets/v3.50/PowerGauge.qml @@ -1 +1 @@ -../v3.51~2/PowerGauge.qml \ No newline at end of file +../v3.51/PowerGauge.qml \ No newline at end of file diff --git a/FileSets/v3.50/TileDigIn.qml b/FileSets/v3.50/TileDigIn.qml index 0eab34eb..1066674e 120000 --- a/FileSets/v3.50/TileDigIn.qml +++ b/FileSets/v3.50/TileDigIn.qml @@ -1 +1 @@ -../v3.51~2/TileDigIn.qml \ No newline at end of file +../v3.51/TileDigIn.qml \ No newline at end of file diff --git a/FileSets/v3.50/TileRelay.qml b/FileSets/v3.50/TileRelay.qml index 9cf7d223..9c63a544 120000 --- a/FileSets/v3.50/TileRelay.qml +++ b/FileSets/v3.50/TileRelay.qml @@ -1 +1 @@ -../v3.51~2/TileRelay.qml \ No newline at end of file +../v3.51/TileRelay.qml \ No newline at end of file diff --git a/FileSets/v3.50/dbus_digitalinputs.py b/FileSets/v3.50/dbus_digitalinputs.py index 5c505fbc..010bcb6c 120000 --- a/FileSets/v3.50/dbus_digitalinputs.py +++ b/FileSets/v3.50/dbus_digitalinputs.py @@ -1 +1 @@ -../v3.51~2/dbus_digitalinputs.py \ No newline at end of file +../v3.51/dbus_digitalinputs.py \ No newline at end of file diff --git a/FileSets/v3.50/startstop.py b/FileSets/v3.50/startstop.py index 35d0c9b4..aec9d0d1 120000 --- a/FileSets/v3.50/startstop.py +++ b/FileSets/v3.50/startstop.py @@ -1 +1 @@ -../v3.51~2/startstop.py \ No newline at end of file +../v3.51/startstop.py \ No newline at end of file diff --git a/FileSets/v3.51~2/COMPLETE b/FileSets/v3.51/COMPLETE similarity index 100% rename from FileSets/v3.51~2/COMPLETE rename to FileSets/v3.51/COMPLETE diff --git a/FileSets/v3.51~2/DetailAcInput.qml b/FileSets/v3.51/DetailAcInput.qml similarity index 100% rename from FileSets/v3.51~2/DetailAcInput.qml rename to FileSets/v3.51/DetailAcInput.qml diff --git a/FileSets/v3.51~2/DetailAcInput.qml.orig b/FileSets/v3.51/DetailAcInput.qml.orig similarity index 100% rename from FileSets/v3.51~2/DetailAcInput.qml.orig rename to FileSets/v3.51/DetailAcInput.qml.orig diff --git a/FileSets/v3.51~2/DetailInverter.qml b/FileSets/v3.51/DetailInverter.qml similarity index 100% rename from FileSets/v3.51~2/DetailInverter.qml rename to FileSets/v3.51/DetailInverter.qml diff --git a/FileSets/v3.51~2/DetailInverter.qml.orig b/FileSets/v3.51/DetailInverter.qml.orig similarity index 100% rename from FileSets/v3.51~2/DetailInverter.qml.orig rename to FileSets/v3.51/DetailInverter.qml.orig diff --git a/FileSets/v3.51~2/DetailLoadsCombined.qml b/FileSets/v3.51/DetailLoadsCombined.qml similarity index 100% rename from FileSets/v3.51~2/DetailLoadsCombined.qml rename to FileSets/v3.51/DetailLoadsCombined.qml diff --git a/FileSets/v3.51~2/DetailLoadsCombined.qml.orig b/FileSets/v3.51/DetailLoadsCombined.qml.orig similarity index 100% rename from FileSets/v3.51~2/DetailLoadsCombined.qml.orig rename to FileSets/v3.51/DetailLoadsCombined.qml.orig diff --git a/FileSets/v3.51~2/DetailLoadsOnInput.qml b/FileSets/v3.51/DetailLoadsOnInput.qml similarity index 100% rename from FileSets/v3.51~2/DetailLoadsOnInput.qml rename to FileSets/v3.51/DetailLoadsOnInput.qml diff --git a/FileSets/v3.51~2/DetailLoadsOnInput.qml.orig b/FileSets/v3.51/DetailLoadsOnInput.qml.orig similarity index 100% rename from FileSets/v3.51~2/DetailLoadsOnInput.qml.orig rename to FileSets/v3.51/DetailLoadsOnInput.qml.orig diff --git a/FileSets/v3.51~2/DetailLoadsOnOutput.qml b/FileSets/v3.51/DetailLoadsOnOutput.qml similarity index 100% rename from FileSets/v3.51~2/DetailLoadsOnOutput.qml rename to FileSets/v3.51/DetailLoadsOnOutput.qml diff --git a/FileSets/v3.51~2/DetailLoadsOnOutput.qml.orig b/FileSets/v3.51/DetailLoadsOnOutput.qml.orig similarity index 100% rename from FileSets/v3.51~2/DetailLoadsOnOutput.qml.orig rename to FileSets/v3.51/DetailLoadsOnOutput.qml.orig diff --git a/FileSets/v3.51~2/HubData.qml b/FileSets/v3.51/HubData.qml similarity index 100% rename from FileSets/v3.51~2/HubData.qml rename to FileSets/v3.51/HubData.qml diff --git a/FileSets/v3.51~2/HubData.qml.orig b/FileSets/v3.51/HubData.qml.orig similarity index 100% rename from FileSets/v3.51~2/HubData.qml.orig rename to FileSets/v3.51/HubData.qml.orig diff --git a/FileSets/v3.51~2/ObjectAcConnection.qml b/FileSets/v3.51/ObjectAcConnection.qml similarity index 100% rename from FileSets/v3.51~2/ObjectAcConnection.qml rename to FileSets/v3.51/ObjectAcConnection.qml diff --git a/FileSets/v3.51~2/ObjectAcConnection.qml.orig b/FileSets/v3.51/ObjectAcConnection.qml.orig similarity index 100% rename from FileSets/v3.51~2/ObjectAcConnection.qml.orig rename to FileSets/v3.51/ObjectAcConnection.qml.orig diff --git a/FileSets/v3.51~2/OverviewAcValuesEnhanced.qml b/FileSets/v3.51/OverviewAcValuesEnhanced.qml similarity index 100% rename from FileSets/v3.51~2/OverviewAcValuesEnhanced.qml rename to FileSets/v3.51/OverviewAcValuesEnhanced.qml diff --git a/FileSets/v3.51~2/OverviewAcValuesEnhanced.qml.orig b/FileSets/v3.51/OverviewAcValuesEnhanced.qml.orig similarity index 100% rename from FileSets/v3.51~2/OverviewAcValuesEnhanced.qml.orig rename to FileSets/v3.51/OverviewAcValuesEnhanced.qml.orig diff --git a/FileSets/v3.51~2/OverviewFlowComplex.qml b/FileSets/v3.51/OverviewFlowComplex.qml similarity index 100% rename from FileSets/v3.51~2/OverviewFlowComplex.qml rename to FileSets/v3.51/OverviewFlowComplex.qml diff --git a/FileSets/v3.51~2/OverviewFlowComplex.qml.orig b/FileSets/v3.51/OverviewFlowComplex.qml.orig similarity index 100% rename from FileSets/v3.51~2/OverviewFlowComplex.qml.orig rename to FileSets/v3.51/OverviewFlowComplex.qml.orig diff --git a/FileSets/v3.51~2/OverviewGeneratorEnhanced.qml b/FileSets/v3.51/OverviewGeneratorEnhanced.qml similarity index 100% rename from FileSets/v3.51~2/OverviewGeneratorEnhanced.qml rename to FileSets/v3.51/OverviewGeneratorEnhanced.qml diff --git a/FileSets/v3.51~2/OverviewGeneratorEnhanced.qml.orig b/FileSets/v3.51/OverviewGeneratorEnhanced.qml.orig similarity index 100% rename from FileSets/v3.51~2/OverviewGeneratorEnhanced.qml.orig rename to FileSets/v3.51/OverviewGeneratorEnhanced.qml.orig diff --git a/FileSets/v3.51~2/OverviewGeneratorRelayEnhanced.qml b/FileSets/v3.51/OverviewGeneratorRelayEnhanced.qml similarity index 100% rename from FileSets/v3.51~2/OverviewGeneratorRelayEnhanced.qml rename to FileSets/v3.51/OverviewGeneratorRelayEnhanced.qml diff --git a/FileSets/v3.51~2/OverviewGeneratorRelayEnhanced.qml.orig b/FileSets/v3.51/OverviewGeneratorRelayEnhanced.qml.orig similarity index 100% rename from FileSets/v3.51~2/OverviewGeneratorRelayEnhanced.qml.orig rename to FileSets/v3.51/OverviewGeneratorRelayEnhanced.qml.orig diff --git a/FileSets/v3.51~2/OverviewGridParallel.qml b/FileSets/v3.51/OverviewGridParallel.qml similarity index 100% rename from FileSets/v3.51~2/OverviewGridParallel.qml rename to FileSets/v3.51/OverviewGridParallel.qml diff --git a/FileSets/v3.51~2/OverviewGridParallel.qml.orig b/FileSets/v3.51/OverviewGridParallel.qml.orig similarity index 100% rename from FileSets/v3.51~2/OverviewGridParallel.qml.orig rename to FileSets/v3.51/OverviewGridParallel.qml.orig diff --git a/FileSets/v3.51~2/OverviewHub.qml b/FileSets/v3.51/OverviewHub.qml similarity index 100% rename from FileSets/v3.51~2/OverviewHub.qml rename to FileSets/v3.51/OverviewHub.qml diff --git a/FileSets/v3.51~2/OverviewHub.qml.orig b/FileSets/v3.51/OverviewHub.qml.orig similarity index 100% rename from FileSets/v3.51~2/OverviewHub.qml.orig rename to FileSets/v3.51/OverviewHub.qml.orig diff --git a/FileSets/v3.51~2/OverviewHubEnhanced.qml b/FileSets/v3.51/OverviewHubEnhanced.qml similarity index 100% rename from FileSets/v3.51~2/OverviewHubEnhanced.qml rename to FileSets/v3.51/OverviewHubEnhanced.qml diff --git a/FileSets/v3.51~2/OverviewHubEnhanced.qml.orig b/FileSets/v3.51/OverviewHubEnhanced.qml.orig similarity index 100% rename from FileSets/v3.51~2/OverviewHubEnhanced.qml.orig rename to FileSets/v3.51/OverviewHubEnhanced.qml.orig diff --git a/FileSets/v3.51~2/OverviewMobileEnhanced.qml b/FileSets/v3.51/OverviewMobileEnhanced.qml similarity index 100% rename from FileSets/v3.51~2/OverviewMobileEnhanced.qml rename to FileSets/v3.51/OverviewMobileEnhanced.qml diff --git a/FileSets/v3.51~2/OverviewMobileEnhanced.qml.orig b/FileSets/v3.51/OverviewMobileEnhanced.qml.orig similarity index 100% rename from FileSets/v3.51~2/OverviewMobileEnhanced.qml.orig rename to FileSets/v3.51/OverviewMobileEnhanced.qml.orig diff --git a/FileSets/v3.51~2/OverviewTanksTempsDigInputs.qml b/FileSets/v3.51/OverviewTanksTempsDigInputs.qml similarity index 100% rename from FileSets/v3.51~2/OverviewTanksTempsDigInputs.qml rename to FileSets/v3.51/OverviewTanksTempsDigInputs.qml diff --git a/FileSets/v3.51~2/OverviewTanksTempsDigInputs.qml.orig b/FileSets/v3.51/OverviewTanksTempsDigInputs.qml.orig similarity index 100% rename from FileSets/v3.51~2/OverviewTanksTempsDigInputs.qml.orig rename to FileSets/v3.51/OverviewTanksTempsDigInputs.qml.orig diff --git a/FileSets/v3.51~2/PageGenerator.qml.USE_ORIGINAL b/FileSets/v3.51/PageGenerator.qml.USE_ORIGINAL similarity index 100% rename from FileSets/v3.51~2/PageGenerator.qml.USE_ORIGINAL rename to FileSets/v3.51/PageGenerator.qml.USE_ORIGINAL diff --git a/FileSets/v3.51~2/PageSettingsGenerator.qml b/FileSets/v3.51/PageSettingsGenerator.qml similarity index 100% rename from FileSets/v3.51~2/PageSettingsGenerator.qml rename to FileSets/v3.51/PageSettingsGenerator.qml diff --git a/FileSets/v3.51~2/PageSettingsGenerator.qml.orig b/FileSets/v3.51/PageSettingsGenerator.qml.orig similarity index 100% rename from FileSets/v3.51~2/PageSettingsGenerator.qml.orig rename to FileSets/v3.51/PageSettingsGenerator.qml.orig diff --git a/FileSets/v3.51~2/PageSettingsGuiMods.qml b/FileSets/v3.51/PageSettingsGuiMods.qml similarity index 100% rename from FileSets/v3.51~2/PageSettingsGuiMods.qml rename to FileSets/v3.51/PageSettingsGuiMods.qml diff --git a/FileSets/v3.51~2/PageSettingsGuiMods.qml.orig b/FileSets/v3.51/PageSettingsGuiMods.qml.orig similarity index 100% rename from FileSets/v3.51~2/PageSettingsGuiMods.qml.orig rename to FileSets/v3.51/PageSettingsGuiMods.qml.orig diff --git a/FileSets/v3.51~2/PageSettingsRelay.qml b/FileSets/v3.51/PageSettingsRelay.qml similarity index 100% rename from FileSets/v3.51~2/PageSettingsRelay.qml rename to FileSets/v3.51/PageSettingsRelay.qml diff --git a/FileSets/v3.51~2/PageSettingsRelay.qml.orig b/FileSets/v3.51/PageSettingsRelay.qml.orig similarity index 100% rename from FileSets/v3.51~2/PageSettingsRelay.qml.orig rename to FileSets/v3.51/PageSettingsRelay.qml.orig diff --git a/FileSets/v3.51~2/PowerGauge.qml b/FileSets/v3.51/PowerGauge.qml similarity index 100% rename from FileSets/v3.51~2/PowerGauge.qml rename to FileSets/v3.51/PowerGauge.qml diff --git a/FileSets/v3.51~2/PowerGauge.qml.orig b/FileSets/v3.51/PowerGauge.qml.orig similarity index 100% rename from FileSets/v3.51~2/PowerGauge.qml.orig rename to FileSets/v3.51/PowerGauge.qml.orig diff --git a/FileSets/v3.51~2/TileDigIn.qml b/FileSets/v3.51/TileDigIn.qml similarity index 100% rename from FileSets/v3.51~2/TileDigIn.qml rename to FileSets/v3.51/TileDigIn.qml diff --git a/FileSets/v3.51~2/TileDigIn.qml.orig b/FileSets/v3.51/TileDigIn.qml.orig similarity index 100% rename from FileSets/v3.51~2/TileDigIn.qml.orig rename to FileSets/v3.51/TileDigIn.qml.orig diff --git a/FileSets/v3.51~2/TileRelay.qml b/FileSets/v3.51/TileRelay.qml similarity index 100% rename from FileSets/v3.51~2/TileRelay.qml rename to FileSets/v3.51/TileRelay.qml diff --git a/FileSets/v3.51~2/TileRelay.qml.orig b/FileSets/v3.51/TileRelay.qml.orig similarity index 100% rename from FileSets/v3.51~2/TileRelay.qml.orig rename to FileSets/v3.51/TileRelay.qml.orig diff --git a/FileSets/v3.51~2/dbus_digitalinputs.py b/FileSets/v3.51/dbus_digitalinputs.py similarity index 100% rename from FileSets/v3.51~2/dbus_digitalinputs.py rename to FileSets/v3.51/dbus_digitalinputs.py diff --git a/FileSets/v3.51~2/dbus_digitalinputs.py.orig b/FileSets/v3.51/dbus_digitalinputs.py.orig similarity index 100% rename from FileSets/v3.51~2/dbus_digitalinputs.py.orig rename to FileSets/v3.51/dbus_digitalinputs.py.orig diff --git a/FileSets/v3.51~2/startstop.py b/FileSets/v3.51/startstop.py similarity index 100% rename from FileSets/v3.51~2/startstop.py rename to FileSets/v3.51/startstop.py diff --git a/FileSets/v3.51~2/startstop.py.orig b/FileSets/v3.51/startstop.py.orig similarity index 100% rename from FileSets/v3.51~2/startstop.py.orig rename to FileSets/v3.51/startstop.py.orig diff --git a/changes b/changes index 1a599768..b7173a0d 100644 --- a/changes +++ b/changes @@ -1,3 +1,6 @@ +v10.75: + added support for v3.51 + v10.74: fixed: generator overview stock/enhanced not working diff --git a/version b/version index e54f0050..646dce79 100644 --- a/version +++ b/version @@ -1 +1 @@ -v10.74 +v10.75