├── .gitattributes ├── .github └── workflows │ └── latest-tag.yml ├── .gitignore ├── DbusSettingsList ├── ExtTransferSwitch.py ├── FileSets ├── AlternateOriginals │ ├── OverviewFlowComplex.qml.ALT_ORIG │ ├── OverviewGeneratorEnhanced.qml.ALT_ORIG │ ├── OverviewHubEnhanced.qml.ALT_ORIG │ ├── OverviewMobileEnhanced.qml.ALT_ORIG │ ├── PageSettingsGuiMods.qml.ALT_ORIG │ └── PowerGauge.qml.ALT_ORIG ├── PatchSource │ ├── Battery.qml-v3.34 │ ├── Battery.qml-v3.34.orig │ ├── Battery.qml-v3.34.patch │ ├── Battery.qml-v3.40 │ ├── Battery.qml-v3.40.orig │ ├── Battery.qml-v3.40.patch │ ├── HubData.qml │ ├── HubData.qml.orig │ ├── HubData.qml.patch │ ├── MbEditBox.qml-v3.40 │ ├── MbEditBox.qml-v3.40.orig │ ├── MbEditBox.qml-v3.40.patch │ ├── MbEditBox.qml-v3.50 │ ├── MbEditBox.qml-v3.50.orig │ ├── MbEditBox.qml-v3.50.patch │ ├── MbEditBoxDateTime.qml │ ├── MbEditBoxDateTime.qml.orig │ ├── MbEditBoxDateTime.qml.patch │ ├── MbItem.qml-v3.40 │ ├── MbItem.qml-v3.40.orig │ ├── MbItem.qml-v3.40.patch │ ├── MbItem.qml-v3.50 │ ├── MbItem.qml-v3.50.orig │ ├── MbItem.qml-v3.50.patch │ ├── MbItem.qml.patch │ ├── MbItemDigitalInput.qml-v3.40 │ ├── MbItemDigitalInput.qml-v3.40.orig │ ├── MbItemDigitalInput.qml-v3.40.patch │ ├── MbSpinBox.qml-v3.40 │ ├── MbSpinBox.qml-v3.40.orig │ ├── MbSpinBox.qml-v3.40.patch │ ├── MbStyle.qml-v3.40 │ ├── MbStyle.qml-v3.40.orig │ ├── MbStyle.qml-v3.40.patch │ ├── MbSubMenu.qml │ ├── MbSubMenu.qml.orig │ ├── MbSubMenu.qml.patch │ ├── Multi.qml │ ├── Multi.qml.orig │ ├── Multi.qml.patch │ ├── ObjectAcConnection.qml │ ├── ObjectAcConnection.qml.orig │ ├── ObjectAcConnection.qml.patch │ ├── OverviewBox.qml │ ├── OverviewBox.qml.orig │ ├── OverviewBox.qml.patch │ ├── OverviewConnection.qml │ ├── OverviewConnection.qml.orig │ ├── OverviewConnection.qml.patch │ ├── OverviewConnectionEnd.qml │ ├── OverviewConnectionEnd.qml.orig │ ├── OverviewConnectionEnd.qml.patch │ ├── OverviewGridParallel.qml │ ├── OverviewGridParallel.qml.orig │ ├── OverviewGridParallel.qml.patch │ ├── OverviewHub.qml │ ├── OverviewHub.qml.orig │ ├── OverviewHub.qml.patch │ ├── OverviewSolarCharger.qml │ ├── OverviewSolarCharger.qml.orig │ ├── OverviewSolarCharger.qml.patch │ ├── OverviewSolarInverter.qml │ ├── OverviewSolarInverter.qml.orig │ ├── OverviewSolarInverter.qml.patch │ ├── OverviewTankDelegate.qml │ ├── OverviewTankDelegate.qml.orig │ ├── OverviewTankDelegate.qml.patch │ ├── OverviewTanks.qml │ ├── OverviewTanks.qml.orig │ ├── OverviewTanks.qml.patch │ ├── PageDigitalInput.qml │ ├── PageDigitalInput.qml.orig │ ├── PageDigitalInput.qml.patch │ ├── PageGeneratorConditions.qml │ ├── PageGeneratorConditions.qml.orig │ ├── PageGeneratorConditions.qml.patch │ ├── PageMain.qml-v3.22 │ ├── PageMain.qml-v3.22.orig │ ├── PageMain.qml-v3.22.patch │ ├── PageMain.qml-v3.34 │ ├── PageMain.qml-v3.34.orig │ ├── PageMain.qml-v3.34.patch │ ├── PageMain.qml-v3.40 │ ├── PageMain.qml-v3.40.orig │ ├── PageMain.qml-v3.40.patch │ ├── PageMain.qml-v3.60~21 │ ├── PageMain.qml-v3.60~21.orig │ ├── PageMain.qml-v3.60~21.patch │ ├── PageSettingsDisplay.qml-v3.14 │ ├── PageSettingsDisplay.qml-v3.14.orig │ ├── PageSettingsDisplay.qml-v3.14.patch │ ├── PageSettingsDisplay.qml-v3.22 │ ├── PageSettingsDisplay.qml-v3.22.orig │ ├── PageSettingsDisplay.qml-v3.22.patch │ ├── PageSettingsDisplay.qml-v3.34 │ ├── PageSettingsDisplay.qml-v3.34.orig │ ├── PageSettingsDisplay.qml-v3.34.patch │ ├── PageSettingsDisplay.qml-v3.40 │ ├── PageSettingsDisplay.qml-v3.40.orig │ ├── PageSettingsDisplay.qml-v3.40.patch │ ├── PageSettingsGenerator.qml │ ├── PageSettingsGenerator.qml.orig │ ├── PageSettingsGenerator.qml.patch │ ├── PageSettingsRelay.qml-v3.22 │ ├── PageSettingsRelay.qml-v3.22.orig │ ├── PageSettingsRelay.qml-v3.22.patch │ ├── PageSettingsRelay.qml-v3.55 │ ├── PageSettingsRelay.qml-v3.55.orig │ ├── PageSettingsRelay.qml-v3.55.patch │ ├── Tile.qml-v3.41 │ ├── Tile.qml-v3.41.orig │ ├── Tile.qml-v3.41.patch │ ├── Tile.qml-v3.60~53 │ ├── Tile.qml-v3.60~53.orig │ ├── Tile.qml-v3.60~53.patch │ ├── TileText.qml │ ├── TileText.qml.orig │ ├── TileText.qml.patch │ ├── attributes.csv-v3.40 │ ├── attributes.csv-v3.40.orig │ ├── attributes.csv-v3.40.patch │ ├── attributes.csv.patchOptions │ ├── dbus_digitalinputs.py-v3.41 │ ├── dbus_digitalinputs.py-v3.41.orig │ ├── dbus_digitalinputs.py-v3.41.patch │ ├── dbus_digitalinputs.py-v3.55 │ ├── dbus_digitalinputs.py-v3.55.orig │ ├── dbus_digitalinputs.py-v3.55.patch │ ├── dbus_generator.py-v3.41 │ ├── dbus_generator.py-v3.41.orig │ ├── dbus_generator.py-v3.41.patch │ ├── dbus_generator.py-v3.60~53 │ ├── dbus_generator.py-v3.60~53.orig │ ├── dbus_generator.py-v3.60~53.patch │ ├── dbus_systemcalc.py-v3.14 │ ├── dbus_systemcalc.py-v3.14.orig │ ├── dbus_systemcalc.py-v3.14.patch │ ├── dbus_systemcalc.py-v3.34 │ ├── dbus_systemcalc.py-v3.34.orig │ ├── dbus_systemcalc.py-v3.34.patch │ ├── dbus_systemcalc.py-v3.40 │ ├── dbus_systemcalc.py-v3.40.orig │ ├── dbus_systemcalc.py-v3.40.patch │ ├── dbus_systemcalc.py-v3.50 │ ├── dbus_systemcalc.py-v3.50.orig │ ├── dbus_systemcalc.py-v3.50.patch │ ├── dbus_systemcalc.py-v3.52 │ ├── dbus_systemcalc.py-v3.52.orig │ ├── dbus_systemcalc.py-v3.52.patch │ ├── dbus_systemcalc.py-v3.53 │ ├── dbus_systemcalc.py-v3.53.orig │ ├── dbus_systemcalc.py-v3.53.patch │ ├── dbus_systemcalc.py-v3.55 │ ├── dbus_systemcalc.py-v3.55.orig │ ├── dbus_systemcalc.py-v3.55.patch │ ├── dbus_systemcalc.py-v3.60~60 │ ├── dbus_systemcalc.py-v3.60~60.orig │ ├── dbus_systemcalc.py-v3.60~60.patch │ ├── main.qml-v3.22 │ ├── main.qml-v3.22.orig │ ├── main.qml-v3.22.patch │ ├── main.qml-v3.34 │ ├── main.qml-v3.34.orig │ ├── main.qml-v3.34.patch │ ├── main.qml-v3.40 │ ├── main.qml-v3.40.orig │ ├── main.qml-v3.40.patch │ ├── main.qml-v3.50 │ ├── main.qml-v3.50.orig │ ├── main.qml-v3.50.patch │ ├── main.qml-v3.51 │ ├── main.qml-v3.51.orig │ ├── main.qml-v3.51.patch │ ├── startstop.py-v3.14 │ ├── startstop.py-v3.14.orig │ ├── startstop.py-v3.14.patch │ ├── startstop.py-v3.31 │ ├── startstop.py-v3.31.orig │ ├── startstop.py-v3.31.patch │ ├── startstop.py-v3.41 │ ├── startstop.py-v3.41.orig │ ├── startstop.py-v3.41.patch │ ├── startstop.py-v3.53 │ ├── startstop.py-v3.53.orig │ ├── startstop.py-v3.53.patch │ ├── startstop.py-v3.60~16 │ ├── startstop.py-v3.60~16.orig │ ├── startstop.py-v3.60~16.patch │ ├── startstop.py-v3.60~25 │ ├── startstop.py-v3.60~25.orig │ ├── startstop.py-v3.60~25.patch │ ├── startstop.py-v3.60~53 │ ├── startstop.py-v3.60~53.orig │ ├── startstop.py-v3.60~53.patch │ ├── styles.css │ ├── styles.css.orig │ └── styles.css.patch ├── VersionIndependent │ ├── DcSystemRow.qml │ ├── DetailAcCharger.qml │ ├── DetailAcInput.qml │ ├── DetailAlternator.qml │ ├── DetailBattery.qml │ ├── DetailButton.qml │ ├── DetailDcSystem.qml │ ├── DetailFuelCell.qml │ ├── DetailInverter.qml │ ├── DetailLoadsCombined.qml │ ├── DetailLoadsOnInput.qml │ ├── DetailLoadsOnOutput.qml │ ├── DetailMotorDrive.qml │ ├── DetailPvCharger.qml │ ├── DetailPvInverter.qml │ ├── DetailTarget.qml │ ├── DetailWindGen.qml │ ├── LedText.qml │ ├── MarqueeEnhanced.qml │ ├── MultiEnhanced.qml │ ├── MultiEnhancedGP.qml │ ├── OverviewAcValuesEnhanced.qml │ ├── OverviewGeneratorRelayEnhanced.qml │ ├── OverviewRelays.qml │ ├── OverviewTanksTempsDigInputs.qml │ ├── PageSettingsGuiModsGauges.qml │ ├── PowerGaugeBattery.qml │ ├── PowerGaugeMulti.qml │ ├── PvChargerRow.qml │ ├── PvInverterRow.qml │ ├── SystemReasonMessage.qml │ ├── SystemStateShort.qml │ ├── TileAutoRunEnhanced.qml │ ├── TileDigIn.qml │ ├── TileManualStartEnhanced.qml │ ├── TileRelay.qml │ ├── TileTankEnhanced.qml │ ├── TileTemp.qml │ ├── enhancedFormat.js │ ├── overview-renewable-light.svg │ └── timeToGo.js ├── fileList ├── fileListPatched ├── fileListVersionIndependent ├── v3.10 │ ├── COMPLETE │ ├── DetailInverter.qml │ ├── OverviewFlowComplex.qml │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewGeneratorEnhanced.qml.orig │ ├── OverviewHubEnhanced.qml │ ├── OverviewMobileEnhanced.qml │ ├── PageGenerator.qml │ ├── PageGenerator.qml.orig │ ├── PageSettingsGuiMods.qml │ └── PowerGauge.qml ├── v3.11 │ ├── COMPLETE │ ├── DetailInverter.qml │ ├── LINKS_ONLY │ ├── OverviewFlowComplex.qml │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewHubEnhanced.qml │ ├── OverviewMobileEnhanced.qml │ ├── PageGenerator.qml │ ├── PageSettingsGuiMods.qml │ └── PowerGauge.qml ├── v3.12 │ ├── COMPLETE │ ├── DetailInverter.qml │ ├── LINKS_ONLY │ ├── OverviewFlowComplex.qml │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewHubEnhanced.qml │ ├── OverviewMobileEnhanced.qml │ ├── PageGenerator.qml │ ├── PageSettingsGuiMods.qml │ └── PowerGauge.qml ├── v3.13 │ ├── COMPLETE │ ├── DetailInverter.qml │ ├── LINKS_ONLY │ ├── OverviewFlowComplex.qml │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewHubEnhanced.qml │ ├── OverviewMobileEnhanced.qml │ ├── PageGenerator.qml │ ├── PageSettingsGuiMods.qml │ └── PowerGauge.qml ├── v3.14 │ ├── COMPLETE │ ├── DetailInverter.qml │ ├── OverviewFlowComplex.qml │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewHubEnhanced.qml │ ├── OverviewMobileEnhanced.qml │ ├── PageGenerator.qml │ ├── PageSettingsGuiMods.qml │ ├── PageSettingsGuiMods.qml.orig │ └── PowerGauge.qml ├── v3.20 │ ├── COMPLETE │ ├── DetailInverter.qml │ ├── LINKS_ONLY │ ├── OverviewFlowComplex.qml │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewHubEnhanced.qml │ ├── OverviewMobileEnhanced.qml │ ├── PageGenerator.qml │ ├── PageSettingsGuiMods.qml │ └── PowerGauge.qml ├── v3.21 │ ├── COMPLETE │ ├── DetailInverter.qml │ ├── LINKS_ONLY │ ├── OverviewFlowComplex.qml │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewHubEnhanced.qml │ ├── OverviewMobileEnhanced.qml │ ├── PageGenerator.qml │ ├── PageSettingsGuiMods.qml │ └── PowerGauge.qml ├── v3.22 │ ├── COMPLETE │ ├── DetailInverter.qml │ ├── OverviewFlowComplex.qml │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewHubEnhanced.qml │ ├── OverviewMobileEnhanced.qml │ ├── PageGenerator.qml │ ├── PageSettingsGuiMods.qml │ ├── PageSettingsGuiMods.qml.orig │ └── PowerGauge.qml ├── v3.30 │ ├── COMPLETE │ ├── DetailInverter.qml │ ├── LINKS_ONLY │ ├── OverviewFlowComplex.qml │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewHubEnhanced.qml │ ├── OverviewMobileEnhanced.qml │ ├── PageGenerator.qml │ ├── PageSettingsGuiMods.qml │ └── PowerGauge.qml ├── v3.31 │ ├── COMPLETE │ ├── DetailInverter.qml │ ├── OverviewFlowComplex.qml │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewGeneratorEnhanced.qml.orig │ ├── OverviewHubEnhanced.qml │ ├── OverviewMobileEnhanced.qml │ ├── PageGenerator.qml │ ├── PageGenerator.qml.orig │ ├── PageSettingsGuiMods.qml │ └── PowerGauge.qml ├── v3.33 │ ├── COMPLETE │ ├── DetailInverter.qml │ ├── LINKS_ONLY │ ├── OverviewFlowComplex.qml │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewHubEnhanced.qml │ ├── OverviewMobileEnhanced.qml │ ├── PageGenerator.qml │ ├── PageSettingsGuiMods.qml │ └── PowerGauge.qml ├── v3.34 │ ├── COMPLETE │ ├── DetailInverter.qml │ ├── DetailInverter.qml.orig │ ├── OverviewFlowComplex.qml │ ├── OverviewFlowComplex.qml.orig │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewHubEnhanced.qml │ ├── OverviewHubEnhanced.qml.orig │ ├── OverviewMobileEnhanced.qml │ ├── PageGenerator.qml │ ├── PageSettingsGuiMods.qml │ ├── PowerGauge.qml │ └── PowerGauge.qml.orig ├── v3.40 │ ├── COMPLETE │ ├── DetailInverter.qml │ ├── LINKS_ONLY │ ├── OverviewFlowComplex.qml │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewHubEnhanced.qml │ ├── OverviewMobileEnhanced.qml │ ├── PageGenerator.qml │ ├── PageSettingsGuiMods.qml │ └── PowerGauge.qml ├── v3.41 │ ├── COMPLETE │ ├── DetailInverter.qml │ ├── OverviewFlowComplex.qml │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewGeneratorEnhanced.qml.orig │ ├── OverviewHubEnhanced.qml │ ├── OverviewMobileEnhanced.qml │ ├── OverviewMobileEnhanced.qml.orig │ ├── PageGenerator.qml │ ├── PageGenerator.qml.orig │ ├── PageSettingsGuiMods.qml │ ├── PageSettingsGuiMods.qml.orig │ └── PowerGauge.qml ├── v3.50 │ ├── COMPLETE │ ├── DetailInverter.qml │ ├── LINKS_ONLY │ ├── OverviewFlowComplex.qml │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewHubEnhanced.qml │ ├── OverviewMobileEnhanced.qml │ ├── PageGenerator.qml.USE_ORIGINAL │ ├── PageSettingsGuiMods.qml │ └── PowerGauge.qml ├── v3.51 │ ├── COMPLETE │ ├── DetailInverter.qml │ ├── LINKS_ONLY │ ├── OverviewFlowComplex.qml │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewHubEnhanced.qml │ ├── OverviewMobileEnhanced.qml │ ├── PageGenerator.qml.USE_ORIGINAL │ ├── PageSettingsGuiMods.qml │ └── PowerGauge.qml ├── v3.52 │ ├── COMPLETE │ ├── DetailInverter.qml │ ├── LINKS_ONLY │ ├── OverviewFlowComplex.qml │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewHubEnhanced.qml │ ├── OverviewMobileEnhanced.qml │ ├── PageGenerator.qml.USE_ORIGINAL │ ├── PageSettingsGuiMods.qml │ └── PowerGauge.qml ├── v3.53 │ ├── COMPLETE │ ├── DetailInverter.qml │ ├── LINKS_ONLY │ ├── OverviewFlowComplex.qml │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewHubEnhanced.qml │ ├── OverviewMobileEnhanced.qml │ ├── PageGenerator.qml.USE_ORIGINAL │ ├── PageSettingsGuiMods.qml │ └── PowerGauge.qml ├── v3.54 │ ├── COMPLETE │ ├── DetailInverter.qml │ ├── LINKS_ONLY │ ├── OverviewFlowComplex.qml │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewHubEnhanced.qml │ ├── OverviewMobileEnhanced.qml │ ├── PageGenerator.qml.USE_ORIGINAL │ ├── PageSettingsGuiMods.qml │ └── PowerGauge.qml ├── v3.55 │ ├── COMPLETE │ ├── LINKS_ONLY │ ├── OverviewFlowComplex.qml │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewHubEnhanced.qml │ ├── OverviewMobileEnhanced.qml │ ├── PageGenerator.qml.USE_ORIGINAL │ ├── PageSettingsGuiMods.qml │ └── PowerGauge.qml ├── v3.60~15 │ ├── COMPLETE │ ├── DetailInverter.qml │ ├── LINKS_ONLY │ ├── OverviewFlowComplex.qml │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewHubEnhanced.qml │ ├── OverviewMobileEnhanced.qml │ ├── PageGenerator.qml.USE_ORIGINAL │ ├── PageSettingsGuiMods.qml │ └── PowerGauge.qml ├── v3.60~16 │ ├── COMPLETE │ ├── DetailInverter.qml │ ├── LINKS_ONLY │ ├── OverviewFlowComplex.qml │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewHubEnhanced.qml │ ├── OverviewMobileEnhanced.qml │ ├── PageGenerator.qml.USE_ORIGINAL │ ├── PageSettingsGuiMods.qml │ └── PowerGauge.qml ├── v3.60~17 │ ├── COMPLETE │ ├── DetailInverter.qml │ ├── DetailInverter.qml.orig │ ├── OverviewFlowComplex.qml │ ├── OverviewFlowComplex.qml.orig │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewGeneratorEnhanced.qml.orig │ ├── OverviewHubEnhanced.qml │ ├── OverviewHubEnhanced.qml.orig │ ├── OverviewMobileEnhanced.qml │ ├── OverviewMobileEnhanced.qml.orig │ ├── PageGenerator.qml.USE_ORIGINAL │ ├── PageGenerator.qml.orig │ ├── PageSettingsGuiMods.qml │ ├── PageSettingsGuiMods.qml.orig │ ├── PowerGauge.qml │ └── PowerGauge.qml.orig ├── v3.60~21 │ ├── COMPLETE │ ├── DetailInverter.qml │ ├── LINKS_ONLY │ ├── OverviewFlowComplex.qml │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewHubEnhanced.qml │ ├── OverviewMobileEnhanced.qml │ ├── PageGenerator.qml.USE_ORIGINAL │ ├── PageSettingsGuiMods.qml │ └── PowerGauge.qml ├── v3.60~25 │ ├── COMPLETE │ ├── DetailInverter.qml │ ├── OverviewFlowComplex.qml │ ├── OverviewFlowComplex.qml.orig │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewHubEnhanced.qml │ ├── OverviewHubEnhanced.qml.orig │ ├── OverviewMobileEnhanced.qml │ ├── OverviewMobileEnhanced.qml.orig │ ├── PageGenerator.qml.USE_ORIGINAL │ ├── PageSettingsGuiMods.qml │ └── PowerGauge.qml ├── v3.60~53 │ ├── COMPLETE │ ├── DetailInverter.qml │ ├── DetailInverter.qml.orig │ ├── LINKS_ONLY │ ├── OverviewFlowComplex.qml │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewHubEnhanced.qml │ ├── OverviewMobileEnhanced.qml │ ├── PageGenerator.qml.USE_ORIGINAL │ ├── PageSettingsGuiMods.qml │ └── PowerGauge.qml ├── v3.60~57 │ ├── COMPLETE │ ├── LINKS_ONLY │ ├── OverviewFlowComplex.qml │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewHubEnhanced.qml │ ├── OverviewMobileEnhanced.qml │ ├── PageGenerator.qml.USE_ORIGINAL │ ├── PageSettingsGuiMods.qml │ └── PowerGauge.qml ├── v3.60~58 │ ├── COMPLETE │ ├── LINKS_ONLY │ ├── OverviewFlowComplex.qml │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewHubEnhanced.qml │ ├── OverviewMobileEnhanced.qml │ ├── PageGenerator.qml.USE_ORIGINAL │ ├── PageSettingsGuiMods.qml │ └── PowerGauge.qml ├── v3.60~59 │ ├── COMPLETE │ ├── LINKS_ONLY │ ├── OverviewFlowComplex.qml │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewHubEnhanced.qml │ ├── OverviewMobileEnhanced.qml │ ├── PageGenerator.qml.USE_ORIGINAL │ ├── PageSettingsGuiMods.qml │ └── PowerGauge.qml ├── v3.60~60 │ ├── COMPLETE │ ├── LINKS_ONLY │ ├── OverviewFlowComplex.qml │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewHubEnhanced.qml │ ├── OverviewMobileEnhanced.qml │ ├── PageGenerator.qml.USE_ORIGINAL │ ├── PageSettingsGuiMods.qml │ └── PowerGauge.qml └── v3.60~65 │ ├── COMPLETE │ ├── OverviewFlowComplex.qml │ ├── OverviewFlowComplex.qml.orig │ ├── OverviewGeneratorEnhanced.qml │ ├── OverviewGeneratorEnhanced.qml.orig │ ├── OverviewHubEnhanced.qml │ ├── OverviewHubEnhanced.qml.orig │ ├── OverviewMobileEnhanced.qml │ ├── OverviewMobileEnhanced.qml.orig │ ├── PageGenerator.qml.USE_ORIGINAL │ ├── PageGenerator.qml.orig │ ├── PageSettingsGuiMods.qml │ ├── PageSettingsGuiMods.qml.orig │ ├── PowerGauge.qml │ └── PowerGauge.qml.orig ├── ReadMe ├── changes ├── firstCompatibleVersion ├── gitHubInfo ├── packageDependencies ├── services └── ExtTransferSwitch │ ├── log │ └── run │ └── run ├── setup └── version /.gitattributes: -------------------------------------------------------------------------------- 1 | # Set default behaviour, in case users don't have core.autocrlf set. 2 | * text=auto eol=lf 3 | 4 | # Denote all files that are truly binary and should not be modified. 5 | *.gif binary 6 | *.jpg binary 7 | *.png binary 8 | *.zip binary 9 | -------------------------------------------------------------------------------- /.github/workflows/latest-tag.yml: -------------------------------------------------------------------------------- 1 | name: Add latest tag to new release 2 | on: 3 | release: 4 | types: [published] 5 | workflow_dispatch: 6 | 7 | jobs: 8 | run: 9 | name: Run local action 10 | runs-on: ubuntu-latest 11 | steps: 12 | - name: Checkout repository 13 | uses: actions/checkout@master 14 | 15 | - name: Run latest-tag 16 | uses: EndBug/latest-tag@v1 17 | env: 18 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 19 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /FileSets/AlternateOriginals/OverviewFlowComplex.qml.ALT_ORIG: -------------------------------------------------------------------------------- 1 | /opt/victronenergy/gui/qml/OverviewGridParallel.qml 2 | -------------------------------------------------------------------------------- /FileSets/AlternateOriginals/OverviewGeneratorEnhanced.qml.ALT_ORIG: -------------------------------------------------------------------------------- 1 | /opt/victronenergy/gui/qml/PageGenerator.qml 2 | -------------------------------------------------------------------------------- /FileSets/AlternateOriginals/OverviewHubEnhanced.qml.ALT_ORIG: -------------------------------------------------------------------------------- 1 | /opt/victronenergy/gui/qml/OverviewHub.qml 2 | -------------------------------------------------------------------------------- /FileSets/AlternateOriginals/OverviewMobileEnhanced.qml.ALT_ORIG: -------------------------------------------------------------------------------- 1 | /opt/victronenergy/gui/qml/OverviewMobile.qml 2 | -------------------------------------------------------------------------------- /FileSets/AlternateOriginals/PageSettingsGuiMods.qml.ALT_ORIG: -------------------------------------------------------------------------------- 1 | /opt/victronenergy/gui/qml/PageSettingsHub4.qml 2 | -------------------------------------------------------------------------------- /FileSets/AlternateOriginals/PowerGauge.qml.ALT_ORIG: -------------------------------------------------------------------------------- 1 | /opt/victronenergy/gui/qml/HubData.qml 2 | -------------------------------------------------------------------------------- /FileSets/PatchSource/Battery.qml-v3.34: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | 3 | Item { 4 | id: root 5 | 6 | width: 145 7 | height: 101 8 | 9 | ////// GuiMods — DarkMode 10 | property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 11 | property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 12 | 13 | property real soc: 80 14 | ////// GuiMods — DarkMode 15 | property string color: !darkMode ? "#4789d0" : "#234468" 16 | property string emptyColor: !darkMode ? "#1abc9c" : "#0d5e4e" 17 | property alias values: _values.children 18 | 19 | SvgRectangle { 20 | id: leftTerminal 21 | width: 12 22 | height: 8 23 | radius: 3 24 | color: soc < 100 ? emptyColor : root.color 25 | anchors { 26 | left: root.left; leftMargin: 12 27 | } 28 | x: 12 29 | } 30 | 31 | SvgRectangle { 32 | id: rightTerminal 33 | width: 12 34 | height: 8 35 | radius: 3 36 | color: soc < 100 ? emptyColor : root.color 37 | anchors { 38 | right: root.right; rightMargin: 12 39 | } 40 | } 41 | 42 | Rectangle { 43 | id: background 44 | 45 | // NOTE: to remove the bottom of the terminals 46 | ////// GuiMods — DarkMode 47 | border {width: 2; color: !darkMode ? "white" : "#202020"} 48 | height: root.height - leftTerminal.height 49 | width: root.width 50 | y: leftTerminal.height - 1 51 | 52 | SvgRectangle { 53 | height: parent.height 54 | width: parent.width 55 | color: root.emptyColor 56 | radius: 3 57 | } 58 | 59 | SvgRectangle { 60 | id: filledPart 61 | width: root.width 62 | height: soc * background.height / 100 63 | color: root.color 64 | anchors.bottom: parent.bottom 65 | radius: 3 66 | } 67 | 68 | SvgRectangle { 69 | height: parent.height 70 | width: parent.width * 0.7 71 | anchors.centerIn: parent 72 | ////// GuiMods — DarkMode 73 | color: !darkMode ? "#ffffff" : "#202020" 74 | opacity: 0.06 75 | } 76 | } 77 | 78 | MbIcon { 79 | source: getBatteryLogo() 80 | anchors { 81 | right: parent.right; rightMargin: 4 82 | bottom: parent.bottom; bottomMargin: 4 83 | } 84 | 85 | function getBatteryLogo() 86 | { 87 | var pid = sys.batteryProductId.value 88 | var logo = "" 89 | 90 | if (pid === 0xB014) 91 | logo = "image://theme/overview-battery-freedomwon" 92 | 93 | return logo 94 | } 95 | } 96 | 97 | Text { 98 | text: "-" 99 | font.pixelSize: 13; font.bold: true 100 | anchors.centerIn: leftTerminal 101 | anchors.verticalCenterOffset: 12 102 | ////// GuiMods — DarkMode 103 | color: !darkMode ? "#fff" : "#e1e1e1" 104 | } 105 | 106 | Text { 107 | text: "+" 108 | font.pixelSize: 13; font.bold: true 109 | anchors.centerIn: rightTerminal 110 | anchors.verticalCenterOffset: 12 111 | ////// GuiMods — DarkMode 112 | color: !darkMode ? "#fff" : "#e1e1e1" 113 | } 114 | 115 | Item { 116 | id: _values 117 | anchors { 118 | top: background.top; 119 | bottom: root.bottom 120 | left: root.left 121 | right: root.right 122 | } 123 | } 124 | } 125 | -------------------------------------------------------------------------------- /FileSets/PatchSource/Battery.qml-v3.34.orig: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | 3 | Item { 4 | id: root 5 | 6 | width: 145 7 | height: 101 8 | 9 | property real soc: 80 10 | property string color: "#4789d0" 11 | property string emptyColor: "#1abc9c" 12 | property alias values: _values.children 13 | 14 | SvgRectangle { 15 | id: leftTerminal 16 | width: 12 17 | height: 8 18 | radius: 3 19 | color: soc < 100 ? emptyColor : root.color 20 | anchors { 21 | left: root.left; leftMargin: 12 22 | } 23 | x: 12 24 | } 25 | 26 | SvgRectangle { 27 | id: rightTerminal 28 | width: 12 29 | height: 8 30 | radius: 3 31 | color: soc < 100 ? emptyColor : root.color 32 | anchors { 33 | right: root.right; rightMargin: 12 34 | } 35 | } 36 | 37 | Rectangle { 38 | id: background 39 | 40 | // NOTE: to remove the bottom of the terminals 41 | border {width: 2; color: "white"} 42 | height: root.height - leftTerminal.height 43 | width: root.width 44 | y: leftTerminal.height - 1 45 | 46 | SvgRectangle { 47 | height: parent.height 48 | width: parent.width 49 | color: root.emptyColor 50 | radius: 3 51 | } 52 | 53 | SvgRectangle { 54 | id: filledPart 55 | width: root.width 56 | height: soc * background.height / 100 57 | color: root.color 58 | anchors.bottom: parent.bottom 59 | radius: 3 60 | } 61 | 62 | SvgRectangle { 63 | height: parent.height 64 | width: parent.width * 0.7 65 | anchors.centerIn: parent 66 | color: "#ffffff" 67 | opacity: 0.06 68 | } 69 | } 70 | 71 | MbIcon { 72 | source: getBatteryLogo() 73 | anchors { 74 | right: parent.right; rightMargin: 4 75 | bottom: parent.bottom; bottomMargin: 4 76 | } 77 | 78 | function getBatteryLogo() 79 | { 80 | var pid = sys.batteryProductId.value 81 | var logo = "" 82 | 83 | if (pid === 0xB014) 84 | logo = "image://theme/overview-battery-freedomwon" 85 | 86 | return logo 87 | } 88 | } 89 | 90 | Text { 91 | text: "-" 92 | font.pixelSize: 13; font.bold: true 93 | anchors.centerIn: leftTerminal 94 | anchors.verticalCenterOffset: 12 95 | color: "#fff" 96 | } 97 | 98 | Text { 99 | text: "+" 100 | font.pixelSize: 13; font.bold: true 101 | anchors.centerIn: rightTerminal 102 | anchors.verticalCenterOffset: 12 103 | color: "#fff" 104 | } 105 | 106 | Item { 107 | id: _values 108 | anchors { 109 | top: background.top; 110 | bottom: root.bottom 111 | left: root.left 112 | right: root.right 113 | } 114 | } 115 | } 116 | -------------------------------------------------------------------------------- /FileSets/PatchSource/Battery.qml-v3.34.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/Battery.qml-v3.34.orig 2024-07-09 10:19:41 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/Battery.qml-v3.34 2024-05-14 07:00:12 3 | @@ -6,9 +6,14 @@ 4 | width: 145 5 | height: 101 6 | 7 | +////// GuiMods — DarkMode 8 | + property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 9 | + property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 10 | + 11 | property real soc: 80 12 | - property string color: "#4789d0" 13 | - property string emptyColor: "#1abc9c" 14 | +////// GuiMods — DarkMode 15 | + property string color: !darkMode ? "#4789d0" : "#234468" 16 | + property string emptyColor: !darkMode ? "#1abc9c" : "#0d5e4e" 17 | property alias values: _values.children 18 | 19 | SvgRectangle { 20 | @@ -38,7 +43,8 @@ 21 | id: background 22 | 23 | // NOTE: to remove the bottom of the terminals 24 | - border {width: 2; color: "white"} 25 | +////// GuiMods — DarkMode 26 | + border {width: 2; color: !darkMode ? "white" : "#202020"} 27 | height: root.height - leftTerminal.height 28 | width: root.width 29 | y: leftTerminal.height - 1 30 | @@ -63,7 +69,8 @@ 31 | height: parent.height 32 | width: parent.width * 0.7 33 | anchors.centerIn: parent 34 | - color: "#ffffff" 35 | +////// GuiMods — DarkMode 36 | + color: !darkMode ? "#ffffff" : "#202020" 37 | opacity: 0.06 38 | } 39 | } 40 | @@ -92,7 +99,8 @@ 41 | font.pixelSize: 13; font.bold: true 42 | anchors.centerIn: leftTerminal 43 | anchors.verticalCenterOffset: 12 44 | - color: "#fff" 45 | +////// GuiMods — DarkMode 46 | + color: !darkMode ? "#fff" : "#e1e1e1" 47 | } 48 | 49 | Text { 50 | @@ -100,7 +108,8 @@ 51 | font.pixelSize: 13; font.bold: true 52 | anchors.centerIn: rightTerminal 53 | anchors.verticalCenterOffset: 12 54 | - color: "#fff" 55 | +////// GuiMods — DarkMode 56 | + color: !darkMode ? "#fff" : "#e1e1e1" 57 | } 58 | 59 | Item { 60 | -------------------------------------------------------------------------------- /FileSets/PatchSource/MbEditBox.qml-v3.40.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/MbEditBox.qml-v3.40.orig 2024-07-09 10:19:44 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/MbEditBox.qml-v3.40 2024-05-14 07:00:12 3 | @@ -7,6 +7,10 @@ 4 | cornerMark: !readonly && !editMode 5 | height: expanded.y + expanded.height + 1 6 | 7 | +////// GuiMods — DarkMode 8 | + property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 9 | + property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 10 | + 11 | property alias maximumLength: ti.maximumLength 12 | property variant tmpValue 13 | property string matchString: "0123456789 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~!@#$%^&*()-_=+[]{}\\;:|/.,<>?" 14 | @@ -240,10 +244,12 @@ 15 | 16 | MbBackgroundRect { 17 | id: greytag 18 | - color: editMode ? "#fff": "#ddd" 19 | +////// GuiMods — DarkMode 20 | + color: !darkMode ? (editMode ? "#fff": "#ddd") : (editMode ? "#747474": "#4b4b4b") 21 | width: ti.width + 2 * style.marginDefault 22 | height: ti.height + 6 23 | - border.color: "#ddd" 24 | +////// GuiMods — DarkMode 25 | + border.color: !darkMode ? "#ddd" : "#4b4b4b" 26 | border.width: editMode ? 1 : 0 27 | anchors.centerIn: ti 28 | } 29 | @@ -273,6 +279,9 @@ 30 | topMargin: (defaultHeight - height) / 2 31 | } 32 | 33 | +////// GuiMods — DarkMode 34 | + color: !darkMode ? "#000000" : "#fdfdfd" 35 | + 36 | text: editMode ? _editText : item.text 37 | // When editing the it is nice to have a fix with font, so when changing 38 | // digits the text does change in length all the time. However this fonts 39 | -------------------------------------------------------------------------------- /FileSets/PatchSource/MbEditBox.qml-v3.50.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/MbEditBox.qml-v3.50.orig 2024-07-18 14:31:06 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/MbEditBox.qml-v3.50 2024-07-18 20:55:13 3 | @@ -7,6 +7,10 @@ 4 | cornerMark: !readonly && !editMode 5 | height: expanded.y + expanded.height + 1 6 | 7 | +////// GuiMods — DarkMode 8 | + property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 9 | + property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 10 | + 11 | property alias maximumLength: ti.maximumLength 12 | property variant tmpValue 13 | property string matchString: "0123456789 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~!@#$%^&*()-_=+[]{}\\;:|/.,<>?" 14 | @@ -240,10 +244,12 @@ 15 | 16 | MbBackgroundRect { 17 | id: greytag 18 | - color: editMode ? "#fff": "#ddd" 19 | +////// GuiMods — DarkMode 20 | + color: !darkMode ? (editMode ? "#fff": "#ddd") : (editMode ? "#747474": "#4b4b4b") 21 | width: ti.width + 2 * mbStyle.marginDefault 22 | height: ti.height + 6 23 | - border.color: "#ddd" 24 | +////// GuiMods — DarkMode 25 | + border.color: !darkMode ? "#ddd" : "#4b4b4b" 26 | border.width: editMode ? 1 : 0 27 | anchors.centerIn: ti 28 | } 29 | @@ -273,6 +279,9 @@ 30 | topMargin: (defaultHeight - height) / 2 31 | } 32 | 33 | +////// GuiMods — DarkMode 34 | + color: !darkMode ? "#000000" : "#fdfdfd" 35 | + 36 | text: editMode ? _editText : item.text 37 | // When editing the it is nice to have a fix with font, so when changing 38 | // digits the text does change in length all the time. However this fonts 39 | -------------------------------------------------------------------------------- /FileSets/PatchSource/MbEditBoxDateTime.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | 3 | MbEditBox { 4 | id: root 5 | 6 | ////// GuiMods — DarkMode 7 | property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 8 | property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 9 | 10 | property string format: "yyyy-MM-dd hh:mm" 11 | property bool utc: false 12 | 13 | ignoreChars: "-: " 14 | matchString: "0123456789" 15 | maximumLength: format.length 16 | overwriteMode: true 17 | numericOnlyLayout: true 18 | upDownText: qsTr("Select number") 19 | ////// GuiMods — DarkMode 20 | textInput.color: editMode ? (vePlatform.secondsFromString(_editText, format) !== -1 ? (!darkMode ? "#000000" : "#fdfdfd") : "red") : (!darkMode ? "#000000" : "#fdfdfd") 21 | 22 | // note: overwritten by MbEditBoxTime! 23 | function getTimeSeconds(str) { 24 | return vePlatform.secondsFromString(str, format) 25 | } 26 | 27 | function editTextToValue() { 28 | var value = getTimeSeconds(_editText) 29 | return (value === -1 ? null : value) 30 | } 31 | 32 | function valueToText(value) { 33 | if (utc) 34 | return vePlatform.formatDateTimeUtc(value, format) 35 | return Qt.formatDateTime(new Date(value * 1000), format) 36 | } 37 | 38 | // make sure the time of days keeps below 24:00 39 | function validateHours(str, pos) { 40 | if (format[pos] === 'h' && format[pos + 1] === 'h' && str[pos] === '2' && str[pos + 1] > 3) 41 | str = setValueAt(str, pos + 1, '3', false); 42 | return str; 43 | } 44 | 45 | function validate(newText, pos) { 46 | var wrap = wrapAround(pos) 47 | 48 | if ((newText[pos] - '0') >= wrap) { 49 | var text = qsTr("Only numbers up to %1 are valid on this location").arg(wrap - 1) 50 | toast.createToast(text, 3000) 51 | return null 52 | } 53 | 54 | // respect the minimum value. Note: instead of declining the change the minimum value 55 | // is forced. The reason for that is that if e.g. 00:10 is decremented with a minimum 56 | // of one minute it becomes 00:01 instead of silently refusing the change. 57 | var ret = validateHours(newText, pos) 58 | if (item.min && getTimeSeconds(ret) < item.min) 59 | return valueToText(item.min) 60 | 61 | return ret 62 | } 63 | 64 | // some digit in e.g. time/data loop earlier than 0..9 65 | function wrapAround(pos) { 66 | switch (format[pos]) { 67 | // mm goes till 59 68 | case 'm': 69 | if (format[pos + 1] === 'm') 70 | return 6; 71 | break 72 | // hours till 23 73 | case 'h': 74 | if (format[pos + 1] === 'h') 75 | return 3; 76 | if (format[pos - 1] === 'h') 77 | return _editText[pos - 1] === '2' ? 4 : matchString.length 78 | break 79 | // days up to 31 80 | case 'd': 81 | if (format[pos + 1] === 'd') 82 | return 4; 83 | if (format[pos - 1] === 'd') 84 | return _editText[pos - 1] === '3' ? 2 : matchString.length; 85 | break; 86 | // months till 12 87 | case 'M': 88 | if (format[pos + 1] === 'M') 89 | return 2; 90 | if (format[pos - 1] === 'M') 91 | return _editText[pos - 1] === '1' ? 3 : matchString.length 92 | break 93 | } 94 | return matchString.length 95 | } 96 | } 97 | -------------------------------------------------------------------------------- /FileSets/PatchSource/MbEditBoxDateTime.qml.orig: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | 3 | MbEditBox { 4 | id: root 5 | 6 | property string format: "yyyy-MM-dd hh:mm" 7 | property bool utc: false 8 | 9 | ignoreChars: "-: " 10 | matchString: "0123456789" 11 | maximumLength: format.length 12 | overwriteMode: true 13 | numericOnlyLayout: true 14 | upDownText: qsTr("Select number") 15 | textInput.color: editMode ? (vePlatform.secondsFromString(_editText, format) !== -1 ? "black" : "red") : "black" 16 | 17 | // note: overwritten by MbEditBoxTime! 18 | function getTimeSeconds(str) { 19 | return vePlatform.secondsFromString(str, format) 20 | } 21 | 22 | function editTextToValue() { 23 | var value = getTimeSeconds(_editText) 24 | return (value === -1 ? null : value) 25 | } 26 | 27 | function valueToText(value) { 28 | if (utc) 29 | return vePlatform.formatDateTimeUtc(value, format) 30 | return Qt.formatDateTime(new Date(value * 1000), format) 31 | } 32 | 33 | // make sure the time of days keeps below 24:00 34 | function validateHours(str, pos) { 35 | if (format[pos] === 'h' && format[pos + 1] === 'h' && str[pos] === '2' && str[pos + 1] > 3) 36 | str = setValueAt(str, pos + 1, '3', false); 37 | return str; 38 | } 39 | 40 | function validate(newText, pos) { 41 | var wrap = wrapAround(pos) 42 | 43 | if ((newText[pos] - '0') >= wrap) { 44 | var text = qsTr("Only numbers up to %1 are valid on this location").arg(wrap - 1) 45 | toast.createToast(text, 3000) 46 | return null 47 | } 48 | 49 | // respect the minimum value. Note: instead of declining the change the minimum value 50 | // is forced. The reason for that is that if e.g. 00:10 is decremented with a minimum 51 | // of one minute it becomes 00:01 instead of silently refusing the change. 52 | var ret = validateHours(newText, pos) 53 | if (item.min && getTimeSeconds(ret) < item.min) 54 | return valueToText(item.min) 55 | 56 | return ret 57 | } 58 | 59 | // some digit in e.g. time/data loop earlier than 0..9 60 | function wrapAround(pos) { 61 | switch (format[pos]) { 62 | // mm goes till 59 63 | case 'm': 64 | if (format[pos + 1] === 'm') 65 | return 6; 66 | break 67 | // hours till 23 68 | case 'h': 69 | if (format[pos + 1] === 'h') 70 | return 3; 71 | if (format[pos - 1] === 'h') 72 | return _editText[pos - 1] === '2' ? 4 : matchString.length 73 | break 74 | // days up to 31 75 | case 'd': 76 | if (format[pos + 1] === 'd') 77 | return 4; 78 | if (format[pos - 1] === 'd') 79 | return _editText[pos - 1] === '3' ? 2 : matchString.length; 80 | break; 81 | // months till 12 82 | case 'M': 83 | if (format[pos + 1] === 'M') 84 | return 2; 85 | if (format[pos - 1] === 'M') 86 | return _editText[pos - 1] === '1' ? 3 : matchString.length 87 | break 88 | } 89 | return matchString.length 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /FileSets/PatchSource/MbEditBoxDateTime.qml.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/MbEditBoxDateTime.qml.orig 2024-07-09 10:19:45 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/MbEditBoxDateTime.qml 2024-05-14 07:00:12 3 | @@ -3,6 +3,10 @@ 4 | MbEditBox { 5 | id: root 6 | 7 | +////// GuiMods — DarkMode 8 | + property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 9 | + property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 10 | + 11 | property string format: "yyyy-MM-dd hh:mm" 12 | property bool utc: false 13 | 14 | @@ -12,7 +16,8 @@ 15 | overwriteMode: true 16 | numericOnlyLayout: true 17 | upDownText: qsTr("Select number") 18 | - textInput.color: editMode ? (vePlatform.secondsFromString(_editText, format) !== -1 ? "black" : "red") : "black" 19 | +////// GuiMods — DarkMode 20 | + textInput.color: editMode ? (vePlatform.secondsFromString(_editText, format) !== -1 ? (!darkMode ? "#000000" : "#fdfdfd") : "red") : (!darkMode ? "#000000" : "#fdfdfd") 21 | 22 | // note: overwritten by MbEditBoxTime! 23 | function getTimeSeconds(str) { 24 | -------------------------------------------------------------------------------- /FileSets/PatchSource/MbItem.qml-v3.40.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/MbItem.qml-v3.40.orig 2024-07-09 10:19:45 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/MbItem.qml-v3.40 2024-05-14 07:00:12 3 | @@ -14,6 +14,10 @@ 4 | height: defaultHeight 5 | property bool show: user.accessLevel >= showAccessLevel 6 | 7 | +////// GuiMods — DarkMode 8 | + property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 9 | + property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 10 | + 11 | property int defaultHeight: style.itemHeight 12 | 13 | property bool editMode 14 | @@ -104,7 +108,8 @@ 15 | MbIcon { 16 | id: cornerMarkIcon 17 | 18 | - iconId: "icon-items-corner" + (root.ListView.isCurrentItem ? "-active" : "") 19 | +////// GuiMods — DarkMode 20 | + iconId: "icon-items-corner" + (root.ListView.isCurrentItem || darkMode ? "-active" : "") 21 | visible: cornerMark 22 | anchors { 23 | right: parent.right; rightMargin: 1 24 | -------------------------------------------------------------------------------- /FileSets/PatchSource/MbItem.qml-v3.50.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/MbItem.qml-v3.50.orig 2024-07-18 14:31:06 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/MbItem.qml-v3.50 2024-07-18 20:58:40 3 | @@ -14,6 +14,10 @@ 4 | height: defaultHeight 5 | property bool show: user.accessLevel >= showAccessLevel 6 | 7 | +////// GuiMods — DarkMode 8 | + property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 9 | + property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 10 | + 11 | property int defaultHeight: mbStyle.itemHeight 12 | 13 | property bool editMode 14 | @@ -104,7 +108,8 @@ 15 | MbIcon { 16 | id: cornerMarkIcon 17 | 18 | - iconId: "icon-items-corner" + (root.ListView.isCurrentItem ? "-active" : "") 19 | +////// GuiMods — DarkMode 20 | + iconId: "icon-items-corner" + (root.ListView.isCurrentItem || darkMode ? "-active" : "") 21 | visible: cornerMark 22 | anchors { 23 | right: parent.right; rightMargin: 1 24 | -------------------------------------------------------------------------------- /FileSets/PatchSource/MbItem.qml.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/MbItem.qml.orig 2024-07-09 10:19:45 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/MbItem.qml 2024-05-14 07:00:12 3 | @@ -14,6 +14,10 @@ 4 | height: defaultHeight 5 | property bool show: user.accessLevel >= showAccessLevel 6 | 7 | +////// GuiMods — DarkMode 8 | + property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 9 | + property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 10 | + 11 | property int defaultHeight: style.itemHeight 12 | 13 | property bool editMode 14 | @@ -104,7 +108,8 @@ 15 | MbIcon { 16 | id: cornerMarkIcon 17 | 18 | - iconId: "icon-items-corner" + (root.ListView.isCurrentItem ? "-active" : "") 19 | +////// GuiMods — DarkMode 20 | + iconId: "icon-items-corner" + (root.ListView.isCurrentItem || darkMode ? "-active" : "") 21 | visible: cornerMark 22 | anchors { 23 | right: parent.right; rightMargin: 1 24 | -------------------------------------------------------------------------------- /FileSets/PatchSource/MbItemDigitalInput.qml-v3.40: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | 3 | MbItemOptions { 4 | show: valid 5 | signal disabled 6 | property variant previousValue: undefined 7 | possibleValues: [ 8 | MbOption { description: qsTr("Disabled"); value: 0 }, 9 | MbOption { description: qsTr("Pulse meter"); value: 1 }, 10 | MbOption { description: qsTr("Door alarm"); value: 2 }, 11 | MbOption { description: qsTr("Bilge pump"); value: 3 }, 12 | MbOption { description: qsTr("Bilge alarm"); value: 4 }, 13 | MbOption { description: qsTr("Burglar alarm"); value: 5 }, 14 | MbOption { description: qsTr("Smoke alarm"); value: 6 }, 15 | MbOption { description: qsTr("Fire alarm"); value: 7 }, 16 | MbOption { description: qsTr("CO2 alarm"); value: 8 }, 17 | MbOption { description: qsTr("Generic I/O"); value: 10 }, 18 | MbOption { description: qsTr("Generator"); value: 9 }, 19 | MbOption { description: qsTr("Touch input control"); value: 11 }, 20 | //// added for ExtTransferSwitch package 21 | MbOption { description: qsTr("External transfer switch"); value: 12 } 22 | ] 23 | onValueChanged: { 24 | if (valid) { 25 | if (previousValue != undefined && value == 0) disabled() 26 | previousValue = value 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /FileSets/PatchSource/MbItemDigitalInput.qml-v3.40.orig: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | 3 | MbItemOptions { 4 | show: valid 5 | signal disabled 6 | property variant previousValue: undefined 7 | possibleValues: [ 8 | MbOption { description: qsTr("Disabled"); value: 0 }, 9 | MbOption { description: qsTr("Pulse meter"); value: 1 }, 10 | MbOption { description: qsTr("Door alarm"); value: 2 }, 11 | MbOption { description: qsTr("Bilge pump"); value: 3 }, 12 | MbOption { description: qsTr("Bilge alarm"); value: 4 }, 13 | MbOption { description: qsTr("Burglar alarm"); value: 5 }, 14 | MbOption { description: qsTr("Smoke alarm"); value: 6 }, 15 | MbOption { description: qsTr("Fire alarm"); value: 7 }, 16 | MbOption { description: qsTr("CO2 alarm"); value: 8 }, 17 | MbOption { description: qsTr("Generator"); value: 9 }, 18 | MbOption { description: qsTr("Touch input control"); value: 11 } 19 | ] 20 | onValueChanged: { 21 | if (valid) { 22 | if (previousValue != undefined && value == 0) disabled() 23 | previousValue = value 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /FileSets/PatchSource/MbItemDigitalInput.qml-v3.40.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/MbItemDigitalInput.qml-v3.40.orig 2024-07-09 10:19:45 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/MbItemDigitalInput.qml-v3.40 2025-02-02 17:42:41 3 | @@ -14,8 +14,11 @@ 4 | MbOption { description: qsTr("Smoke alarm"); value: 6 }, 5 | MbOption { description: qsTr("Fire alarm"); value: 7 }, 6 | MbOption { description: qsTr("CO2 alarm"); value: 8 }, 7 | + MbOption { description: qsTr("Generic I/O"); value: 10 }, 8 | MbOption { description: qsTr("Generator"); value: 9 }, 9 | - MbOption { description: qsTr("Touch input control"); value: 11 } 10 | + MbOption { description: qsTr("Touch input control"); value: 11 }, 11 | +//// added for ExtTransferSwitch package 12 | + MbOption { description: qsTr("External transfer switch"); value: 12 } 13 | ] 14 | onValueChanged: { 15 | if (valid) { 16 | -------------------------------------------------------------------------------- /FileSets/PatchSource/MbSpinBox.qml-v3.40.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/MbSpinBox.qml-v3.40.orig 2024-07-09 10:19:46 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/MbSpinBox.qml-v3.40 2024-05-14 07:00:12 3 | @@ -6,6 +6,10 @@ 4 | id: root 5 | cornerMark: !readOnly && !spinbox.enabled 6 | 7 | +////// GuiMods — DarkMode 8 | + property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 9 | + property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 10 | + 11 | property string description 12 | property bool readOnly: !userHasWriteAccess 13 | property VBusItem item: VBusItem { 14 | @@ -71,10 +75,12 @@ 15 | 16 | MbBackgroundRect { 17 | id: graytag 18 | - color: !spinbox.enabled? "#ddd": "#fff" 19 | +////// GuiMods — DarkMode 20 | + color: !darkMode ? (!spinbox.enabled ? "#ddd": "#fff") : (!spinbox.enabled ? "#4b4b4b": "#747474") 21 | height: spinbox.height + 6 22 | width: spinbox.width + unit.width + 10 23 | - border.color: "#ddd" 24 | +////// GuiMods — DarkMode 25 | + border.color: !darkMode ? "#ddd" : "#4b4b4b" 26 | border.width: spinbox.enabled ? 1 : 0 27 | anchors { 28 | right: parent.right; rightMargin: style.marginDefault 29 | -------------------------------------------------------------------------------- /FileSets/PatchSource/MbStyle.qml-v3.40: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | 3 | /* 4 | * common style properties 5 | */ 6 | QtObject { 7 | ////// GuiMods — DarkMode 8 | property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 9 | property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 10 | 11 | property bool isCurrentItem 12 | 13 | // Default MbItem size 14 | property int itemHeight: 35 15 | 16 | // Default font and size for e.g. the menus 17 | property string fontFamily: "default" 18 | property int fontPixelSize: 16 19 | 20 | ////// GuiMods — DarkMode 21 | property string borderColor: !darkMode ? "#ddd" : "#4b4b4b" 22 | property string backgroundColor: !darkMode ? (isCurrentItem ? '#4790d0' : 'transparent') : (isCurrentItem ? '#234468' : '#303030') 23 | property string backgroundColorService: !darkMode ? (isCurrentItem ? "#2969a1" : '#ffe9b7') : (isCurrentItem ? "#234468" : '#7f745b') 24 | property string backgroundColorComponent: borderColor 25 | 26 | // Text mainly used for description etc. 27 | ////// GuiMods — DarkMode 28 | property string textColor: !darkMode ? "#000000" : "#fdfdfd" 29 | property string textColorSelected: !darkMode ? "#FFFFFF" : "#fdfdfd" 30 | 31 | // Color typically used for values 32 | ////// GuiMods — DarkMode 33 | property string valueColor: !darkMode ? "#333333" : "#fdfdfd" 34 | property int valueHorizontalAlignment: Text.AlignRight 35 | property string color2: !darkMode ? "#333333" : "#fdfdfd" 36 | 37 | property int marginDefault: 8 38 | // margin between MbItem border and components for bottom / top 39 | property int marginItemVertical: 3 40 | // margin from the "sides", typically left / right 41 | property int marginItemHorizontal: 8 42 | // prefered left / right text margin within text components 43 | property int marginTextHorizontal: 5 44 | 45 | property real opacityEnabled: 1.0 46 | property real opacityDisabled: 0.5 47 | } 48 | -------------------------------------------------------------------------------- /FileSets/PatchSource/MbStyle.qml-v3.40.orig: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | 3 | /* 4 | * common style properties 5 | */ 6 | QtObject { 7 | property bool isCurrentItem 8 | 9 | // Default MbItem size 10 | property int itemHeight: 35 11 | 12 | // Default font and size for e.g. the menus 13 | property string fontFamily: "default" 14 | property int fontPixelSize: 16 15 | 16 | property string borderColor: "#ddd" 17 | property string backgroundColor: isCurrentItem ? '#4790d0' : 'transparent' 18 | property string backgroundColorService: isCurrentItem ? "#2969a1" : '#ffe9b7' 19 | property string backgroundColorComponent: borderColor 20 | 21 | // Text mainly used for description etc. 22 | property string textColor: "#000000" 23 | property string textColorSelected: "#FFFFFF" 24 | 25 | // Color typically used for values 26 | property string valueColor: "#333333" 27 | property int valueHorizontalAlignment: Text.AlignRight 28 | property string color2: "#333333" 29 | 30 | property int marginDefault: 8 31 | // margin between MbItem border and components for bottom / top 32 | property int marginItemVertical: 3 33 | // margin from the "sides", typically left / right 34 | property int marginItemHorizontal: 8 35 | // prefered left / right text margin within text components 36 | property int marginTextHorizontal: 5 37 | 38 | property real opacityEnabled: 1.0 39 | property real opacityDisabled: 0.5 40 | } 41 | -------------------------------------------------------------------------------- /FileSets/PatchSource/MbStyle.qml-v3.40.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/MbStyle.qml-v3.40.orig 2024-07-09 10:19:46 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/MbStyle.qml-v3.40 2024-05-14 07:00:12 3 | @@ -4,6 +4,10 @@ 4 | * common style properties 5 | */ 6 | QtObject { 7 | +////// GuiMods — DarkMode 8 | + property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 9 | + property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 10 | + 11 | property bool isCurrentItem 12 | 13 | // Default MbItem size 14 | @@ -13,19 +17,22 @@ 15 | property string fontFamily: "default" 16 | property int fontPixelSize: 16 17 | 18 | - property string borderColor: "#ddd" 19 | - property string backgroundColor: isCurrentItem ? '#4790d0' : 'transparent' 20 | - property string backgroundColorService: isCurrentItem ? "#2969a1" : '#ffe9b7' 21 | +////// GuiMods — DarkMode 22 | + property string borderColor: !darkMode ? "#ddd" : "#4b4b4b" 23 | + property string backgroundColor: !darkMode ? (isCurrentItem ? '#4790d0' : 'transparent') : (isCurrentItem ? '#234468' : '#303030') 24 | + property string backgroundColorService: !darkMode ? (isCurrentItem ? "#2969a1" : '#ffe9b7') : (isCurrentItem ? "#234468" : '#7f745b') 25 | property string backgroundColorComponent: borderColor 26 | 27 | // Text mainly used for description etc. 28 | - property string textColor: "#000000" 29 | - property string textColorSelected: "#FFFFFF" 30 | +////// GuiMods — DarkMode 31 | + property string textColor: !darkMode ? "#000000" : "#fdfdfd" 32 | + property string textColorSelected: !darkMode ? "#FFFFFF" : "#fdfdfd" 33 | 34 | // Color typically used for values 35 | - property string valueColor: "#333333" 36 | +////// GuiMods — DarkMode 37 | + property string valueColor: !darkMode ? "#333333" : "#fdfdfd" 38 | property int valueHorizontalAlignment: Text.AlignRight 39 | - property string color2: "#333333" 40 | + property string color2: !darkMode ? "#333333" : "#fdfdfd" 41 | 42 | property int marginDefault: 8 43 | // margin between MbItem border and components for bottom / top 44 | -------------------------------------------------------------------------------- /FileSets/PatchSource/MbSubMenu.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | import Qt.labs.components.native 1.0 3 | import com.victron.velib 1.0 4 | 5 | MbItem { 6 | id: root 7 | width: pageStack ? pageStack.currentPage.width : 0 8 | 9 | ////// GuiMods — DarkMode 10 | property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 11 | property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 12 | 13 | property string description 14 | property VBusItem item: VBusItem {} 15 | property string iconId: "icon-toolbar-enter" 16 | property bool check: false 17 | property bool indent: false 18 | default property alias values: _values.data 19 | 20 | MbTextDescription { 21 | id: checkText 22 | anchors { 23 | left: parent.left; leftMargin: style.marginDefault 24 | verticalCenter: parent.verticalCenter 25 | } 26 | width: root.indent ? 9 : 0 27 | text: root.check ? "√" : " " 28 | } 29 | 30 | MbTextDescription { 31 | id: name 32 | anchors { 33 | left: checkText.right; leftMargin: root.indent ? checkText.width : 0 34 | verticalCenter: parent.verticalCenter 35 | } 36 | text: root.description 37 | } 38 | 39 | MbRow { 40 | id: _values 41 | 42 | anchors { 43 | right: icon.left; rightMargin: style.marginDefault / 2 44 | verticalCenter: parent.verticalCenter 45 | } 46 | 47 | Repeater { 48 | id: repeater 49 | model: root.item.value && root.item.value.constructor === Array ? root.item.value.length : 1 50 | 51 | MbTextBlock { 52 | item.text: repeater.model === 1 ? root.item.text : root.item.value[index] 53 | opacity: item.text !== item.invalidText 54 | } 55 | } 56 | } 57 | 58 | MbIcon { 59 | id: icon 60 | 61 | display: hasSubpage 62 | anchors { 63 | right: root.right; rightMargin: style.marginDefault 64 | verticalCenter: parent.verticalCenter 65 | } 66 | ////// GuiMods — DarkMode 67 | iconId: root.iconId ? root.iconId + (root.ListView.isCurrentItem || darkMode ? "-active" : "") : "" 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /FileSets/PatchSource/MbSubMenu.qml.orig: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | import Qt.labs.components.native 1.0 3 | import com.victron.velib 1.0 4 | 5 | MbItem { 6 | id: root 7 | width: pageStack ? pageStack.currentPage.width : 0 8 | 9 | property string description 10 | property VBusItem item: VBusItem {} 11 | property string iconId: "icon-toolbar-enter" 12 | property bool check: false 13 | property bool indent: false 14 | default property alias values: _values.data 15 | 16 | MbTextDescription { 17 | id: checkText 18 | anchors { 19 | left: parent.left; leftMargin: style.marginDefault 20 | verticalCenter: parent.verticalCenter 21 | } 22 | width: root.indent ? 9 : 0 23 | text: root.check ? "√" : " " 24 | } 25 | 26 | MbTextDescription { 27 | id: name 28 | anchors { 29 | left: checkText.right; leftMargin: root.indent ? checkText.width : 0 30 | verticalCenter: parent.verticalCenter 31 | } 32 | text: root.description 33 | } 34 | 35 | MbRow { 36 | id: _values 37 | 38 | anchors { 39 | right: icon.left; rightMargin: style.marginDefault / 2 40 | verticalCenter: parent.verticalCenter 41 | } 42 | 43 | Repeater { 44 | id: repeater 45 | model: root.item.value && root.item.value.constructor === Array ? root.item.value.length : 1 46 | 47 | MbTextBlock { 48 | item.text: repeater.model === 1 ? root.item.text : root.item.value[index] 49 | opacity: item.text !== item.invalidText 50 | } 51 | } 52 | } 53 | 54 | MbIcon { 55 | id: icon 56 | 57 | display: hasSubpage 58 | anchors { 59 | right: root.right; rightMargin: style.marginDefault 60 | verticalCenter: parent.verticalCenter 61 | } 62 | iconId: root.iconId ? root.iconId + (root.ListView.isCurrentItem ? "-active" : "") : "" 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /FileSets/PatchSource/MbSubMenu.qml.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/MbSubMenu.qml.orig 2024-07-09 10:19:47 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/MbSubMenu.qml 2024-05-14 07:00:12 3 | @@ -6,6 +6,10 @@ 4 | id: root 5 | width: pageStack ? pageStack.currentPage.width : 0 6 | 7 | +////// GuiMods — DarkMode 8 | + property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 9 | + property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 10 | + 11 | property string description 12 | property VBusItem item: VBusItem {} 13 | property string iconId: "icon-toolbar-enter" 14 | @@ -59,6 +63,7 @@ 15 | right: root.right; rightMargin: style.marginDefault 16 | verticalCenter: parent.verticalCenter 17 | } 18 | - iconId: root.iconId ? root.iconId + (root.ListView.isCurrentItem ? "-active" : "") : "" 19 | +////// GuiMods — DarkMode 20 | + iconId: root.iconId ? root.iconId + (root.ListView.isCurrentItem || darkMode ? "-active" : "") : "" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /FileSets/PatchSource/Multi.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | import com.victron.velib 1.0 3 | import "utils.js" as Utils 4 | 5 | MbIcon { 6 | id: multi 7 | iconId: "overview-inverter" 8 | 9 | ////// GuiMods — DarkMode 10 | property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 11 | property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 12 | 13 | SvgRectangle 14 | { 15 | id:inverterForeground 16 | width: multi.width 17 | height: multi.height 18 | radius: 3 19 | color: "#000000" 20 | ////// GuiMods — DarkMode 21 | opacity: !darkMode ? 0 : 0.35 22 | } 23 | 24 | property string vebusPrefix: "" 25 | property string systemPrefix: "com.victronenergy.system" 26 | property VBusItem systemState: VBusItem { bind: Utils.path(systemPrefix, "/SystemState/State") } 27 | 28 | Component.onCompleted: discoverMultis() 29 | 30 | Column { 31 | spacing: 3 32 | x: 26 33 | y: 62 34 | 35 | Led { 36 | bind: Utils.path(sys.vebusPrefix, "/Leds/Mains") 37 | onColor: "#68FF00" 38 | } 39 | 40 | Led { 41 | bind: Utils.path(sys.vebusPrefix, "/Leds/Bulk") 42 | } 43 | 44 | Led { 45 | bind: Utils.path(sys.vebusPrefix, "/Leds/Absorption") 46 | } 47 | 48 | Led { 49 | bind: Utils.path(sys.vebusPrefix, "/Leds/Float") 50 | } 51 | } 52 | 53 | Column { 54 | spacing: 3 55 | x: multi.width - 28 56 | y: 62 57 | 58 | Led { 59 | bind: Utils.path(sys.vebusPrefix, "/Leds/Inverter") 60 | onColor: "#68FF00" 61 | } 62 | 63 | Led { 64 | bind: Utils.path(sys.vebusPrefix, "/Leds/Overload") 65 | onColor: "#F75E25" 66 | } 67 | 68 | Led { 69 | bind: Utils.path(sys.vebusPrefix, "/Leds/LowBattery") 70 | onColor: "#F75E25" 71 | } 72 | 73 | Led { 74 | bind: Utils.path(sys.vebusPrefix, "/Leds/Temperature") 75 | onColor: "#F75E25" 76 | } 77 | } 78 | 79 | Text { 80 | anchors { 81 | horizontalCenter: multi.horizontalCenter 82 | top: multi.top; topMargin: 8 83 | } 84 | horizontalAlignment: Text.AlignHCenter 85 | ////// GuiMods — DarkMode 86 | color: !darkMode ? "white" : "#e1e1e1" 87 | font {pixelSize: 16; bold: true} 88 | text: vebusState.text 89 | 90 | SystemState { 91 | id: vebusState 92 | bind: systemState.valid?Utils.path(systemPrefix, "/SystemState/State"):Utils.path(sys.vebusPrefix, "/State") 93 | } 94 | } 95 | 96 | // When a new service is found check if is a multi 97 | Connections { 98 | target: DBusServices 99 | onDbusServiceFound: addService(service) 100 | } 101 | 102 | function addService(service) 103 | { 104 | if (service.type === DBusService.DBUS_SERVICE_MULTI) { 105 | if (vebusPrefix === "") 106 | vebusPrefix = service.name; 107 | } 108 | } 109 | 110 | // Check available services to find multis 111 | function discoverMultis() 112 | { 113 | for (var i = 0; i < DBusServices.count; i++) { 114 | if (DBusServices.at(i).type === DBusService.DBUS_SERVICE_MULTI) { 115 | addService(DBusServices.at(i)) 116 | } 117 | } 118 | } 119 | } 120 | -------------------------------------------------------------------------------- /FileSets/PatchSource/Multi.qml.orig: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | import com.victron.velib 1.0 3 | import "utils.js" as Utils 4 | 5 | MbIcon { 6 | id: multi 7 | iconId: "overview-inverter" 8 | 9 | property string vebusPrefix: "" 10 | property string systemPrefix: "com.victronenergy.system" 11 | property VBusItem systemState: VBusItem { bind: Utils.path(systemPrefix, "/SystemState/State") } 12 | 13 | Component.onCompleted: discoverMultis() 14 | 15 | Column { 16 | spacing: 3 17 | x: 26 18 | y: 62 19 | 20 | Led { 21 | bind: Utils.path(sys.vebusPrefix, "/Leds/Mains") 22 | onColor: "#68FF00" 23 | } 24 | 25 | Led { 26 | bind: Utils.path(sys.vebusPrefix, "/Leds/Bulk") 27 | } 28 | 29 | Led { 30 | bind: Utils.path(sys.vebusPrefix, "/Leds/Absorption") 31 | } 32 | 33 | Led { 34 | bind: Utils.path(sys.vebusPrefix, "/Leds/Float") 35 | } 36 | } 37 | 38 | Column { 39 | spacing: 3 40 | x: multi.width - 28 41 | y: 62 42 | 43 | Led { 44 | bind: Utils.path(sys.vebusPrefix, "/Leds/Inverter") 45 | onColor: "#68FF00" 46 | } 47 | 48 | Led { 49 | bind: Utils.path(sys.vebusPrefix, "/Leds/Overload") 50 | onColor: "#F75E25" 51 | } 52 | 53 | Led { 54 | bind: Utils.path(sys.vebusPrefix, "/Leds/LowBattery") 55 | onColor: "#F75E25" 56 | } 57 | 58 | Led { 59 | bind: Utils.path(sys.vebusPrefix, "/Leds/Temperature") 60 | onColor: "#F75E25" 61 | } 62 | } 63 | 64 | Text { 65 | anchors { 66 | horizontalCenter: multi.horizontalCenter 67 | top: multi.top; topMargin: 8 68 | } 69 | horizontalAlignment: Text.AlignHCenter 70 | color: "white" 71 | font {pixelSize: 16; bold: true} 72 | text: vebusState.text 73 | 74 | SystemState { 75 | id: vebusState 76 | bind: systemState.valid?Utils.path(systemPrefix, "/SystemState/State"):Utils.path(sys.vebusPrefix, "/State") 77 | } 78 | } 79 | 80 | // When a new service is found check if is a multi 81 | Connections { 82 | target: DBusServices 83 | onDbusServiceFound: addService(service) 84 | } 85 | 86 | function addService(service) 87 | { 88 | if (service.type === DBusService.DBUS_SERVICE_MULTI) { 89 | if (vebusPrefix === "") 90 | vebusPrefix = service.name; 91 | } 92 | } 93 | 94 | // Check available services to find multis 95 | function discoverMultis() 96 | { 97 | for (var i = 0; i < DBusServices.count; i++) { 98 | if (DBusServices.at(i).type === DBusService.DBUS_SERVICE_MULTI) { 99 | addService(DBusServices.at(i)) 100 | } 101 | } 102 | } 103 | } 104 | 105 | -------------------------------------------------------------------------------- /FileSets/PatchSource/Multi.qml.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/Multi.qml.orig 2024-07-09 10:19:47 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/Multi.qml 2024-05-14 07:00:12 3 | @@ -6,6 +6,21 @@ 4 | id: multi 5 | iconId: "overview-inverter" 6 | 7 | +////// GuiMods — DarkMode 8 | + property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 9 | + property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 10 | + 11 | + SvgRectangle 12 | + { 13 | + id:inverterForeground 14 | + width: multi.width 15 | + height: multi.height 16 | + radius: 3 17 | + color: "#000000" 18 | +////// GuiMods — DarkMode 19 | + opacity: !darkMode ? 0 : 0.35 20 | + } 21 | + 22 | property string vebusPrefix: "" 23 | property string systemPrefix: "com.victronenergy.system" 24 | property VBusItem systemState: VBusItem { bind: Utils.path(systemPrefix, "/SystemState/State") } 25 | @@ -67,7 +82,8 @@ 26 | top: multi.top; topMargin: 8 27 | } 28 | horizontalAlignment: Text.AlignHCenter 29 | - color: "white" 30 | +////// GuiMods — DarkMode 31 | + color: !darkMode ? "white" : "#e1e1e1" 32 | font {pixelSize: 16; bold: true} 33 | text: vebusState.text 34 | 35 | @@ -101,4 +117,3 @@ 36 | } 37 | } 38 | } 39 | - 40 | -------------------------------------------------------------------------------- /FileSets/PatchSource/ObjectAcConnection.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | import com.victron.velib 1.0 3 | import "utils.js" as Utils 4 | 5 | QtObject { 6 | property string bindPrefix 7 | property string inverterService: "" 8 | property string inverterSource: "" 9 | 10 | property VBusItem powerL1: VBusItem { bind: Utils.path(bindPrefix, "/L1/Power"); unit: "W"} 11 | property VBusItem powerL2: VBusItem { bind: Utils.path(bindPrefix, "/L2/Power"); unit: "W"} 12 | property VBusItem powerL3: VBusItem { bind: Utils.path(bindPrefix, "/L3/Power"); unit: "W"} 13 | property VBusItem power: VBusItem { unit: "W" } 14 | property VBusItem phaseCount: VBusItem { bind: Utils.path(bindPrefix, "/NumberOfPhases") } 15 | property bool splitPhaseL2PassthruDisabled: false 16 | property bool isAcOutput: false 17 | property bool l2AndL1OutSummed: false 18 | ////// added to show bar graphs 19 | property VBusItem inverterState: VBusItem { bind: Utils.path(systemPrefix, "/SystemState/State" ) } 20 | 21 | ////// add to show voltage, current, frequency and bar graphs and use grid/genset meter 22 | property VBusItem voltageL1: VBusItem { bind: Utils.path (bindPrefix, "/L1/Voltage"); unit: "V"} 23 | property VBusItem voltageL2: VBusItem { bind: Utils.path (bindPrefix, "/L2/Voltage"); unit: "V"} 24 | property VBusItem voltageL3: VBusItem { bind: Utils.path (bindPrefix, "/L3/Voltage"); unit: "V"} 25 | 26 | property VBusItem currentL1: VBusItem { bind: Utils.path (bindPrefix, "/L1/Current"); unit: "A"} 27 | property VBusItem currentL2: VBusItem { bind: Utils.path (bindPrefix, "/L2/Current"); unit: "A"} 28 | property VBusItem currentL3: VBusItem { bind: Utils.path (bindPrefix, "/L3/Current"); unit: "A"} 29 | 30 | property VBusItem frequency: VBusItem { bind: Utils.path (bindPrefix, "/Frequency"); unit: "Hz"} 31 | 32 | property VBusItem inCurrentLimit: VBusItem { bind: Utils.path(inverterService, inverterSource, "/CurrentLimit"); unit: "A"} 33 | ////// end add to show voltage, current and frequency 34 | 35 | // As systemcalc doesn't provide the totals anymore we calculate it here. 36 | // Timer is needed because the values are not received in once and then the total 37 | // changes too often on system with more than one phase 38 | property Timer timer: Timer { 39 | interval: 1000 40 | running: true 41 | repeat: true 42 | onTriggered: { 43 | power.value = powerL1.valid || powerL2.valid || powerL3.valid ? (powerL1.valid ? powerL1.value : 0) + 44 | (powerL2.valid ? powerL2.value : 0) + 45 | (powerL3.valid ? powerL3.value : 0) : undefined 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /FileSets/PatchSource/ObjectAcConnection.qml.orig: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | import com.victron.velib 1.0 3 | import "utils.js" as Utils 4 | 5 | QtObject { 6 | property string bindPrefix 7 | 8 | property VBusItem powerL1: VBusItem { bind: Utils.path(bindPrefix, "/L1/Power"); unit: "W"} 9 | property VBusItem powerL2: VBusItem { bind: Utils.path(bindPrefix, "/L2/Power"); unit: "W"} 10 | property VBusItem powerL3: VBusItem { bind: Utils.path(bindPrefix, "/L3/Power"); unit: "W"} 11 | property VBusItem phaseCount: VBusItem { bind: Utils.path(bindPrefix, "/NumberOfPhases") } 12 | property bool splitPhaseL2PassthruDisabled: false 13 | property bool isAcOutput: false 14 | property bool l2AndL1OutSummed: false 15 | 16 | property VBusItem power: VBusItem { unit: "W" } 17 | // As systemcalc doesn't provide the totals anymore we calculate it here. 18 | // Timer is needed because the values are not received in once and then the total 19 | // changes too often on system with more than one phase 20 | property Timer timer: Timer { 21 | interval: 1000 22 | running: true 23 | repeat: true 24 | onTriggered: { 25 | power.value = powerL1.valid || powerL2.valid || powerL3.valid ? (powerL1.valid ? powerL1.value : 0) + 26 | (powerL2.valid ? powerL2.value : 0) + 27 | (powerL3.valid ? powerL3.value : 0) : undefined 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /FileSets/PatchSource/ObjectAcConnection.qml.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/ObjectAcConnection.qml.orig 2025-01-12 08:28:05 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/ObjectAcConnection.qml 2025-02-02 17:43:09 3 | @@ -4,16 +4,34 @@ 4 | 5 | QtObject { 6 | property string bindPrefix 7 | + property string inverterService: "" 8 | + property string inverterSource: "" 9 | 10 | property VBusItem powerL1: VBusItem { bind: Utils.path(bindPrefix, "/L1/Power"); unit: "W"} 11 | property VBusItem powerL2: VBusItem { bind: Utils.path(bindPrefix, "/L2/Power"); unit: "W"} 12 | property VBusItem powerL3: VBusItem { bind: Utils.path(bindPrefix, "/L3/Power"); unit: "W"} 13 | - property VBusItem phaseCount: VBusItem { bind: Utils.path(bindPrefix, "/NumberOfPhases") } 14 | - property bool splitPhaseL2PassthruDisabled: false 15 | - property bool isAcOutput: false 16 | + property VBusItem power: VBusItem { unit: "W" } 17 | + property VBusItem phaseCount: VBusItem { bind: Utils.path(bindPrefix, "/NumberOfPhases") } 18 | + property bool splitPhaseL2PassthruDisabled: false 19 | + property bool isAcOutput: false 20 | property bool l2AndL1OutSummed: false 21 | +////// added to show bar graphs 22 | + property VBusItem inverterState: VBusItem { bind: Utils.path(systemPrefix, "/SystemState/State" ) } 23 | + 24 | + ////// add to show voltage, current, frequency and bar graphs and use grid/genset meter 25 | + property VBusItem voltageL1: VBusItem { bind: Utils.path (bindPrefix, "/L1/Voltage"); unit: "V"} 26 | + property VBusItem voltageL2: VBusItem { bind: Utils.path (bindPrefix, "/L2/Voltage"); unit: "V"} 27 | + property VBusItem voltageL3: VBusItem { bind: Utils.path (bindPrefix, "/L3/Voltage"); unit: "V"} 28 | 29 | - property VBusItem power: VBusItem { unit: "W" } 30 | + property VBusItem currentL1: VBusItem { bind: Utils.path (bindPrefix, "/L1/Current"); unit: "A"} 31 | + property VBusItem currentL2: VBusItem { bind: Utils.path (bindPrefix, "/L2/Current"); unit: "A"} 32 | + property VBusItem currentL3: VBusItem { bind: Utils.path (bindPrefix, "/L3/Current"); unit: "A"} 33 | + 34 | + property VBusItem frequency: VBusItem { bind: Utils.path (bindPrefix, "/Frequency"); unit: "Hz"} 35 | + 36 | + property VBusItem inCurrentLimit: VBusItem { bind: Utils.path(inverterService, inverterSource, "/CurrentLimit"); unit: "A"} 37 | + ////// end add to show voltage, current and frequency 38 | + 39 | // As systemcalc doesn't provide the totals anymore we calculate it here. 40 | // Timer is needed because the values are not received in once and then the total 41 | // changes too often on system with more than one phase 42 | -------------------------------------------------------------------------------- /FileSets/PatchSource/OverviewBox.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | 3 | SvgRectangle { 4 | id: root 5 | 6 | ////// GuiMods — DarkMode 7 | property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 8 | property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 9 | 10 | radius: 6 11 | width: 110 12 | height: 110 13 | ////// GuiMods — DarkMode 14 | color: !darkMode ? "#16a185" : "#0B5042" 15 | clip: true // hides an off by one pixel offset 16 | 17 | property string title 18 | ////// GuiMods — DarkMode 19 | property string titleColor: !darkMode ? "#1abc9c" : "#136050" 20 | property alias values: _values.children 21 | 22 | SvgRectangle { 23 | id: header 24 | width: parent.width 25 | height: 20 26 | radius: root.radius 27 | color: titleColor 28 | 29 | // prevent rounded corners at the bottom 30 | SvgRectangle { 31 | height: parent.height / 2 32 | width: parent.width 33 | color: parent.color 34 | anchors.top: parent.verticalCenter 35 | } 36 | 37 | Text { 38 | text: title 39 | font {pixelSize: 14; bold: true} 40 | ////// GuiMods — DarkMode 41 | color: !darkMode ? "white" : "#e1e1e1" 42 | anchors.centerIn: parent 43 | } 44 | } 45 | 46 | Item { 47 | id: _values 48 | anchors { 49 | top: header.bottom; 50 | bottom: root.bottom 51 | left: root.left 52 | right: root.right 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /FileSets/PatchSource/OverviewBox.qml.orig: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | 3 | SvgRectangle { 4 | id: root 5 | 6 | radius: 6 7 | width: 110 8 | height: 110 9 | color: "#16a185" 10 | clip: true // hides an off by one pixel offset 11 | 12 | property string title 13 | property string titleColor :"#1abc9c" 14 | property alias values: _values.children 15 | 16 | SvgRectangle { 17 | id: header 18 | width: parent.width 19 | height: 20 20 | radius: root.radius 21 | color: titleColor 22 | 23 | // prevent rounded corners at the bottom 24 | SvgRectangle { 25 | height: parent.height / 2 26 | width: parent.width 27 | color: parent.color 28 | anchors.top: parent.verticalCenter 29 | } 30 | 31 | Text { 32 | text: title 33 | font {pixelSize: 14; bold: true} 34 | color: "white" 35 | anchors.centerIn: parent 36 | } 37 | } 38 | 39 | Item { 40 | id: _values 41 | anchors { 42 | top: header.bottom; 43 | bottom: root.bottom 44 | left: root.left 45 | right: root.right 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /FileSets/PatchSource/OverviewBox.qml.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/OverviewBox.qml.orig 2024-07-09 10:19:49 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/OverviewBox.qml 2024-05-14 07:00:12 3 | @@ -3,14 +3,20 @@ 4 | SvgRectangle { 5 | id: root 6 | 7 | +////// GuiMods — DarkMode 8 | + property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 9 | + property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 10 | + 11 | radius: 6 12 | width: 110 13 | height: 110 14 | - color: "#16a185" 15 | +////// GuiMods — DarkMode 16 | + color: !darkMode ? "#16a185" : "#0B5042" 17 | clip: true // hides an off by one pixel offset 18 | 19 | property string title 20 | - property string titleColor :"#1abc9c" 21 | +////// GuiMods — DarkMode 22 | + property string titleColor: !darkMode ? "#1abc9c" : "#136050" 23 | property alias values: _values.children 24 | 25 | SvgRectangle { 26 | @@ -31,7 +37,8 @@ 27 | Text { 28 | text: title 29 | font {pixelSize: 14; bold: true} 30 | - color: "white" 31 | +////// GuiMods — DarkMode 32 | + color: !darkMode ? "white" : "#e1e1e1" 33 | anchors.centerIn: parent 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /FileSets/PatchSource/OverviewConnection.qml.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/OverviewConnection.qml.orig 2024-07-09 10:19:49 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/OverviewConnection.qml 2024-05-14 07:00:12 3 | @@ -22,6 +22,10 @@ 4 | Item { 5 | id: root 6 | 7 | +////// GuiMods — DarkMode 8 | + property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 9 | + property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 10 | + 11 | property Path path: emptyPath 12 | 13 | property Path straight: Path { 14 | @@ -37,9 +41,11 @@ 15 | 16 | property bool active 17 | property int ballCount: 4 18 | - property color ballColor: "#4789d0" 19 | +////// GuiMods — DarkMode 20 | + property color ballColor: !darkMode ? "#4789d0" : "#386ca5" 21 | property real ballDiameter: lineWidth * 2 + 1 22 | - property color lineColor: "#4789d0" 23 | +////// GuiMods — DarkMode 24 | + property color lineColor: !darkMode ? "#4789d0" : "#386ca5" 25 | property int lineWidth: 3 26 | property int value 27 | property bool startPointVisible: true 28 | -------------------------------------------------------------------------------- /FileSets/PatchSource/OverviewConnectionEnd.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | 3 | // NOTE: centers around the circle it midpoint 4 | // width and height are bogus! 5 | Item { 6 | id: root 7 | 8 | ////// GuiMods — DarkMode 9 | property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 10 | property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 11 | 12 | property real radius: 5.5 13 | property alias color: ball.color 14 | property int connectionSize: 7 15 | property int connectionLength: 9 16 | property alias rotation: connection.rotation 17 | 18 | Rectangle { 19 | id: connection 20 | 21 | transformOrigin: Item.Left 22 | ////// GuiMods — DarkMode 23 | color: !darkMode ? "white" : "#202020" 24 | width: root.radius + connectionLength 25 | height: connectionSize 26 | anchors { 27 | verticalCenter: ball.verticalCenter 28 | left: ball.horizontalCenter 29 | } 30 | } 31 | 32 | Circle { 33 | id: ball 34 | radius: root.radius 35 | ////// GuiMods — DarkMode 36 | color: !darkMode ? "#4789d0" : "#386ca5" 37 | x: -radius 38 | y: -radius 39 | 40 | border { 41 | width: 2 42 | ////// GuiMods — DarkMode 43 | color: !darkMode ? "white" : "#202020" 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /FileSets/PatchSource/OverviewConnectionEnd.qml.orig: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | 3 | // NOTE: centers around the circle it midpoint 4 | // width and height are bogus! 5 | Item { 6 | id: root 7 | 8 | property real radius: 5.5 9 | property alias color: ball.color 10 | property int connectionSize: 7 11 | property int connectionLength: 9 12 | property alias rotation: connection.rotation 13 | 14 | Rectangle { 15 | id: connection 16 | 17 | transformOrigin: Item.Left 18 | color: "white" 19 | width: root.radius + connectionLength 20 | height: connectionSize 21 | anchors { 22 | verticalCenter: ball.verticalCenter 23 | left: ball.horizontalCenter 24 | } 25 | } 26 | 27 | Circle { 28 | id: ball 29 | radius: root.radius 30 | color: "#4789d0" 31 | x: -radius 32 | y: -radius 33 | 34 | border { 35 | width: 2 36 | color: "white" 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /FileSets/PatchSource/OverviewConnectionEnd.qml.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/OverviewConnectionEnd.qml.orig 2024-07-09 10:19:50 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/OverviewConnectionEnd.qml 2024-05-14 07:00:12 3 | @@ -5,6 +5,10 @@ 4 | Item { 5 | id: root 6 | 7 | +////// GuiMods — DarkMode 8 | + property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 9 | + property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 10 | + 11 | property real radius: 5.5 12 | property alias color: ball.color 13 | property int connectionSize: 7 14 | @@ -15,7 +19,8 @@ 15 | id: connection 16 | 17 | transformOrigin: Item.Left 18 | - color: "white" 19 | +////// GuiMods — DarkMode 20 | + color: !darkMode ? "white" : "#202020" 21 | width: root.radius + connectionLength 22 | height: connectionSize 23 | anchors { 24 | @@ -27,13 +32,15 @@ 25 | Circle { 26 | id: ball 27 | radius: root.radius 28 | - color: "#4789d0" 29 | +////// GuiMods — DarkMode 30 | + color: !darkMode ? "#4789d0" : "#386ca5" 31 | x: -radius 32 | y: -radius 33 | 34 | border { 35 | width: 2 36 | - color: "white" 37 | +////// GuiMods — DarkMode 38 | + color: !darkMode ? "white" : "#202020" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /FileSets/PatchSource/OverviewGridParallel.qml.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/OverviewGridParallel.qml.orig 2025-01-12 08:30:33 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/OverviewGridParallel.qml 2024-05-14 07:00:12 3 | @@ -4,6 +4,10 @@ 4 | OverviewPage { 5 | id: root 6 | 7 | +////// GuiMods — DarkMode 8 | + property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 9 | + property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 10 | + 11 | property variant sys: theSystem 12 | property bool hasAcOutSystem: _hasAcOutSystem.value === 1 13 | 14 | @@ -20,8 +24,9 @@ 15 | width: 148 16 | height: 100 17 | title: getAcSourceName(sys.acSource) 18 | - titleColor: "#E74c3c" 19 | - color: "#C0392B" 20 | +////// GuiMods — DarkMode 21 | + titleColor: !darkMode ? "#E74c3c" : "#73261E" 22 | + color: !darkMode ? "#C0392B" : "#601C15" 23 | anchors { 24 | top: root.top; topMargin: 1 25 | left: parent.left; leftMargin: 5 26 | @@ -44,8 +49,9 @@ 27 | OverviewBox { 28 | id: acLoadBox 29 | title: qsTr("AC Loads") 30 | - color: "#27AE60" 31 | - titleColor: "#2ECC71" 32 | +////// GuiMods — DarkMode 33 | + color: !darkMode ? "#27AE60" : "#135730" 34 | + titleColor: !darkMode ? "#2ECC71" : "#176638" 35 | width: 148 36 | height: 100 37 | 38 | @@ -63,8 +69,9 @@ 39 | OverviewBox { 40 | id: acOutputBox 41 | title: qsTr("Critical Loads") 42 | - color: "#157894" 43 | - titleColor: "#419FB9" 44 | +////// GuiMods — DarkMode 45 | + color: !darkMode ? "#157894" : "#0a3c4a" 46 | + titleColor: !darkMode ? "#419FB9" : "#204f5c" 47 | height: 100 48 | width: 148 49 | visible: hasAcOutSystem 50 | @@ -103,8 +110,7 @@ 51 | 52 | soc: sys.battery.soc.valid ? sys.battery.soc.value : 0 53 | preferRenewable: sys.preferRenewableEnergy.valid 54 | - preferRenewableOverride: sys.preferRenewableEnergy.value === 0 || sys.preferRenewableEnergy.value === 2 55 | - preferRenewableOverrideGenset: sys.remoteGeneratorSelected.value === 1 || sys.acSource.value === 2 56 | + preferRenewableOverride: sys.preferRenewableEnergy.value === 0 57 | height: pvInverterOnGrid.visible ? 81 : 101 58 | width: 145 59 | 60 | -------------------------------------------------------------------------------- /FileSets/PatchSource/OverviewHub.qml.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/OverviewHub.qml.orig 2025-01-12 08:30:33 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/OverviewHub.qml 2024-05-14 07:00:12 3 | @@ -4,6 +4,10 @@ 4 | OverviewPage { 5 | id: root 6 | 7 | +////// GuiMods — DarkMode 8 | + property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 9 | + property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 10 | + 11 | property variant sys: theSystem 12 | property bool hasAcSolarOnAcIn1: sys.pvOnAcIn1.power.valid 13 | property bool hasAcSolarOnAcIn2: sys.pvOnAcIn2.power.valid 14 | @@ -21,8 +25,9 @@ 15 | width: 148 16 | height: showStatusBar ? 100 : 120 17 | title: getAcSourceName(sys.acSource) 18 | - titleColor: "#E74c3c" 19 | - color: "#C0392B" 20 | +////// GuiMods — DarkMode 21 | + titleColor: !darkMode ? "#E74c3c" : "#73261E" 22 | + color: !darkMode ? "#C0392B" : "#601C15" 23 | 24 | anchors { 25 | top: multi.top 26 | @@ -54,8 +59,9 @@ 27 | OverviewBox { 28 | id: acLoadBox 29 | title: qsTr("AC Loads") 30 | - color: "#27AE60" 31 | - titleColor: "#2ECC71" 32 | +////// GuiMods — DarkMode 33 | + color: !darkMode ? "#27AE60" : "#135730" 34 | + titleColor: !darkMode ? "#2ECC71" : "#176638" 35 | width: 148 36 | height: showStatusBar ? 100 : 120 37 | 38 | @@ -73,9 +79,7 @@ 39 | id: battery 40 | 41 | soc: sys.battery.soc.valid ? sys.battery.soc.value : 0 42 | - preferRenewable: sys.preferRenewableEnergy.valid 43 | - preferRenewableOverride: sys.preferRenewableEnergy.value === 0 || sys.preferRenewableEnergy.value === 2 44 | - preferRenewableOverrideGenset: sys.remoteGeneratorSelected.value === 1 || sys.acSource.value === 2 45 | + 46 | anchors { 47 | bottom: parent.bottom; bottomMargin: 5; 48 | left: parent.left; leftMargin: 10 49 | -------------------------------------------------------------------------------- /FileSets/PatchSource/OverviewSolarCharger.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | 3 | Item { 4 | id: root 5 | 6 | ////// GuiMods — DarkMode 7 | property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 8 | property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 9 | 10 | default property alias values: blueSolarChargerBox.values 11 | property alias title: blueSolarChargerBox.title 12 | property bool showChargerIcon: true 13 | 14 | width: 155 15 | height: 115 16 | 17 | MbIcon { 18 | id: blueSolarChargerIcon 19 | 20 | iconId: "overview-bluesolar-charger" 21 | anchors.bottom: root.bottom 22 | visible: showChargerIcon 23 | } 24 | 25 | OverviewBox { 26 | id: blueSolarChargerBox 27 | 28 | height: root.height 29 | title: qsTr("PV Power") 30 | ////// GuiMods — DarkMode 31 | titleColor: !darkMode ? "#F4B350" : "#7A5928" 32 | color: !darkMode ? "#F39C12" : "#794E09" 33 | 34 | anchors { 35 | bottom: root.bottom 36 | left: blueSolarChargerIcon.left; leftMargin: showChargerIcon ? 43 : 0 37 | right: parent.right 38 | } 39 | } 40 | 41 | MbIcon { 42 | anchors { 43 | bottom: blueSolarChargerBox.bottom; bottomMargin: 3 44 | right: blueSolarChargerBox.right; rightMargin: 3 45 | } 46 | iconId: "overview-sun" 47 | display: showChargerIcon 48 | } 49 | 50 | MbIcon { 51 | anchors { 52 | bottom: blueSolarChargerBox.bottom; bottomMargin: 3 53 | left: parent.left; leftMargin: 2 54 | } 55 | iconId: "overview-victron-logo-small" 56 | display: !showChargerIcon 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /FileSets/PatchSource/OverviewSolarCharger.qml.orig: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | 3 | Item { 4 | id: root 5 | 6 | default property alias values: blueSolarChargerBox.values 7 | property alias title: blueSolarChargerBox.title 8 | property bool showChargerIcon: true 9 | 10 | width: 155 11 | height: 115 12 | 13 | MbIcon { 14 | id: blueSolarChargerIcon 15 | 16 | iconId: "overview-bluesolar-charger" 17 | anchors.bottom: root.bottom 18 | visible: showChargerIcon 19 | } 20 | 21 | OverviewBox { 22 | id: blueSolarChargerBox 23 | 24 | height: root.height 25 | title: qsTr("PV Power") 26 | titleColor: "#F4B350" 27 | color: "#F39C12" 28 | 29 | anchors { 30 | bottom: root.bottom 31 | left: blueSolarChargerIcon.left; leftMargin: showChargerIcon ? 43 : 0 32 | right: parent.right 33 | } 34 | } 35 | 36 | MbIcon { 37 | anchors { 38 | bottom: blueSolarChargerBox.bottom; bottomMargin: 3 39 | right: blueSolarChargerBox.right; rightMargin: 3 40 | } 41 | iconId: "overview-sun" 42 | display: showChargerIcon 43 | } 44 | 45 | MbIcon { 46 | anchors { 47 | bottom: blueSolarChargerBox.bottom; bottomMargin: 3 48 | left: parent.left; leftMargin: 2 49 | } 50 | iconId: "overview-victron-logo-small" 51 | display: !showChargerIcon 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /FileSets/PatchSource/OverviewSolarCharger.qml.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/OverviewSolarCharger.qml.orig 2024-07-09 10:19:54 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/OverviewSolarCharger.qml 2024-05-14 07:00:12 3 | @@ -3,6 +3,10 @@ 4 | Item { 5 | id: root 6 | 7 | +////// GuiMods — DarkMode 8 | + property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 9 | + property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 10 | + 11 | default property alias values: blueSolarChargerBox.values 12 | property alias title: blueSolarChargerBox.title 13 | property bool showChargerIcon: true 14 | @@ -23,8 +27,9 @@ 15 | 16 | height: root.height 17 | title: qsTr("PV Power") 18 | - titleColor: "#F4B350" 19 | - color: "#F39C12" 20 | +////// GuiMods — DarkMode 21 | + titleColor: !darkMode ? "#F4B350" : "#7A5928" 22 | + color: !darkMode ? "#F39C12" : "#794E09" 23 | 24 | anchors { 25 | bottom: root.bottom 26 | -------------------------------------------------------------------------------- /FileSets/PatchSource/OverviewSolarInverter.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | 3 | Rectangle { 4 | id: root 5 | 6 | ////// GuiMods — DarkMode 7 | property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 8 | property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 9 | 10 | default property alias values: pvInverterBox.values 11 | property alias title: pvInverterBox.title 12 | property bool showInverterIcon: true 13 | 14 | width: 155 15 | height: 115 16 | color: "transparent" 17 | clip: true 18 | 19 | MbIcon { 20 | id: pvInverterIcon 21 | iconId: getDeviceIcon() 22 | visible: showInverterIcon && getDeviceIcon() !== "" 23 | anchors.bottom: parent.bottom 24 | } 25 | 26 | OverviewBox { 27 | id: pvInverterBox 28 | 29 | height: root.height 30 | title: qsTr("PV Power") 31 | ////// GuiMods — DarkMode 32 | titleColor: !darkMode ? "#F4B350" : "#7A5928" 33 | color: !darkMode ? "#F39C12" : "#794E09" 34 | 35 | anchors { 36 | bottom: parent.bottom 37 | left: pvInverterIcon.left; leftMargin: pvInverterIcon.visible ? 32 : 0 38 | right: parent.right 39 | } 40 | 41 | MbIcon { 42 | iconId: getDeviceLogo() 43 | visible: !showInverterIcon 44 | anchors { 45 | bottom: parent.bottom 46 | left: parent.left 47 | margins: 2 48 | } 49 | } 50 | } 51 | 52 | function getDeviceIcon() 53 | { 54 | var ids = sys.pvInvertersProductIds.text 55 | if (ids.indexOf(0xA142) > -1) 56 | return "overview-pvinverter-fronius" 57 | return "" 58 | } 59 | 60 | function getDeviceLogo() 61 | { 62 | var ids = sys.pvInvertersProductIds.text 63 | if (ids.indexOf(0xA142) > -1) 64 | return "overview-fronius-logo" 65 | return "" 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /FileSets/PatchSource/OverviewSolarInverter.qml.orig: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | 3 | Rectangle { 4 | id: root 5 | 6 | default property alias values: pvInverterBox.values 7 | property alias title: pvInverterBox.title 8 | property bool showInverterIcon: true 9 | 10 | width: 155 11 | height: 115 12 | color: "transparent" 13 | clip: true 14 | 15 | MbIcon { 16 | id: pvInverterIcon 17 | iconId: getDeviceIcon() 18 | visible: showInverterIcon && getDeviceIcon() !== "" 19 | anchors.bottom: parent.bottom 20 | } 21 | 22 | OverviewBox { 23 | id: pvInverterBox 24 | 25 | height: root.height 26 | title: qsTr("PV Power") 27 | titleColor: "#F4B350" 28 | color: "#F39C12" 29 | 30 | anchors { 31 | bottom: parent.bottom 32 | left: pvInverterIcon.left; leftMargin: pvInverterIcon.visible ? 32 : 0 33 | right: parent.right 34 | } 35 | 36 | MbIcon { 37 | iconId: getDeviceLogo() 38 | visible: !showInverterIcon 39 | anchors { 40 | bottom: parent.bottom 41 | left: parent.left 42 | margins: 2 43 | } 44 | } 45 | } 46 | 47 | function getDeviceIcon() 48 | { 49 | var ids = sys.pvInvertersProductIds.text 50 | if (ids.indexOf(0xA142) > -1) 51 | return "overview-pvinverter-fronius" 52 | return "" 53 | } 54 | 55 | function getDeviceLogo() 56 | { 57 | var ids = sys.pvInvertersProductIds.text 58 | if (ids.indexOf(0xA142) > -1) 59 | return "overview-fronius-logo" 60 | return "" 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /FileSets/PatchSource/OverviewSolarInverter.qml.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/OverviewSolarInverter.qml.orig 2024-07-09 10:19:55 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/OverviewSolarInverter.qml 2024-05-14 07:00:12 3 | @@ -3,6 +3,10 @@ 4 | Rectangle { 5 | id: root 6 | 7 | +////// GuiMods — DarkMode 8 | + property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 9 | + property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 10 | + 11 | default property alias values: pvInverterBox.values 12 | property alias title: pvInverterBox.title 13 | property bool showInverterIcon: true 14 | @@ -24,8 +28,9 @@ 15 | 16 | height: root.height 17 | title: qsTr("PV Power") 18 | - titleColor: "#F4B350" 19 | - color: "#F39C12" 20 | +////// GuiMods — DarkMode 21 | + titleColor: !darkMode ? "#F4B350" : "#7A5928" 22 | + color: !darkMode ? "#F39C12" : "#794E09" 23 | 24 | anchors { 25 | bottom: parent.bottom 26 | -------------------------------------------------------------------------------- /FileSets/PatchSource/OverviewTankDelegate.qml.orig: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | import com.victron.velib 1.0 3 | import "utils.js" as Utils 4 | import "tanksensor.js" as TankSensor 5 | 6 | Item { 7 | id: root 8 | 9 | property string bindPrefix 10 | property variant service: DBusServices.get(bindPrefix) 11 | property variant info: TankSensor.info(fluidTypeItem.value) 12 | 13 | property VBusItem fluidTypeItem: VBusItem { bind: Utils.path(bindPrefix, "/FluidType") } 14 | property VBusItem volumeUnit: VBusItem { bind: "com.victronenergy.settings/Settings/System/VolumeUnit" } 15 | property VBusItem tankLevelItem: VBusItem { 16 | bind: Utils.path(bindPrefix, "/Level") 17 | decimals: 0 18 | unit: "%" 19 | } 20 | property VBusItem tankCapacityItem: VBusItem { 21 | bind: Utils.path(bindPrefix, "/Capacity") 22 | text: TankSensor.formatVolume(volumeUnit.value, value) 23 | } 24 | property VBusItem tankRemainingItem: VBusItem { 25 | bind: Utils.path(bindPrefix, "/Remaining") 26 | text: TankSensor.formatVolume(volumeUnit.value, value) 27 | } 28 | 29 | width: 65 30 | height: 150 31 | 32 | SvgRectangle { 33 | id: mainRect 34 | border { color: info.color; width: 2 } 35 | width: root.width 36 | height: root.height * 0.72 37 | color: "white" 38 | 39 | SvgRectangle { 40 | color: info.color 41 | height: (parent.height - 4) * (tankLevelItem.value / 100) 42 | width: parent.width - 5 43 | anchors { 44 | left: parent.left; leftMargin: 2 45 | right: parent.right; rightMargin: 2 46 | bottom: parent.bottom; bottomMargin: 2 47 | } 48 | } 49 | 50 | Text { 51 | text: tankLevelItem.text 52 | width: parent.width 53 | font.pixelSize: width < 50 ? 12 : 18 54 | horizontalAlignment: Text.AlignHCenter 55 | clip: true 56 | anchors { 57 | horizontalCenter: parent.horizontalCenter 58 | top: parent.top; topMargin: 6 59 | } 60 | } 61 | 62 | MbIcon { 63 | iconId: info.icon 64 | anchors.centerIn: parent 65 | } 66 | 67 | Text { 68 | text: tankRemainingItem.text 69 | font.pixelSize: width < 50 ? 11 : 12 70 | width: parent.width 71 | horizontalAlignment: Text.AlignHCenter 72 | clip: true 73 | anchors { 74 | horizontalCenter: parent.horizontalCenter 75 | bottom: _capacityText.top 76 | } 77 | } 78 | 79 | Text { 80 | id: _capacityText 81 | text: "(%1)".arg(tankCapacityItem.text) 82 | font.pixelSize: width < 50 ? 11 : 12 83 | width: parent.width 84 | horizontalAlignment: Text.AlignHCenter 85 | clip: true 86 | anchors { 87 | horizontalCenter: parent.horizontalCenter 88 | bottom: parent.bottom; bottomMargin: 6 89 | } 90 | } 91 | } 92 | 93 | Text { 94 | id: _tankName 95 | text: service.description 96 | color: "black" 97 | width: parent.width + (parent.width < 50 ? 4 : 13) 98 | horizontalAlignment: Text.AlignHCenter 99 | wrapMode: Text.WrapAtWordBoundaryOrAnywhere 100 | font.pixelSize: 12 101 | maximumLineCount: 2 102 | clip: true 103 | anchors { 104 | top: mainRect.bottom; topMargin: 6 105 | bottom: root.bottom 106 | horizontalCenter: root.horizontalCenter 107 | } 108 | } 109 | } 110 | -------------------------------------------------------------------------------- /FileSets/PatchSource/OverviewTankDelegate.qml.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/OverviewTankDelegate.qml.orig 2024-07-09 10:19:55 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/OverviewTankDelegate.qml 2024-05-14 07:00:12 3 | @@ -6,6 +6,10 @@ 4 | Item { 5 | id: root 6 | 7 | +////// GuiMods — DarkMode 8 | + property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 9 | + property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 10 | + 11 | property string bindPrefix 12 | property variant service: DBusServices.get(bindPrefix) 13 | property variant info: TankSensor.info(fluidTypeItem.value) 14 | @@ -34,7 +38,8 @@ 15 | border { color: info.color; width: 2 } 16 | width: root.width 17 | height: root.height * 0.72 18 | - color: "white" 19 | +////// GuiMods — DarkMode 20 | + color: !darkMode ? "white" : "#c0c0c0" 21 | 22 | SvgRectangle { 23 | color: info.color 24 | @@ -93,7 +98,8 @@ 25 | Text { 26 | id: _tankName 27 | text: service.description 28 | - color: "black" 29 | +////// GuiMods — DarkMode 30 | + color: !darkMode ? "black" : "#e1e1e1" 31 | width: parent.width + (parent.width < 50 ? 4 : 13) 32 | horizontalAlignment: Text.AlignHCenter 33 | wrapMode: Text.WrapAtWordBoundaryOrAnywhere 34 | -------------------------------------------------------------------------------- /FileSets/PatchSource/OverviewTanks.qml.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/OverviewTanks.qml.orig 2024-07-09 10:19:56 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/OverviewTanks.qml 2024-05-14 07:00:12 3 | @@ -6,6 +6,10 @@ 4 | OverviewPage { 5 | id: root 6 | 7 | +////// GuiMods — DarkMode 8 | + property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 9 | + property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 10 | + 11 | property int numberOfTanks: tanks.all.rowCount 12 | property int visibleTanks: tanks.rowCount 13 | property int maxTanksPerPage: 10 14 | @@ -35,6 +39,8 @@ 15 | 16 | Text { 17 | text: qsTr("No tanks found") 18 | +////// GuiMods — DarkMode 19 | + color: !darkMode ? "#ffffff" : "#e1e1e1" 20 | font.pixelSize: 25 21 | anchors.centerIn: parent 22 | visible: numberOfTanks === 0 23 | @@ -62,9 +68,12 @@ 24 | text: fluidName 25 | height: 25 26 | font.pixelSize: 16 27 | - opacity: ListView.isCurrentItem ? 1 : 0.3 28 | +////// GuiMods — DarkMode 29 | + opacity: ListView.isCurrentItem ? 1 : (!darkMode ? 0.3 : 0.5) 30 | verticalAlignment: Text.AlignVCenter 31 | scale: ListView.isCurrentItem ? 1.25 : 1 32 | +////// GuiMods — DarkMode 33 | + color: !darkMode ? "black" : "#e1e1e1" 34 | 35 | Behavior on scale { 36 | NumberAnimation { duration: 150 } 37 | @@ -83,7 +92,8 @@ 38 | y: 25 39 | transform: Rotation { origin.x: 0; origin.y: 0; angle: -90} 40 | gradient: Gradient { 41 | - GradientStop { position: 0.7; color: "white" } 42 | +////// GuiMods — DarkMode 43 | + GradientStop { position: 0.7; color: !darkMode ? "white" : "#202020" } 44 | GradientStop { position: 1; color: "transparent" } 45 | } 46 | } 47 | @@ -94,14 +104,16 @@ 48 | x: parent.width 49 | transform: Rotation { origin.x: 0; origin.y: 0; angle: 90} 50 | gradient: Gradient { 51 | - GradientStop { position: 0.7; color: "white" } 52 | +////// GuiMods — DarkMode 53 | + GradientStop { position: 0.7; color: !darkMode ? "white" : "#202020" } 54 | GradientStop { position: 1; color: "transparent" } 55 | } 56 | } 57 | 58 | // touch buttons for selecting a tank type 59 | MbIcon { 60 | - iconId: "icon-toolbar-enter" 61 | +////// GuiMods — DarkMode 62 | + iconId: darkMode ? "icon-toolbar-enter" : "icon-toolbar-enter-active" 63 | rotation: 180 64 | anchors { 65 | left: parent.left; leftMargin: 40 66 | @@ -117,7 +129,8 @@ 67 | } 68 | 69 | MbIcon { 70 | - iconId: "icon-toolbar-enter" 71 | +////// GuiMods — DarkMode 72 | + iconId: darkMode ? "icon-toolbar-enter" : "icon-toolbar-enter-active" 73 | anchors { 74 | right: parent.right; rightMargin: 40 75 | verticalCenter: parent.verticalCenter 76 | -------------------------------------------------------------------------------- /FileSets/PatchSource/PageDigitalInput.qml.orig: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | import com.victron.velib 1.0 3 | import "utils.js" as Utils 4 | 5 | MbPage { 6 | id: root 7 | 8 | property variant service 9 | property string bindPrefix 10 | property string settingsBindPreffix: "com.victronenergy.settings/Settings/DigitalInput/" + inputNumber 11 | property int inputNumber: instance.valid ? instance.value : 0 12 | 13 | title: getType(service.description) 14 | summary: getState(state.item.value) 15 | 16 | VBusItem { 17 | id: instance 18 | bind: service.path("/DeviceInstance") 19 | } 20 | 21 | // Handle translations 22 | function getType(type){ 23 | switch (type) { 24 | case "Disabled": 25 | return qsTr("Disabled") 26 | case "Pulse meter": 27 | return qsTr("Pulse meter") 28 | case "Door alarm": 29 | return qsTr("Door alarm") 30 | case "Bilge pump": 31 | return qsTr("Bilge pump") 32 | case "Bilge alarm": 33 | return qsTr("Bilge alarm") 34 | case "Burglar alarm": 35 | return qsTr("Burglar alarm") 36 | case "Smoke alarm": 37 | return qsTr("Smoke alarm") 38 | case "Fire alarm": 39 | return qsTr("Fire alarm") 40 | case "CO2 alarm": 41 | return qsTr("CO2 alarm") 42 | case "Generator": 43 | return qsTr("Generator") 44 | } 45 | return type; 46 | } 47 | 48 | function getState(st) 49 | { 50 | switch (st) { 51 | case 0: 52 | return qsTr("Low") 53 | case 1: 54 | return qsTr("High") 55 | case 2: 56 | return qsTr("Off") 57 | case 3: 58 | return qsTr("On") 59 | case 4: 60 | return qsTr("No") 61 | case 5: 62 | return qsTr("Yes") 63 | case 6: 64 | return qsTr("Open") 65 | case 7: 66 | return qsTr("Closed") 67 | case 8: 68 | return qsTr("Ok") 69 | case 9: 70 | return qsTr("Alarm") 71 | case 10: 72 | return qsTr("Running") 73 | case 11: 74 | return qsTr("Stopped") 75 | } 76 | 77 | return qsTr("Unknown") 78 | } 79 | 80 | model: VisibleItemModel { 81 | MbItemValue { 82 | id: state 83 | description: qsTr("State") 84 | item.bind: service.path("/State") 85 | item.text: getState(item.value) 86 | } 87 | 88 | MbSubMenu { 89 | id: setupMenu 90 | description: qsTr("Setup") 91 | subpage: Component { 92 | PageDigitalInputSetup { 93 | bindPrefix: root.settingsBindPreffix 94 | } 95 | } 96 | } 97 | 98 | MbSubMenu { 99 | id: deviceMenu 100 | description: qsTr("Device") 101 | subpage: Component { 102 | PageDeviceInfo { 103 | title: deviceMenu.description 104 | bindPrefix: root.bindPrefix 105 | } 106 | } 107 | } 108 | } 109 | } 110 | -------------------------------------------------------------------------------- /FileSets/PatchSource/PageDigitalInput.qml.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/PageDigitalInput.qml.orig 2024-07-09 10:19:57 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/PageDigitalInput.qml 2025-02-02 17:43:22 3 | @@ -18,6 +18,20 @@ 4 | bind: service.path("/DeviceInstance") 5 | } 6 | 7 | +//// added for ExtTransferSwitch package 8 | + VBusItem 9 | + { 10 | + id: ac2connectedItem 11 | + bind: Utils.path ("com.victronenergy.system", "/Ac/In/1/Connected") 12 | + } 13 | + property bool showTransferSwitchConnection: ac2connectedItem.valid 14 | + VBusItem 15 | + { 16 | + id: typeItem 17 | + bind: service.path("/Type") 18 | + } 19 | + property bool isTransferSwitch: typeItem.valid && typeItem.value == 12 20 | + 21 | // Handle translations 22 | function getType(type){ 23 | switch (type) { 24 | @@ -41,6 +55,9 @@ 25 | return qsTr("CO2 alarm") 26 | case "Generator": 27 | return qsTr("Generator") 28 | +//// added for ExtTransferSwitch package 29 | + case "TransferSwitch": 30 | + return qsTr("External transfer switch") 31 | } 32 | return type; 33 | } 34 | @@ -72,6 +89,11 @@ 35 | return qsTr("Running") 36 | case 11: 37 | return qsTr("Stopped") 38 | +//// added for ExtTransferSwitch package 39 | + case 12: 40 | + return qsTr("On generator") 41 | + case 13: 42 | + return qsTr("On grid") 43 | } 44 | 45 | return qsTr("Unknown") 46 | @@ -105,5 +127,19 @@ 47 | } 48 | } 49 | } 50 | + 51 | +//// added for ExtTransferSwitch package 52 | + MbItemOptions 53 | + { 54 | + id: extTransferSwitch 55 | + description: qsTr("External transfer switch connection") 56 | + bind: Utils.path ("com.victronenergy.settings/Settings", "/TransferSwitch/TransferSwitchOnAc2") 57 | + possibleValues: 58 | + [ 59 | + MbOption {description: qsTr("AC 1 in"); value: 0}, 60 | + MbOption {description: qsTr("AC 2 in"); value: 1} 61 | + ] 62 | + visible: root.isTransferSwitch && root.showTransferSwitchConnection 63 | + } 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /FileSets/PatchSource/PageGeneratorConditions.qml.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/PageGeneratorConditions.qml.orig 2018-03-09 04:34:56 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/PageGeneratorConditions.qml 2025-04-18 09:28:02 3 | @@ -65,9 +65,7 @@ 4 | onOptionSelected: { 5 | stopOnAc1Item.setValue(newValue & 1) 6 | stopOnAc2Item.setValue((newValue & 2) >> 1) 7 | - if (newValue > 0) { 8 | - toast.createToast(qsTr("Make sure that the generator is not connected to AC input %1 when using this option.").arg(newValue), 10000, "icon-info-active") 9 | - } 10 | +//// GuiMods - remove warning since startstop.py ignores the setting if on generator 11 | } 12 | } 13 | 14 | -------------------------------------------------------------------------------- /FileSets/PatchSource/PageMain.qml-v3.22.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/PageMain.qml-v3.22.orig 2024-07-08 09:45:00 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/PageMain.qml-v3.22 2025-02-02 17:47:12 3 | @@ -1,11 +1,50 @@ 4 | import QtQuick 1.1 5 | +import "utils.js" as Utils 6 | import com.victron.velib 1.0 7 | 8 | MbPage { 9 | id: root 10 | title: qsTr("Device List") 11 | 12 | +//////// GuiMods put Settings, Notifications, Remove disconnected... at top of list 13 | + property VBusItem moveSettings: VBusItem { id: moveSettings; bind: Utils.path("com.victronenergy.settings", "/Settings/GuiMods/MoveSettings")} 14 | + property bool settingsAtTop: moveSettings.valid && moveSettings.value === 1 15 | + 16 | model: VisualModels { 17 | +//////// GuiMods put Settings, Notifications, Remove disconnected... at top of list 18 | + VisibleItemModel { //////// use VisualItemModel below for v2.93 and earlier 19 | + MbSubMenu { 20 | + description: qsTr("Settings") 21 | + subpage: Component { PageSettings {} } 22 | + show: settingsAtTop 23 | + } 24 | + 25 | + MbSubMenu { 26 | + id: menuNotificationsTop 27 | + description: qsTr("Notifications") 28 | + item: VBusItem { 29 | + property variant active: NotificationCenter.notifications.filter( 30 | + function isActive(obj) { return obj.active} ) 31 | + value: active.length > 0 ? active.length : "" 32 | + } 33 | + subpage: Component { PageNotifications {} } 34 | + show: settingsAtTop 35 | + } 36 | + 37 | + MbOK { 38 | + description: qsTr("Remove disconnected devices") 39 | + value: qsTr("Press to remove") 40 | + show: settingsAtTop && deviceList.disconnectedDevices != 0 41 | + editable: true 42 | + 43 | + function clicked() { 44 | + listview.decrementCurrentIndex() 45 | + deviceList.removeDisconnected() 46 | + } 47 | + } 48 | + } 49 | +//////// end GuiMods put Settings, Notifications, Remove disconnected... at top of list 50 | + 51 | VisualDataModel { 52 | model: VeSortFilterProxyModel { 53 | model: DeviceList { 54 | @@ -27,7 +66,7 @@ 55 | subpage: model.page 56 | } 57 | } 58 | - VisibleItemModel { 59 | + VisibleItemModel { //////// use VisualItemModel below for v2.93 and earlier 60 | MbSubMenu { 61 | id: menuNotifications 62 | description: qsTr("Notifications") 63 | @@ -37,17 +76,22 @@ 64 | value: active.length > 0 ? active.length : "" 65 | } 66 | subpage: Component { PageNotifications {} } 67 | +//////// GuiMods hide this if added at top 68 | + show: !settingsAtTop 69 | } 70 | 71 | MbSubMenu { 72 | description: qsTr("Settings") 73 | subpage: Component { PageSettings {} } 74 | +//////// GuiMods hide this if added at top 75 | + show: !settingsAtTop 76 | } 77 | 78 | MbOK { 79 | description: qsTr("Remove disconnected devices") 80 | value: qsTr("Press to remove") 81 | - show: deviceList.disconnectedDevices != 0 82 | +//////// GuiMods hide this if added at top 83 | + show: !settingsAtTop && deviceList.disconnectedDevices != 0 84 | editable: true 85 | 86 | function clicked() { 87 | -------------------------------------------------------------------------------- /FileSets/PatchSource/PageMain.qml-v3.34.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/PageMain.qml-v3.34.orig 2024-07-08 09:45:00 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/PageMain.qml-v3.34 2025-02-02 17:47:35 3 | @@ -1,11 +1,46 @@ 4 | import QtQuick 1.1 5 | +import "utils.js" as Utils 6 | import com.victron.velib 1.0 7 | 8 | MbPage { 9 | id: root 10 | title: qsTr("Device List") 11 | 12 | +//////// GuiMods put Settings, Notifications, Remove disconnected... at top of list 13 | + property VBusItem moveSettings: VBusItem { id: moveSettings; bind: Utils.path("com.victronenergy.settings", "/Settings/GuiMods/MoveSettings")} 14 | + property bool settingsAtTop: moveSettings.valid && moveSettings.value === 1 15 | + 16 | model: VisualModels { 17 | +//////// GuiMods put Settings, Notifications, Remove disconnected... at top of list 18 | + VisibleItemModel { //////// use VisualItemModel below for v2.93 and earlier 19 | + MbSubMenu { 20 | + description: qsTr("Settings") 21 | + subpage: Component { PageSettings {} } 22 | + show: settingsAtTop 23 | + } 24 | + 25 | + MbSubMenu { 26 | + id: menuNotificationsTop 27 | + description: qsTr("Notifications") 28 | + item: VBusItem { value: menuNotifications.subpage.summary } 29 | + subpage: PageNotifications { } 30 | + show: settingsAtTop 31 | + } 32 | + 33 | + MbOK { 34 | + description: qsTr("Remove disconnected devices") 35 | + value: qsTr("Press to remove") 36 | + show: settingsAtTop && deviceList.disconnectedDevices != 0 37 | + editable: true 38 | + 39 | + function clicked() { 40 | + listview.decrementCurrentIndex() 41 | + deviceList.removeDisconnected() 42 | + } 43 | + } 44 | + } 45 | +//////// end GuiMods put Settings, Notifications, Remove disconnected... at top of list 46 | + 47 | VisualDataModel { 48 | model: VeSortFilterProxyModel { 49 | model: DeviceList { 50 | @@ -27,23 +62,28 @@ 51 | subpage: model.page 52 | } 53 | } 54 | - VisibleItemModel { 55 | + VisibleItemModel { //////// use VisualItemModel below for v2.93 and earlier 56 | MbSubMenu { 57 | id: menuNotifications 58 | description: qsTr("Notifications") 59 | item: VBusItem { value: menuNotifications.subpage.summary } 60 | subpage: PageNotifications { } 61 | +//////// GuiMods hide this if added at top 62 | + show: !settingsAtTop 63 | } 64 | 65 | MbSubMenu { 66 | description: qsTr("Settings") 67 | subpage: Component { PageSettings {} } 68 | +//////// GuiMods hide this if added at top 69 | + show: !settingsAtTop 70 | } 71 | 72 | MbOK { 73 | description: qsTr("Remove disconnected devices") 74 | value: qsTr("Press to remove") 75 | - show: deviceList.disconnectedDevices != 0 76 | +//////// GuiMods hide this if added at top 77 | + show: !settingsAtTop && deviceList.disconnectedDevices != 0 78 | editable: true 79 | 80 | function clicked() { 81 | -------------------------------------------------------------------------------- /FileSets/PatchSource/PageMain.qml-v3.40.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/PageMain.qml-v3.40.orig 2024-07-08 09:45:00 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/PageMain.qml-v3.40 2025-02-02 17:47:45 3 | @@ -1,11 +1,46 @@ 4 | import QtQuick 1.1 5 | +import "utils.js" as Utils 6 | import com.victron.velib 1.0 7 | 8 | MbPage { 9 | id: root 10 | title: qsTr("Device List") 11 | 12 | +//////// GuiMods put Settings, Notifications, Remove disconnected... at top of list 13 | + property VBusItem moveSettings: VBusItem { id: moveSettings; bind: Utils.path("com.victronenergy.settings", "/Settings/GuiMods/MoveSettings")} 14 | + property bool settingsAtTop: moveSettings.valid && moveSettings.value === 1 15 | + 16 | model: VisualModels { 17 | +//////// GuiMods put Settings, Notifications, Remove disconnected... at top of list 18 | + VisibleItemModel { //////// use VisualItemModel below for v2.93 and earlier 19 | + MbSubMenu { 20 | + description: qsTr("Settings") 21 | + subpage: Component { PageSettings {} } 22 | + show: settingsAtTop 23 | + } 24 | + 25 | + MbSubMenu { 26 | + id: menuNotificationsTop 27 | + description: qsTr("Notifications") 28 | + item: VBusItem { value: menuNotifications.subpage.summary } 29 | + subpage: PageNotifications { } 30 | + show: settingsAtTop 31 | + } 32 | + 33 | + MbOK { 34 | + description: qsTr("Remove disconnected devices") 35 | + value: qsTr("Press to remove") 36 | + show: settingsAtTop && deviceList.disconnectedDevices != 0 37 | + editable: true 38 | + 39 | + function clicked() { 40 | + listview.decrementCurrentIndex() 41 | + deviceList.removeDisconnected() 42 | + } 43 | + } 44 | + } 45 | +//////// end GuiMods put Settings, Notifications, Remove disconnected... at top of list 46 | + 47 | VisualDataModel { 48 | model: VeSortFilterProxyModel { 49 | model: DeviceList { 50 | @@ -27,23 +62,28 @@ 51 | subpage: model.page 52 | } 53 | } 54 | - VisibleItemModel { 55 | + VisibleItemModel { //////// use VisualItemModel below for v2.93 and earlier 56 | MbSubMenu { 57 | id: menuNotifications 58 | description: qsTr("Notifications") 59 | item: VBusItem { value: menuNotifications.subpage.summary } 60 | subpage: PageNotifications { } 61 | +//////// GuiMods hide this if added at top 62 | + show: !settingsAtTop 63 | } 64 | 65 | MbSubMenu { 66 | description: qsTr("Settings") 67 | subpage: Component { PageSettings {} } 68 | +//////// GuiMods hide this if added at top 69 | + show: !settingsAtTop 70 | } 71 | 72 | MbOK { 73 | description: qsTr("Remove disconnected devices") 74 | value: qsTr("Press to remove") 75 | - show: deviceList.disconnectedDevices != 0 76 | +//////// GuiMods hide this if added at top 77 | + show: !settingsAtTop && deviceList.disconnectedDevices != 0 78 | editable: true 79 | 80 | function clicked() { 81 | @@ -155,7 +195,8 @@ 82 | page = vebusPage 83 | break; 84 | case DBusService.DBUS_SERVICE_MULTI_RS: 85 | - return; 86 | + page = multiRsPage 87 | + break; 88 | case DBusService.DBUS_SERVICE_BATTERY: 89 | page = batteryPage 90 | break; 91 | -------------------------------------------------------------------------------- /FileSets/PatchSource/PageMain.qml-v3.60~21.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/PageMain.qml-v3.60~21.orig 2025-01-29 07:31:17 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/PageMain.qml-v3.60~21 2025-02-02 22:03:18 3 | @@ -1,11 +1,46 @@ 4 | import QtQuick 2 5 | +import "utils.js" as Utils 6 | import com.victron.velib 1.0 7 | 8 | MbPage { 9 | id: root 10 | title: qsTr("Device List") 11 | 12 | +//////// GuiMods put Settings, Notifications, Remove disconnected... at top of list 13 | + property VBusItem moveSettings: VBusItem { id: moveSettings; bind: Utils.path("com.victronenergy.settings", "/Settings/GuiMods/MoveSettings")} 14 | + property bool settingsAtTop: moveSettings.valid && moveSettings.value === 1 15 | + 16 | model: VisualModels { 17 | +//////// GuiMods put Settings, Notifications, Remove disconnected... at top of list 18 | + VisibleItemModel { //////// use VisualItemModel below for v2.93 and earlier 19 | + MbSubMenu { 20 | + description: qsTr("Settings") 21 | + subpage: Component { PageSettings {} } 22 | + show: settingsAtTop 23 | + } 24 | + 25 | + MbSubMenu { 26 | + id: menuNotificationsTop 27 | + description: qsTr("Notifications") 28 | + item: VBusItem { value: menuNotifications.subpage.summary } 29 | + subpage: PageNotifications { } 30 | + show: settingsAtTop 31 | + } 32 | + 33 | + MbOK { 34 | + description: qsTr("Remove disconnected devices") 35 | + value: qsTr("Press to remove") 36 | + show: settingsAtTop && deviceList.disconnectedDevices != 0 37 | + editable: true 38 | + 39 | + onClicked: { 40 | + listview.decrementCurrentIndex() 41 | + deviceList.removeDisconnected() 42 | + } 43 | + } 44 | + } 45 | +//////// end GuiMods put Settings, Notifications, Remove disconnected... at top of list 46 | + 47 | DelegateModel { 48 | model: VeSortFilterProxyModel { 49 | model: DeviceList { 50 | @@ -33,17 +68,22 @@ 51 | description: qsTr("Notifications") 52 | item: VBusItem { value: menuNotifications.subpage.summary } 53 | subpage: PageNotifications { } 54 | +//////// GuiMods hide this if added at top 55 | + show: !settingsAtTop 56 | } 57 | 58 | MbSubMenu { 59 | description: qsTr("Settings") 60 | subpage: Component { PageSettings {} } 61 | +//////// GuiMods hide this if added at top 62 | + show: !settingsAtTop 63 | } 64 | 65 | MbOK { 66 | description: qsTr("Remove disconnected devices") 67 | value: qsTr("Press to remove") 68 | - show: deviceList.disconnectedDevices != 0 69 | +//////// GuiMods hide this if added at top 70 | + show: !settingsAtTop && deviceList.disconnectedDevices != 0 71 | editable: true 72 | 73 | onClicked: { 74 | -------------------------------------------------------------------------------- /FileSets/PatchSource/PageSettingsDisplay.qml-v3.14.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/PageSettingsDisplay.qml-v3.14.orig 2024-07-09 10:19:58 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/PageSettingsDisplay.qml-v3.14 2025-02-02 17:43:45 3 | @@ -52,6 +52,15 @@ 4 | ] 5 | } 6 | 7 | +////// GuiMods — DarkMode 8 | + MbSwitch 9 | + { 10 | + id: colorScheme 11 | + bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" 12 | + name: qsTr ("Dark Mode") 13 | + writeAccessLevel: User.AccessUser 14 | + } 15 | + 16 | MbSwitch { 17 | bind: Utils.path(bindPrefix, "/MobileOverview") 18 | name: qsTr("Show boat & motorhome overview") 19 | @@ -65,12 +74,20 @@ 20 | name: qsTr("Show tanks overview") 21 | } 22 | 23 | +//////// add Gui Mods menu 24 | + MbSubMenu { 25 | + id: guiModsMenu 26 | + description: qsTr("Gui Mods") 27 | + subpage: Component { 28 | + PageSettingsGuiMods { } 29 | + } 30 | + } 31 | + 32 | MbItemOptions { 33 | id: languageSelect 34 | description: qsTr("Language") 35 | writeAccessLevel: User.AccessUser 36 | bind: Utils.path(bindPrefix, "/Language") 37 | - 38 | // NOTE: do make sure application.cpp returns the correct fontForLanguage. 39 | // The current font might not be able to display these values / the default 40 | // font might not be contain the characters required for the selected language. 41 | @@ -83,11 +100,9 @@ 42 | MbOptionLang { description: "Français"; value: "fr" }, 43 | MbOptionLang { description: "Italiano"; value: "it" }, 44 | MbOptionLang { description: "Nederlands"; value: "nl" }, 45 | - MbOptionLang { description: "Polski"; value: "pl" }, 46 | MbOptionLang { description: "Русский"; value: "ru" }, 47 | MbOptionLang { description: "Română"; value: "ro" }, 48 | MbOptionLang { description: "Svenska"; value: "se" }, 49 | - MbOptionLang { description: "ไทย"; value: "th" }, 50 | MbOptionLang { description: "Türkçe"; value: "tr" }, 51 | MbOptionLang { description: "中文"; value: "zh" }, 52 | MbOptionLang { description: "العربية"; value: "ar" } 53 | -------------------------------------------------------------------------------- /FileSets/PatchSource/PageSettingsDisplay.qml-v3.34.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/PageSettingsDisplay.qml-v3.34.orig 2024-07-09 10:19:58 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/PageSettingsDisplay.qml-v3.34 2025-02-02 17:44:10 3 | @@ -65,6 +65,15 @@ 4 | name: qsTr("Show tanks overview") 5 | } 6 | 7 | +//////// add Gui Mods menu 8 | + MbSubMenu { 9 | + id: guiModsMenu 10 | + description: qsTr("Gui Mods") 11 | + subpage: Component { 12 | + PageSettingsGuiMods { } 13 | + } 14 | + } 15 | + 16 | MbItemOptions { 17 | id: languageSelect 18 | description: qsTr("Language") 19 | -------------------------------------------------------------------------------- /FileSets/PatchSource/PageSettingsDisplay.qml-v3.40.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/PageSettingsDisplay.qml-v3.40.orig 2024-07-09 10:19:58 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/PageSettingsDisplay.qml-v3.40 2025-02-02 17:43:38 3 | @@ -65,6 +65,15 @@ 4 | name: qsTr("Show tanks overview") 5 | } 6 | 7 | +//////// add Gui Mods menu 8 | + MbSubMenu { 9 | + id: guiModsMenu 10 | + description: qsTr("Gui Mods") 11 | + subpage: Component { 12 | + PageSettingsGuiMods { } 13 | + } 14 | + } 15 | + 16 | MbItemOptions { 17 | id: languageSelect 18 | description: qsTr("Language") 19 | -------------------------------------------------------------------------------- /FileSets/PatchSource/PageSettingsGenerator.qml.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/PageSettingsGenerator.qml.orig 2025-01-12 08:33:22 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/PageSettingsGenerator.qml 2025-02-02 17:44:35 3 | @@ -66,7 +66,18 @@ 4 | } 5 | } 6 | 7 | +//// GuiMods 8 | MbSwitch { 9 | + name: qsTr("Link to external running state") 10 | + bind: Utils.path(settingsBindPrefix, "/LinkToExternalStatus") 11 | + onClicked: 12 | + { 13 | + if (!checked) 14 | + toast.createToast(qsTr("Manual run will be synchronized with the generaror 'is running digital input' or AC input"), 10000, "icon-info-active") 15 | + } 16 | + } 17 | + 18 | + MbSwitch { 19 | name: qsTr("Alarm when generator is not in auto start mode") 20 | bind: Utils.path(settingsBindPrefix, "/Alarms/AutoStartDisabled") 21 | onClicked: { 22 | -------------------------------------------------------------------------------- /FileSets/PatchSource/PageSettingsRelay.qml-v3.22.orig: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | import com.victron.velib 1.0 3 | import "utils.js" as Utils 4 | 5 | MbPage { 6 | id: pageRelaySettings 7 | title: qsTr("Relay") 8 | property string bindPrefix: "com.victronenergy.settings" 9 | property VBusItem relay1Item: VBusItem { bind: "com.victronenergy.system/Relay/1/State" } 10 | property bool hasRelay1: relay1Item.valid 11 | 12 | model: VisibleItemModel { 13 | MbItemOptions { 14 | id: relayFunction 15 | description: hasRelay1 ? qsTr("Function (Relay 1)") : qsTr("Function") 16 | bind: Utils.path(bindPrefix, "/Settings/Relay/Function") 17 | possibleValues:[ 18 | MbOption { description: qsTr("Alarm relay"); value: 0 }, 19 | MbOption { description: qsTr("Generator start/stop"); value: 1 }, 20 | MbOption { description: qsTr("Tank pump"); value: 3 }, 21 | MbOption { description: qsTr("Manual"); value: 2 }, 22 | MbOption { description: qsTr("Temperature"); value: 4 } 23 | ] 24 | } 25 | 26 | MbItemOptions { 27 | description: qsTr("Alarm relay polarity") 28 | bind: Utils.path(bindPrefix, "/Settings/Relay/Polarity") 29 | show: relayFunction.value === 0 30 | possibleValues: [ 31 | MbOption { description: qsTr("Normally open"); value: 0 }, 32 | MbOption { description: qsTr("Normally closed"); value: 1 } 33 | ] 34 | } 35 | 36 | MbSwitch { 37 | id: relaySwitch 38 | // Use a one-way binding, because the usual binding: 39 | // checked: Relay.relayOn 40 | // will be broken when the switched toggled, and changes in the relayOn property made 41 | // elsewhere will not change the state of the switch any more. 42 | Binding { 43 | target: relaySwitch 44 | property: "checked" 45 | value: Relay.relayOn 46 | when: true 47 | } 48 | enabled: userHasWriteAccess 49 | name: qsTr("Alarm relay On") 50 | onCheckedChanged: Relay.relayOn = checked; 51 | show: relayFunction.value === 0 52 | } 53 | 54 | MbSwitch { 55 | id: manualSwitch 56 | name: hasRelay1 ? qsTr("Relay 1 On") : qsTr("Relay On") 57 | bind: "com.victronenergy.system/Relay/0/State" 58 | show: relayFunction.value === 2 // manual mode 59 | } 60 | 61 | MbItemOptions { 62 | id: relay1Function 63 | description: hasRelay1 ? qsTr("Function (Relay 2)") : qsTr("Function") 64 | bind: Utils.path(bindPrefix, "/Settings/Relay/1/Function") 65 | show: hasRelay1 66 | possibleValues:[ 67 | MbOption { description: qsTr("Manual"); value: 2 }, 68 | MbOption { description: qsTr("Temperature"); value: 4 } 69 | ] 70 | } 71 | 72 | MbSwitch { 73 | id: manualSwitch1 74 | name: qsTr("Relay 2 On") 75 | bind: "com.victronenergy.system/Relay/1/State" 76 | show: hasRelay1 && relay1Function.value === 2 // manual 77 | } 78 | 79 | MbSubMenu { 80 | id: conditions 81 | description: qsTr("Temperature control rules") 82 | show: relayFunction.value === 4 || relay1Function.value === 4 83 | subpage: Component { 84 | PageSettingsRelayTempSensors { 85 | id: relayPage 86 | title: qsTr("Temperature control rules") 87 | } 88 | } 89 | } 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /FileSets/PatchSource/PageSettingsRelay.qml-v3.55.orig: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | import com.victron.velib 1.0 3 | import "utils.js" as Utils 4 | 5 | MbPage { 6 | id: pageRelaySettings 7 | title: qsTr("Relay") 8 | property string bindPrefix: "com.victronenergy.settings" 9 | // Mind it: The dbus starts counting relays from zero, so this is relay 2 for the user! 10 | property VBusItem relay1Item: VBusItem { bind: "com.victronenergy.system/Relay/1/State" } 11 | property bool hasRelay1: relay1Item.valid 12 | 13 | model: VisibleItemModel { 14 | MbItemOptions { 15 | id: relayFunction 16 | description: hasRelay1 ? qsTr("Function (Relay 1)") : qsTr("Function") 17 | bind: Utils.path(bindPrefix, "/Settings/Relay/Function") 18 | possibleValues:[ 19 | MbOption { description: qsTr("Alarm relay"); value: 0 }, 20 | MbOption { description: qsTr("Genset start/stop"); value: 1 }, 21 | MbOption { description: qsTr("Connected genset helper relay"); value: 5 }, 22 | MbOption { description: qsTr("Tank pump"); value: 3 }, 23 | MbOption { description: qsTr("Manual"); value: 2 }, 24 | MbOption { description: qsTr("Temperature"); value: 4 } 25 | ] 26 | } 27 | 28 | MbItemOptions { 29 | description: qsTr("Alarm relay polarity") 30 | bind: Utils.path(bindPrefix, "/Settings/Relay/Polarity") 31 | show: relayFunction.value === 0 32 | possibleValues: [ 33 | MbOption { description: qsTr("Normally open"); value: 0 }, 34 | MbOption { description: qsTr("Normally closed"); value: 1 } 35 | ] 36 | } 37 | 38 | MbSwitch { 39 | id: manualSwitch 40 | name: hasRelay1 ? qsTr("Relay 1 On") : qsTr("Relay On") 41 | bind: "com.victronenergy.system/Relay/0/State" 42 | show: relayFunction.value === 2 // manual mode 43 | } 44 | 45 | MbItemOptions { 46 | id: relay1Function 47 | description: hasRelay1 ? qsTr("Function (Relay 2)") : qsTr("Function") 48 | bind: Utils.path(bindPrefix, "/Settings/Relay/1/Function") 49 | show: hasRelay1 50 | possibleValues:[ 51 | MbOption { description: qsTr("Manual"); value: 2 }, 52 | MbOption { description: qsTr("Temperature"); value: 4 } 53 | ] 54 | } 55 | 56 | MbSwitch { 57 | id: manualSwitch1 58 | name: qsTr("Relay 2 On") 59 | bind: "com.victronenergy.system/Relay/1/State" 60 | show: hasRelay1 && relay1Function.value === 2 // manual 61 | } 62 | 63 | MbSubMenu { 64 | id: conditions 65 | description: qsTr("Temperature control rules") 66 | show: relayFunction.value === 4 || relay1Function.value === 4 67 | subpage: Component { 68 | PageSettingsRelayTempSensors { 69 | id: relayPage 70 | title: qsTr("Temperature control rules") 71 | } 72 | } 73 | } 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /FileSets/PatchSource/Tile.qml-v3.41: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | 3 | Rectangle { 4 | id: root 5 | 6 | ////// GuiMods — DarkMode 7 | property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 8 | property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 9 | 10 | color: "#009ec6" 11 | border.width: 2 12 | ////// GuiMods — DarkMode 13 | border.color: !darkMode ? "#fff" : "#202020" 14 | clip: true 15 | 16 | property string title 17 | property alias values: column.children 18 | property bool readOnly: true 19 | property bool editable: false 20 | property bool editMode: false 21 | property bool isCurrentItem: ListView.isCurrentItem 22 | property int contentHeight: column.y + column.height 23 | property bool show: true 24 | 25 | Text { 26 | id: titleField 27 | font.pixelSize: 13 28 | text: title 29 | ////// GuiMods — DarkMode 30 | color: !darkMode ? "white" : "#ddd" 31 | height: text === "" ? 0 : paintedHeight 32 | anchors { 33 | top: parent.top; topMargin: 5 34 | left: parent.left; leftMargin: 5 35 | } 36 | } 37 | 38 | Rectangle { 39 | id: titleLine 40 | width: parent.width - 10 41 | height: 1 42 | visible: title !== "" 43 | ////// GuiMods — DarkMode 44 | color: !darkMode ? "white" : "#ddd" 45 | anchors { 46 | top: titleField.bottom 47 | left: titleField.left 48 | } 49 | } 50 | 51 | Column { 52 | id: column 53 | anchors { 54 | top: titleLine.bottom; topMargin: 3 55 | horizontalCenter: parent.horizontalCenter 56 | } 57 | } 58 | 59 | MbIcon { 60 | id: editIcon 61 | iconId: root.isCurrentItem ? "icon-tile-edit-active" : "icon-tile-edit" 62 | visible: (root.isCurrentItem || root.focus) && root.editable && !editMode 63 | anchors { right: parent.right; bottom: column.bottom; margins: 3} 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /FileSets/PatchSource/Tile.qml-v3.41.orig: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | 3 | Rectangle { 4 | id: root 5 | 6 | color: "#009ec6" 7 | border.width: 2 8 | border.color: "#fff" 9 | clip: true 10 | 11 | property string title 12 | property alias values: column.children 13 | property bool readOnly: true 14 | property bool editable: false 15 | property bool editMode: false 16 | property bool isCurrentItem: ListView.isCurrentItem 17 | property int contentHeight: column.y + column.height 18 | property bool show: true 19 | 20 | Text { 21 | id: titleField 22 | font.pixelSize: 13 23 | text: title 24 | color: "white" 25 | height: text === "" ? 0 : paintedHeight 26 | anchors { 27 | top: parent.top; topMargin: 5 28 | left: parent.left; leftMargin: 5 29 | } 30 | } 31 | 32 | Rectangle { 33 | id: titleLine 34 | width: parent.width - 10 35 | height: 1 36 | visible: title !== "" 37 | color: "white" 38 | anchors { 39 | top: titleField.bottom 40 | left: titleField.left 41 | } 42 | } 43 | 44 | Column { 45 | id: column 46 | anchors { 47 | top: titleLine.bottom; topMargin: 3 48 | horizontalCenter: parent.horizontalCenter 49 | } 50 | } 51 | 52 | MbIcon { 53 | id: editIcon 54 | iconId: root.isCurrentItem ? "icon-tile-edit-active" : "icon-tile-edit" 55 | visible: (root.isCurrentItem || root.focus) && root.editable && !editMode 56 | anchors { right: parent.right; bottom: column.bottom; margins: 3} 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /FileSets/PatchSource/Tile.qml-v3.41.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/Tile.qml-v3.41.orig 2024-07-09 10:20:00 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/Tile.qml-v3.41 2024-05-14 07:00:12 3 | @@ -3,9 +3,14 @@ 4 | Rectangle { 5 | id: root 6 | 7 | +////// GuiMods — DarkMode 8 | + property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 9 | + property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 10 | + 11 | color: "#009ec6" 12 | border.width: 2 13 | - border.color: "#fff" 14 | +////// GuiMods — DarkMode 15 | + border.color: !darkMode ? "#fff" : "#202020" 16 | clip: true 17 | 18 | property string title 19 | @@ -21,7 +26,8 @@ 20 | id: titleField 21 | font.pixelSize: 13 22 | text: title 23 | - color: "white" 24 | +////// GuiMods — DarkMode 25 | + color: !darkMode ? "white" : "#ddd" 26 | height: text === "" ? 0 : paintedHeight 27 | anchors { 28 | top: parent.top; topMargin: 5 29 | @@ -34,7 +40,8 @@ 30 | width: parent.width - 10 31 | height: 1 32 | visible: title !== "" 33 | - color: "white" 34 | +////// GuiMods — DarkMode 35 | + color: !darkMode ? "white" : "#ddd" 36 | anchors { 37 | top: titleField.bottom 38 | left: titleField.left 39 | -------------------------------------------------------------------------------- /FileSets/PatchSource/Tile.qml-v3.60~53: -------------------------------------------------------------------------------- 1 | import QtQuick 2 2 | 3 | Rectangle { 4 | id: root 5 | 6 | ////// GuiMods — DarkMode 7 | property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 8 | property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 9 | 10 | color: "#009ec6" 11 | border.width: 1 12 | ////// GuiMods — DarkMode 13 | border.color: !darkMode ? "#fff" : "#202020" 14 | clip: true 15 | 16 | property string title 17 | property alias values: column.children 18 | property bool readOnly: true 19 | property bool editable: false 20 | property bool editMode: false 21 | property bool isCurrentItem: ListView.isCurrentItem 22 | property int contentHeight: column.y + column.height 23 | property bool show: true 24 | 25 | Text { 26 | id: titleField 27 | font.pixelSize: 13 28 | text: title 29 | ////// GuiMods — DarkMode 30 | color: !darkMode ? "white" : "#ddd" 31 | height: text === "" ? 0 : paintedHeight 32 | anchors { 33 | top: parent.top; topMargin: 5 34 | left: parent.left; leftMargin: 5 35 | } 36 | } 37 | 38 | Rectangle { 39 | id: titleLine 40 | width: parent.width - 10 41 | height: 1 42 | visible: title !== "" 43 | ////// GuiMods — DarkMode 44 | color: !darkMode ? "white" : "#ddd" 45 | anchors { 46 | top: titleField.bottom 47 | left: titleField.left 48 | } 49 | } 50 | 51 | Column { 52 | id: column 53 | width: root.width 54 | anchors { 55 | top: titleLine.bottom; topMargin: 3 56 | horizontalCenter: parent.horizontalCenter 57 | } 58 | } 59 | 60 | MbIcon { 61 | id: editIcon 62 | iconId: root.isCurrentItem ? "icon-tile-edit-active" : "icon-tile-edit" 63 | visible: (root.isCurrentItem || root.focus) && root.editable && !editMode 64 | anchors { right: parent.right; bottom: column.bottom; margins: 3} 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /FileSets/PatchSource/Tile.qml-v3.60~53.orig: -------------------------------------------------------------------------------- 1 | import QtQuick 2 2 | 3 | Rectangle { 4 | id: root 5 | 6 | color: "#009ec6" 7 | border.width: 1 8 | border.color: "#fff" 9 | clip: true 10 | 11 | property string title 12 | property alias values: column.children 13 | property bool readOnly: true 14 | property bool editable: false 15 | property bool editMode: false 16 | property bool isCurrentItem: ListView.isCurrentItem 17 | property int contentHeight: column.y + column.height 18 | property bool show: true 19 | 20 | Text { 21 | id: titleField 22 | font.pixelSize: 13 23 | text: title 24 | color: "white" 25 | height: text === "" ? 0 : paintedHeight 26 | anchors { 27 | top: parent.top; topMargin: 5 28 | left: parent.left; leftMargin: 5 29 | } 30 | } 31 | 32 | Rectangle { 33 | id: titleLine 34 | width: parent.width - 10 35 | height: 1 36 | visible: title !== "" 37 | color: "white" 38 | anchors { 39 | top: titleField.bottom 40 | left: titleField.left 41 | } 42 | } 43 | 44 | Column { 45 | id: column 46 | width: root.width 47 | anchors { 48 | top: titleLine.bottom; topMargin: 3 49 | horizontalCenter: parent.horizontalCenter 50 | } 51 | } 52 | 53 | MbIcon { 54 | id: editIcon 55 | iconId: root.isCurrentItem ? "icon-tile-edit-active" : "icon-tile-edit" 56 | visible: (root.isCurrentItem || root.focus) && root.editable && !editMode 57 | anchors { right: parent.right; bottom: column.bottom; margins: 3} 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /FileSets/PatchSource/Tile.qml-v3.60~53.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/Tile.qml-v3.60~53.orig 2018-03-09 04:34:56 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/Tile.qml-v3.60~53 2025-03-31 16:47:30 3 | @@ -3,9 +3,14 @@ 4 | Rectangle { 5 | id: root 6 | 7 | +////// GuiMods — DarkMode 8 | + property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 9 | + property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 10 | + 11 | color: "#009ec6" 12 | border.width: 1 13 | - border.color: "#fff" 14 | +////// GuiMods — DarkMode 15 | + border.color: !darkMode ? "#fff" : "#202020" 16 | clip: true 17 | 18 | property string title 19 | @@ -21,7 +26,8 @@ 20 | id: titleField 21 | font.pixelSize: 13 22 | text: title 23 | - color: "white" 24 | +////// GuiMods — DarkMode 25 | + color: !darkMode ? "white" : "#ddd" 26 | height: text === "" ? 0 : paintedHeight 27 | anchors { 28 | top: parent.top; topMargin: 5 29 | @@ -34,7 +40,8 @@ 30 | width: parent.width - 10 31 | height: 1 32 | visible: title !== "" 33 | - color: "white" 34 | +////// GuiMods — DarkMode 35 | + color: !darkMode ? "white" : "#ddd" 36 | anchors { 37 | top: titleField.bottom 38 | left: titleField.left 39 | -------------------------------------------------------------------------------- /FileSets/PatchSource/TileText.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | 3 | Text { 4 | ////// GuiMods — DarkMode 5 | property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 6 | property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 7 | 8 | font.pixelSize: 14 9 | ////// GuiMods — DarkMode 10 | color: !darkMode ? "white" : "#e1e1e1" 11 | width: parent.width 12 | horizontalAlignment: Text.AlignHCenter 13 | } 14 | -------------------------------------------------------------------------------- /FileSets/PatchSource/TileText.qml.orig: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | 3 | Text { 4 | font.pixelSize: 14 5 | color: "white" 6 | width: parent.width 7 | horizontalAlignment: Text.AlignHCenter 8 | } 9 | -------------------------------------------------------------------------------- /FileSets/PatchSource/TileText.qml.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/TileText.qml.orig 2024-07-09 10:20:02 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/TileText.qml 2024-05-14 07:00:12 3 | @@ -1,8 +1,13 @@ 4 | import QtQuick 1.1 5 | 6 | Text { 7 | +////// GuiMods — DarkMode 8 | + property VBusItem darkModeItem: VBusItem { bind: "com.victronenergy.settings/Settings/GuiMods/DarkMode" } 9 | + property bool darkMode: darkModeItem.valid && darkModeItem.value == 1 10 | + 11 | font.pixelSize: 14 12 | - color: "white" 13 | +////// GuiMods — DarkMode 14 | + color: !darkMode ? "white" : "#e1e1e1" 15 | width: parent.width 16 | horizontalAlignment: Text.AlignHCenter 17 | } 18 | -------------------------------------------------------------------------------- /FileSets/PatchSource/attributes.csv-v3.40.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/attributes.csv-v3.40.orig 2024-07-08 00:41:45 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/attributes.csv-v3.40 2024-07-08 09:11:43 3 | @@ -490 +490 @@ 4 | -com.victronenergy.digitalinput,/Type,i,2=Door;3=Bilge pump;4=Bilge alarm;5=Burglar alarm;6=Smoke alarm;7=Fire alarm;8=CO2 alarm;9=Generator,3424,uint16,1,R 5 | +com.victronenergy.digitalinput,/Type,i,2=Door;3=Bilge pump;4=Bilge alarm;5=Burglar alarm;6=Smoke alarm;7=Fire alarm;8=CO2 alarm;9=Generator,3424,uint16,1,R;11=ExtTransferSwitch,3424,uint16,1,R 6 | -------------------------------------------------------------------------------- /FileSets/PatchSource/attributes.csv.patchOptions: -------------------------------------------------------------------------------- 1 | -U 0 -------------------------------------------------------------------------------- /FileSets/PatchSource/dbus_digitalinputs.py-v3.55.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/dbus_digitalinputs.py-v3.55.orig 2025-01-12 08:43:07 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/dbus_digitalinputs.py-v3.55 2024-10-02 11:49:18 3 | @@ -1,5 +1,7 @@ 4 | #!/usr/bin/python3 -u 5 | 6 | +#### modified for ExtTransferSwitch package 7 | + 8 | import sys, os 9 | import signal 10 | from threading import Thread 11 | @@ -39,6 +41,8 @@ 12 | 'Generator', 13 | 'Generic I/O', 14 | 'Touch enable', 15 | +#### added for ExtTransferSwitch package -- must be LAST in the list 16 | + 'Transfer switch' 17 | ] 18 | 19 | # Translations. The text will be used only for GetText, it will be translated 20 | @@ -49,7 +53,9 @@ 21 | Translation('no', 'yes'), 22 | Translation('open', 'closed'), 23 | Translation('ok', 'alarm'), 24 | - Translation('running', 'stopped') 25 | + Translation('running', 'stopped'), 26 | +#### added for ExtTransferSwitch package 27 | + Translation('on generator', 'on grid') 28 | ] 29 | 30 | class SystemBus(dbus.bus.BusConnection): 31 | @@ -428,12 +434,29 @@ 32 | self._timer = GLib.timeout_add(30000, 33 | lambda: self.select_generator(self.level ^ self.settings['invert'] ^ 1) or True) 34 | 35 | +#### added for ExtTransferSwitch package 36 | + self.mainVeBusServiceItem = None 37 | + 38 | + 39 | def select_generator(self, v): 40 | # Find all vebus services, and let them know 41 | try: 42 | services = [n for n in self.bus.list_names() if n.startswith( 43 | 'com.victronenergy.vebus.')] 44 | for n in services: 45 | +#### added for ExtTransferSwitch package 46 | + # skip this service if it is the main VE.Bus device 47 | + # processing for that is handled in ExtTransferSwitch 48 | + try: 49 | + if self.mainVeBusServiceItem == None: 50 | + self.mainVeBusServiceItem = VeDbusItemImport(self.bus, 51 | + "com.victronenergy.service", "/VebusService") 52 | + if n == self.mainVeBusService.get_value (): 53 | + continue 54 | + except: 55 | + pass 56 | +#### end added for ExtTransferSwitch package 57 | + 58 | self.bus.call_async(n, '/Ac/Control/RemoteGeneratorSelected', 'com.victronenergy.BusItem', 59 | 'SetValue', 'v', [v], None, None) 60 | except dbus.exceptions.DBusException: 61 | @@ -508,7 +531,13 @@ 62 | type_id = 10 63 | translation = 0 # low, high 64 | 65 | +#### added for ExtTransferSwitch package 66 | +class TransferSwitch(PinAlarm): 67 | + _product_name = "External AC Input transfer switch" 68 | + type_id = 12 69 | + translation = 6 # Grid In / Generator In 70 | 71 | + 72 | def dbusconnection(): 73 | return SessionBus() if 'DBUS_SESSION_BUS_ADDRESS' in os.environ else SystemBus() 74 | 75 | -------------------------------------------------------------------------------- /FileSets/PatchSource/dbus_generator.py-v3.41.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/dbus_generator.py-v3.41.orig 2024-07-18 07:51:43 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/dbus_generator.py-v3.41 2024-05-14 07:00:12 3 | @@ -1,5 +1,15 @@ 4 | #!/usr/bin/python3 -u 5 | # -*- coding: utf-8 -*- 6 | + 7 | +#### GuiMods 8 | +#### This file has been modified to allow the generator running state derived from the generator digital input 9 | +#### or the genset AC input 10 | +#### If the incoming generator state changes, the manual start state is updated 11 | +#### time accumulation is suspended when the generator is not running 12 | +#### A switch in the generator settings menucontrols whethter the incoming state affects manual start or time accumulaiton 13 | +#### It is now possible to start the generator manually and have it stop automatically based on the preset conditions 14 | +#### for automaitc start / stop 15 | +#### Search for #### GuiMods to find changes 16 | 17 | from dbus.mainloop.glib import DBusGMainLoop 18 | import dbus 19 | @@ -81,7 +91,10 @@ 20 | '/VebusService': dummy, 21 | '/Dc/Battery/Voltage': dummy, 22 | '/Dc/Battery/Current': dummy, 23 | - '/Dc/Battery/Soc': dummy 24 | + '/Dc/Battery/Soc': dummy, 25 | +#### GuiMods 26 | + '/Ac/Genset/Frequency': dummy, 27 | + '/Ac/In/NumberOfAcInputs': dummy 28 | } 29 | } 30 | 31 | @@ -93,6 +106,9 @@ 32 | 'accumulateddaily': ['/Settings/{0}/AccumulatedDaily', '', 0, 0, True], 33 | 'accumulatedtotal': ['/Settings/{0}/AccumulatedTotal', 0, 0, 0, True], # Internal, can't be reset by the user 34 | 'accumulatedtotalOffset': ['/Settings/{0}/AccumulatedTotalOffset', 0, 0, 0], # For calculating user runtime 35 | +#### GuiMods 36 | + 'linkManualStartToExternal': ['/Settings/{0}/LinkToExternalStatus', 0, 0, 0, True], 37 | + 38 | 'batterymeasurement': ['/Settings/{0}/BatteryService', 'default', 0, 0], 39 | 'minimumruntime': ['/Settings/{0}/MinimumRuntime', 0, 0, 86400], # minutes 40 | 'stoponac1enabled': ['/Settings/{0}/StopWhenAc1Available', 0, 0, 1], 41 | -------------------------------------------------------------------------------- /FileSets/PatchSource/dbus_generator.py-v3.60~53.patch: -------------------------------------------------------------------------------- 1 | --- /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/dbus_generator.py-v3.60~53.orig 2018-03-09 04:34:56 2 | +++ /Users/Kevin/GitHub/GuiMods.copy/FileSets/PatchSource/dbus_generator.py-v3.60~53 2025-03-30 17:12:51 3 | @@ -1,6 +1,16 @@ 4 | #!/usr/bin/python3 -u 5 | # -*- coding: utf-8 -*- 6 | 7 | +#### GuiMods 8 | +#### This file has been modified to allow the generator running state derived from the generator digital input 9 | +#### or the genset AC input 10 | +#### If the incoming generator state changes, the manual start state is updated 11 | +#### time accumulation is suspended when the generator is not running 12 | +#### A switch in the generator settings menucontrols whethter the incoming state affects manual start or time accumulaiton 13 | +#### It is now possible to start the generator manually and have it stop automatically based on the preset conditions 14 | +#### for automaitc start / stop 15 | +#### Search for #### GuiMods to find changes 16 | + 17 | from dbus.mainloop.glib import DBusGMainLoop 18 | import dbus 19 | import argparse 20 | @@ -92,7 +102,10 @@ 21 | '/VebusService': dummy, 22 | '/Dc/Battery/Voltage': dummy, 23 | '/Dc/Battery/Current': dummy, 24 | - '/Dc/Battery/Soc': dummy 25 | + '/Dc/Battery/Soc': dummy, 26 | +#### GuiMods 27 | + '/Ac/Genset/Frequency': dummy, 28 | + '/Ac/In/NumberOfAcInputs': dummy 29 | }, 30 | 'com.victronenergy.tank': { 31 | '/Level': dummy, 32 | @@ -110,6 +123,9 @@ 33 | 'accumulateddaily': ['/Settings/{0}/AccumulatedDaily', '', 0, 0, True], 34 | 'accumulatedtotal': ['/Settings/{0}/AccumulatedTotal', 0, 0, 0, True], # Internal, can't be reset by the user 35 | 'accumulatedtotalOffset': ['/Settings/{0}/AccumulatedTotalOffset', 0, 0, 0], # For calculating user runtime 36 | +#### GuiMods 37 | + 'linkManualStartToExternal': ['/Settings/{0}/LinkToExternalStatus', 0, 0, 0, True], 38 | + 39 | 'batterymeasurement': ['/Settings/{0}/BatteryService', 'default', 0, 0], 40 | 'minimumruntime': ['/Settings/{0}/MinimumRuntime', 0, 0, 86400], # minutes 41 | 'stoponac1enabled': ['/Settings/{0}/StopWhenAc1Available', 0, 0, 1], 42 | @@ -181,7 +197,7 @@ 43 | 'nogeneratoratacinalarm': ['/Settings/{0}/Alarms/NoGeneratorAtAcIn', 0, 0, 1], 44 | 'autostartdisabledalarm': ['/Settings/{0}/Alarms/AutoStartDisabled', 0, 0, 1], 45 | # Warm-up and Cool-down 46 | - 'warmuptime': ['/Settings/{0}/WarmUpTime', 0, 0, 1800], 47 | + 'warmuptime': ['/Settings/{0}/WarmUpTime', 0, 0, 600], 48 | 'cooldowntime': ['/Settings/{0}/CoolDownTime', 0, 0, 600], 49 | 'generatorstoptime': ['/Settings/{0}/GeneratorStopTime', 0, 0, 600] 50 | } 51 | @@ -282,7 +298,7 @@ 52 | def _add_device(self, service): 53 | for i in self._modules: 54 | # Check if module can handle this service 55 | - if re.match(i.remoteprefix, service) is None: 56 | + if i.remoteprefix not in service: 57 | continue 58 | # Check and create start/stop instance for the device 59 | if i.check_device(self._dbusmonitor, service): 60 | -------------------------------------------------------------------------------- /FileSets/VersionIndependent/DetailButton.qml: -------------------------------------------------------------------------------- 1 | // for GuiMods 2 | // for GuiMods -- a special case of Button 3 | // adds a highlight so user knows which button will be pressed 4 | // when the hard "space" button is pressed 5 | 6 | import QtQuick 1.1 7 | 8 | Item { 9 | id: buttonContainer 10 | 11 | property string baseColor 12 | property string pressedColor 13 | property string text 14 | property string iconSource 15 | property alias radius: innerRectangle.radius 16 | property alias content: loader.sourceComponent 17 | property bool enablePressAndHold 18 | property bool highlight: false 19 | property string highlightColor: "black" 20 | 21 | signal clicked() 22 | 23 | MouseArea { 24 | id: mouseArea 25 | anchors.fill: buttonContainer 26 | onClicked: buttonContainer.clicked() 27 | onPressAndHold: if (enablePressAndHold) timer.start() 28 | onReleased: timer.stop() 29 | } 30 | 31 | // Repeated click on longpress 32 | Timer { 33 | id: timer 34 | interval: 40 35 | running: false 36 | repeat: true 37 | onTriggered: buttonContainer.clicked() 38 | } 39 | 40 | Rectangle 41 | { 42 | id: highlight 43 | anchors.centerIn: parent 44 | width: parent.width + 6 45 | height: parent.height + 6 46 | 47 | color: highlightColor 48 | radius: 2 49 | visible: parent.highlight 50 | } 51 | 52 | // The purpose of this inner rectangle is to draw the rounded corners, but we want the mouse area to 53 | // be the whole (rectangular) button to catch the touches. This also allows disabling the button but 54 | // keep the layout constant. 55 | Rectangle { 56 | id: innerRectangle 57 | anchors.fill: buttonContainer 58 | color: (mouseArea.containsMouse && mouseArea.pressed) ? buttonContainer.pressedColor : buttonContainer.baseColor 59 | radius: 2 60 | 61 | Loader { 62 | id: loader 63 | anchors.centerIn: innerRectangle 64 | } 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /FileSets/VersionIndependent/DetailTarget.qml: -------------------------------------------------------------------------------- 1 | // for GuiMods 2 | // a touchable target to be attached to overview tiles 3 | // to lead to the associated details page 4 | // the target is also displayed to indicate which object 5 | // can be activated by clicking the "space" button 6 | 7 | import QtQuick 1.1 8 | 9 | MouseArea 10 | { 11 | property color detailsBackgroundColor: "#b3b3b3" 12 | property string detailsPage: "" 13 | property string detailsPath: "/opt/victronenergy/gui/qml/" + detailsPage 14 | 15 | property variant target: undefined 16 | property bool targetVisible: false 17 | 18 | anchors.centerIn: parent 19 | enabled: parent.visible 20 | height: 40; width: 40 21 | onClicked: { rootWindow.pageStack.push (detailsPath, {backgroundColor: detailsBackgroundColor} ) } 22 | Rectangle 23 | { 24 | id: _rect 25 | color: "black" 26 | anchors.fill: parent 27 | radius: width * 0.2 28 | opacity: 0.3 29 | visible: parent.enabled && parent.targetVisible 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /FileSets/VersionIndependent/LedText.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | 3 | Text { 4 | id: root 5 | 6 | property alias item: vItem 7 | property alias bind: vItem.bind 8 | property int value: item.valid ? item.value : 0 9 | property string onColor: "#fff930" 10 | property string offColor: "black" 11 | property bool pulse: false 12 | property bool isOn: false 13 | 14 | horizontalAlignment: Text.AlignHCenter 15 | font.pixelSize: 12 16 | color: isOn ? onColor : offColor 17 | font.bold: true 18 | 19 | onValueChanged: { 20 | switch (value) { 21 | case 0 : 22 | state = "off" 23 | break; 24 | case 1: 25 | state = "on" 26 | break; 27 | case 2: 28 | state = "blink" 29 | break; 30 | case 3: 31 | state = "blinkInverted" 32 | break; 33 | } 34 | } 35 | 36 | VBusItem { id: vItem } 37 | 38 | Timer { 39 | id: _timer 40 | interval: 500 41 | running: item.value > 0 42 | repeat: true 43 | onTriggered: pulse = !pulse 44 | } 45 | 46 | states: [ 47 | State { 48 | name: "off" 49 | PropertyChanges { target: root; color : offColor } 50 | }, 51 | State { 52 | name: "on" 53 | PropertyChanges { target: root; color : onColor } 54 | }, 55 | State { 56 | name: "blink" 57 | PropertyChanges { target: root; color: pulse ? onColor : offColor } 58 | }, 59 | State { 60 | name: "blinkInverted" 61 | PropertyChanges { target: root; isOn: !pulse ? onColor : offColor } 62 | } 63 | ] 64 | } 65 | 66 | -------------------------------------------------------------------------------- /FileSets/VersionIndependent/MarqueeEnhanced.qml: -------------------------------------------------------------------------------- 1 | ////// add bold 2 | import QtQuick 1.1 3 | 4 | Rectangle { 5 | id: marquee 6 | 7 | height: _text.paintedHeight + 5 8 | clip: true 9 | color: "transparent" 10 | 11 | property alias text: _text.text 12 | property alias interval: marqueeTimer.interval 13 | property alias fontSize: _text.font.pixelSize 14 | property alias textColor: _text.color 15 | property variant textHorizontalAlignment: Text.AlignHCenter 16 | property alias bold: _text.font.bold 17 | property bool scroll: true 18 | property bool longName: text != "" && _text.paintedWidth > marquee.width 19 | 20 | function doScroll() 21 | { 22 | if (longName) 23 | marqueeTimer.running = true 24 | } 25 | 26 | Text { 27 | id: _text 28 | font.pixelSize: 13 29 | color: "#fff" 30 | width: parent.width 31 | anchors.verticalCenter: parent.verticalCenter 32 | // use spcified alignment unless name won't fit or are scrolling, then align left 33 | horizontalAlignment: textHorizontalAlignment 34 | visible: ! longName 35 | } 36 | 37 | // double incoming text so the scroll fills in past the end of the string 38 | Text { 39 | id: _textToDisplay 40 | text: _text.text + "..." + _text.text 41 | font.pixelSize: 13 42 | color: _text.color 43 | font.bold: _text.font.bold 44 | width: parent.width 45 | anchors.verticalCenter: parent.verticalCenter 46 | // use spcified alignment unless name won't fit or are scrolling, then align left 47 | horizontalAlignment: Text.AlignLeft 48 | visible: longName 49 | } 50 | 51 | 52 | Timer { 53 | id: marqueeTimer 54 | interval: 100 55 | repeat: true 56 | running: _text.paintedWidth > marquee.width && scroll 57 | onTriggered: moveText() 58 | onRunningChanged: if (!running) _textToDisplay.x = 0 59 | } 60 | 61 | function moveText() 62 | { 63 | if (_textToDisplay.x + _text.paintedWidth <= 2) 64 | { 65 | _textToDisplay.x = 0 ////marquee.width 66 | if (! scroll) 67 | marqueeTimer.running = false 68 | } 69 | else 70 | _textToDisplay.x -= 2 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /FileSets/VersionIndependent/OverviewGeneratorRelayEnhanced.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | import "utils.js" as Utils 3 | 4 | OverviewGeneratorEnhanced { 5 | icon: "overview-generator" 6 | settingsBindPrefix: "com.victronenergy.settings/Settings/Generator0" 7 | bindPrefix: "com.victronenergy.generator.startstop0" 8 | } 9 | -------------------------------------------------------------------------------- /FileSets/VersionIndependent/SystemReasonMessage.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | import com.victron.velib 1.0 3 | import "utils.js" as Utils 4 | 5 | Item { 6 | id: root 7 | 8 | property string text: getReasonText() 9 | property variant flags: getFlags() 10 | property string systemPrefix: "com.victronenergy.system" 11 | 12 | // Flags to monitor 13 | property list flagItems: [ 14 | VBusItem { bind: Utils.path(systemPrefix, "/SystemState/LowSoc") }, 15 | VBusItem { bind: Utils.path(systemPrefix, "/SystemState/BatteryLife") }, 16 | VBusItem { bind: Utils.path(systemPrefix, "/SystemState/ChargeDisabled") }, 17 | VBusItem { bind: Utils.path(systemPrefix, "/SystemState/DischargeDisabled") }, 18 | VBusItem { bind: Utils.path(systemPrefix, "/SystemState/SlowCharge") }, 19 | VBusItem { bind: Utils.path(systemPrefix, "/SystemState/UserChargeLimited") }, 20 | VBusItem { bind: Utils.path(systemPrefix, "/SystemState/UserDischargeLimited") } 21 | ] 22 | 23 | VBusItem { 24 | id: multiStatusReason 25 | } 26 | 27 | function getFlags(){ 28 | var r = []; 29 | var reasonMessage = 30 | [ 31 | qsTr("Low SOC"), 32 | qsTr("Battery Life"), 33 | qsTr("Charge Off"), 34 | qsTr("Disch Off"), 35 | qsTr("Slow Charge"), 36 | qsTr("Charge Limited"), 37 | qsTr("Disch Limited") 38 | ] 39 | for (var i=0; i stateNames: [ 13 | SystemStateDescription { value: 0x00; name: "off"; text: qsTr("Off")}, 14 | SystemStateDescription { value: 0x01; name: "low_power"; text: qsTr("Low Power")}, 15 | SystemStateDescription { value: 0x02; name: "fault"; text: qsTr("Fault")}, 16 | SystemStateDescription { value: 0x03; name: "bulk"; text: qsTr("Bulk")}, 17 | SystemStateDescription { value: 0x04; name: "absorption"; text: qsTr("Absorption")}, 18 | SystemStateDescription { value: 0x05; name: "float"; text: qsTr("Float")}, 19 | SystemStateDescription { value: 0x06; name: "storage"; text: qsTr("Storage")}, 20 | SystemStateDescription { value: 0x07; name: "equalize"; text: qsTr("Equalize")}, 21 | SystemStateDescription { value: 0x08; name: "passthru"; text: qsTr("Passthru")}, 22 | SystemStateDescription { value: 0x09; name: "inverting"; text: qsTr("Inverting")}, 23 | SystemStateDescription { value: 0x0A; name: "assisting"; text: qsTr("Assisting")}, 24 | SystemStateDescription { value: 0x0B; name: "psu"; text: qsTr("Pwr Sup Mode")}, 25 | 26 | SystemStateDescription { value: 0xF5; name: "wakeup"; text: qsTr("Wakeup")}, 27 | SystemStateDescription { value: 0xF6; name: "rep_abs"; text: qsTr("Rep Abs")}, 28 | SystemStateDescription { value: 0xF8; name: "battery_safe"; text: qsTr("Bat Safe")}, 29 | SystemStateDescription { value: 0xF9; name: "load_detect"; text: qsTr("Test")}, 30 | SystemStateDescription { value: 0xFA; name: "blocked"; text: qsTr("Blocked")}, 31 | SystemStateDescription { value: 0xFB; name: "test"; text: qsTr("Test")}, 32 | SystemStateDescription { value: 0xFC; name: "hub1"; text: qsTr("Ext cont")}, 33 | 34 | // These are not VEBUS states, they are system states used with ESS 35 | SystemStateDescription { value: 0x100; name: "discharging"; text: qsTr("Discharging")}, 36 | SystemStateDescription { value: 0x101; name: "sustain"; text: qsTr("Sustain")}, 37 | SystemStateDescription { value: 0x102; name: "recharge"; text: qsTr("Recharge")}, 38 | SystemStateDescription { value: 0x103; name: "scheduledcharge"; text: qsTr("Sch chg")} 39 | ] 40 | 41 | VBusItem { 42 | id: multiStatus 43 | } 44 | 45 | function getStateName(value) { 46 | for (var i = 0; i < stateNames.length; i++) { 47 | var option = stateNames[i]; 48 | if (option.value === value) 49 | return option.name; 50 | } 51 | return qsTr("Unknown") 52 | } 53 | 54 | function getStateText(value) { 55 | for (var i = 0; i < stateNames.length; i++) { 56 | var option = stateNames[i]; 57 | if (option.value === value) 58 | return option.text; 59 | } 60 | return qsTr("Unknown") 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /FileSets/VersionIndependent/enhancedFormat.js: -------------------------------------------------------------------------------- 1 | //// For GuiMods GUI 2 | // 3 | // formats values to varying resolution depending on the value 4 | // the global variable sys.kilowattThreshold specifies the transition between units an K units 5 | // item is a VBusItem 6 | // unit is an optional string ("W", "A", "V", etc appended to the value 7 | // if unit is omitted, VBusItem unit is used 8 | // to disable the VBusItem unit specify "", or some other value 9 | 10 | // functions that take a value can be used when a VBusItem doesn't provide the value 11 | // for value > 1000, only K will always be displayed even if the unit is blank 12 | 13 | // the optional precision parameter always displays the value to the indicated number of decimal point 14 | // (e.g, 2 would display 12.34) 15 | // scaling to kilo values is disabled 16 | // you must specify a unit if precision is needed !!! 17 | 18 | // the ...Abs versions always display a postive number 19 | // used when a direction indicator is also displayed 20 | 21 | function formatValue (value, unit, precision) 22 | { 23 | if (unit == undefined) 24 | unit = "" 25 | 26 | var threshold 27 | if (sys.kilowattThreshold == undefined) 28 | threshold = 1000 29 | else 30 | threshold = sys.kilowattThreshold 31 | 32 | 33 | if (threshold == 0 || (value >= 0 && value < threshold) || (value < 0 && value > -threshold)) 34 | { 35 | if (precision != undefined) 36 | return value.toFixed (precision) + " " + unit 37 | else if (value >= 100 || value <= -100) 38 | return value.toFixed (0) + " " + unit 39 | else 40 | return value.toFixed (1) + " " + unit 41 | } 42 | else 43 | { 44 | if (precision != undefined) 45 | return value.toFixed (precision) + " " + unit 46 | else if (value >= 10000 || value <= -10000) 47 | return (value/1000).toFixed (1) + " K" + unit 48 | else 49 | return (value/1000).toFixed (2) + " K" + unit 50 | } 51 | } 52 | 53 | function formatValueAbs (value, unit, precision) 54 | { 55 | if (unit == undefined) 56 | unit = "" 57 | if ( value < 0) 58 | value = -value 59 | return formatValue (value, unit, precision) 60 | } 61 | 62 | function formatVBusItem (item, unit, precision) 63 | { 64 | if (item.valid) 65 | { 66 | if (unit == undefined) 67 | unit = item.unit 68 | return formatValue (item.value, unit, precision) 69 | } 70 | else 71 | return "" 72 | } 73 | 74 | function formatVBusItemAbs (item, unit, precision) 75 | { 76 | var value 77 | if (item.valid) 78 | { 79 | if (unit == undefined) 80 | unit = item.unit 81 | return formatValueAbs (item.value, unit, precision) 82 | } 83 | else 84 | return "" 85 | } 86 | -------------------------------------------------------------------------------- /FileSets/VersionIndependent/overview-renewable-light.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Layer 1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /FileSets/VersionIndependent/timeToGo.js: -------------------------------------------------------------------------------- 1 | // converts time to go in seconds to an appropriate display 2 | // min : sec for values less than 1 hour 3 | // hour : min for values > 1 hour, < 1 day 4 | // days : hours for values > 1 day 5 | // Utils.secondsToString does not format the time properly - sometimes 6 | // this code is copied from MbItemTimeSpan used in PageBattery.qml which seems to work 7 | function formatTimeToGo (item) 8 | { 9 | if (!item.valid) 10 | return "--" 11 | 12 | var secs = Math.round(item.value) 13 | var days = Math.floor(secs / 86400); 14 | var hours = Math.floor((secs - (days * 86400)) / 3600); 15 | var minutes = Math.floor((secs - (hours * 3600)) / 60); 16 | var seconds = Math.floor(secs - (minutes * 60)); 17 | 18 | if (days > 0) 19 | return qsTr("%1d %2h").arg(days).arg(hours); 20 | else if (hours > 0) 21 | return qsTr("%1h %2m").arg(hours).arg(minutes); 22 | else if (minutes > 0) 23 | return qsTr("%1m %2s").arg(minutes).arg(seconds); 24 | else 25 | return qsTr("%1s").arg(seconds); 26 | } 27 | -------------------------------------------------------------------------------- /FileSets/fileList: -------------------------------------------------------------------------------- 1 | /opt/victronenergy/gui/qml/OverviewFlowComplex.qml 2 | /opt/victronenergy/gui/qml/OverviewGeneratorEnhanced.qml 3 | /opt/victronenergy/gui/qml/OverviewHubEnhanced.qml 4 | /opt/victronenergy/gui/qml/OverviewMobileEnhanced.qml 5 | /opt/victronenergy/gui/qml/PageGenerator.qml 6 | /opt/victronenergy/gui/qml/PageSettingsGuiMods.qml 7 | /opt/victronenergy/gui/qml/PowerGauge.qml 8 | -------------------------------------------------------------------------------- /FileSets/fileListPatched: -------------------------------------------------------------------------------- 1 | /opt/victronenergy/dbus-modbustcp/attributes.csv 2 | /opt/victronenergy/dbus-systemcalc-py/dbus_systemcalc.py 3 | /opt/victronenergy/gui/qml/Battery.qml 4 | /opt/victronenergy/gui/qml/main.qml 5 | /opt/victronenergy/gui/qml/HubData.qml 6 | /opt/victronenergy/gui/qml/PageMain.qml 7 | /opt/victronenergy/gui/qml/MbEditBox.qml 8 | /opt/victronenergy/gui/qml/MbEditBoxDateTime.qml 9 | /opt/victronenergy/gui/qml/MbItem.qml 10 | /opt/victronenergy/gui/qml/MbItemDigitalInput.qml 11 | /opt/victronenergy/gui/qml/MbSpinBox.qml 12 | /opt/victronenergy/gui/qml/MbStyle.qml 13 | /opt/victronenergy/gui/qml/MbSubMenu.qml 14 | /opt/victronenergy/gui/qml/Multi.qml 15 | /opt/victronenergy/gui/qml/ObjectAcConnection.qml 16 | /opt/victronenergy/gui/qml/OverviewBox.qml 17 | /opt/victronenergy/gui/qml/OverviewGridParallel.qml 18 | /opt/victronenergy/gui/qml/OverviewConnection.qml 19 | /opt/victronenergy/gui/qml/OverviewConnectionEnd.qml 20 | /opt/victronenergy/gui/qml/OverviewHub.qml 21 | /opt/victronenergy/gui/qml/OverviewSolarCharger.qml 22 | /opt/victronenergy/gui/qml/OverviewSolarInverter.qml 23 | /opt/victronenergy/gui/qml/OverviewTankDelegate.qml 24 | /opt/victronenergy/gui/qml/OverviewTanks.qml 25 | /opt/victronenergy/gui/qml/PageDigitalInput.qml 26 | /opt/victronenergy/gui/qml/PageSettingsGenerator.qml 27 | /opt/victronenergy/gui/qml/PageGeneratorConditions.qml 28 | /opt/victronenergy/gui/qml/PageSettingsDisplay.qml 29 | /opt/victronenergy/gui/qml/PageSettingsRelay.qml 30 | /opt/victronenergy/gui/qml/Tile.qml 31 | /opt/victronenergy/gui/qml/TileText.qml 32 | /opt/victronenergy/dbus-digitalinputs/dbus_digitalinputs.py 33 | /opt/victronenergy/dbus-generator-starter/dbus_generator.py 34 | /opt/victronenergy/dbus-generator/dbus_generator.py 35 | /opt/victronenergy/dbus-generator-starter/startstop.py 36 | /opt/victronenergy/dbus-generator/startstop.py 37 | /var/www/venus/styling/styles.css 38 | /var/www/venus/gui-v1/styling/styles.css 39 | -------------------------------------------------------------------------------- /FileSets/fileListVersionIndependent: -------------------------------------------------------------------------------- 1 | /opt/victronenergy/gui/qml/DetailAcInput.qml 2 | /opt/victronenergy/gui/qml/DetailInverter.qml 3 | /opt/victronenergy/gui/qml/DetailLoadsCombined.qml 4 | /opt/victronenergy/gui/qml/DetailLoadsOnInput.qml 5 | /opt/victronenergy/gui/qml/DetailLoadsOnOutput.qml 6 | /opt/victronenergy/gui/qml/DcSystemRow.qml 7 | /opt/victronenergy/gui/qml/DetailAcCharger.qml 8 | /opt/victronenergy/gui/qml/DetailAlternator.qml 9 | /opt/victronenergy/gui/qml/DetailBattery.qml 10 | /opt/victronenergy/gui/qml/DetailButton.qml 11 | /opt/victronenergy/gui/qml/DetailDcSystem.qml 12 | /opt/victronenergy/gui/qml/DetailFuelCell.qml 13 | /opt/victronenergy/gui/qml/DetailMotorDrive.qml 14 | /opt/victronenergy/gui/qml/DetailPvCharger.qml 15 | /opt/victronenergy/gui/qml/DetailPvInverter.qml 16 | /opt/victronenergy/gui/qml/DetailTarget.qml 17 | /opt/victronenergy/gui/qml/DetailWindGen.qml 18 | /opt/victronenergy/gui/qml/LedText.qml 19 | /opt/victronenergy/gui/qml/MarqueeEnhanced.qml 20 | /opt/victronenergy/gui/qml/MultiEnhanced.qml 21 | /opt/victronenergy/gui/qml/MultiEnhancedGP.qml 22 | /opt/victronenergy/gui/qml/OverviewAcValuesEnhanced.qml 23 | /opt/victronenergy/gui/qml/OverviewRelays.qml 24 | /opt/victronenergy/gui/qml/OverviewTanksTempsDigInputs.qml 25 | /opt/victronenergy/gui/qml/OverviewGeneratorRelayEnhanced.qml 26 | /opt/victronenergy/gui/qml/PageSettingsGuiModsGauges.qml 27 | /opt/victronenergy/gui/qml/PowerGaugeBattery.qml 28 | /opt/victronenergy/gui/qml/PowerGaugeMulti.qml 29 | /opt/victronenergy/gui/qml/PvChargerRow.qml 30 | /opt/victronenergy/gui/qml/PvInverterRow.qml 31 | /opt/victronenergy/gui/qml/SystemReasonMessage.qml 32 | /opt/victronenergy/gui/qml/SystemStateShort.qml 33 | /opt/victronenergy/gui/qml/TileAutoRunEnhanced.qml 34 | /opt/victronenergy/gui/qml/TileManualStartEnhanced.qml 35 | /opt/victronenergy/gui/qml/TileTankEnhanced.qml 36 | /opt/victronenergy/gui/qml/TileTemp.qml 37 | /opt/victronenergy/gui/qml/TileRelay.qml 38 | /opt/victronenergy/gui/qml/TileDigIn.qml 39 | /opt/victronenergy/gui/qml/enhancedFormat.js 40 | /opt/victronenergy/gui/qml/timeToGo.js 41 | /opt/victronenergy/themes/ccgx/images/overview-renewable-light.svg 42 | -------------------------------------------------------------------------------- /FileSets/v3.10/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.10/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.10/DetailInverter.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/DetailInverter.qml -------------------------------------------------------------------------------- /FileSets/v3.10/OverviewFlowComplex.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/OverviewFlowComplex.qml -------------------------------------------------------------------------------- /FileSets/v3.10/OverviewHubEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/OverviewHubEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.10/OverviewMobileEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.41/OverviewMobileEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.10/PageSettingsGuiMods.qml: -------------------------------------------------------------------------------- 1 | ../v3.14/PageSettingsGuiMods.qml -------------------------------------------------------------------------------- /FileSets/v3.10/PowerGauge.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/PowerGauge.qml -------------------------------------------------------------------------------- /FileSets/v3.11/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.11/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.11/DetailInverter.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/DetailInverter.qml -------------------------------------------------------------------------------- /FileSets/v3.11/LINKS_ONLY: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.11/LINKS_ONLY -------------------------------------------------------------------------------- /FileSets/v3.11/OverviewFlowComplex.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/OverviewFlowComplex.qml -------------------------------------------------------------------------------- /FileSets/v3.11/OverviewGeneratorEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.31/OverviewGeneratorEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.11/OverviewHubEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/OverviewHubEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.11/OverviewMobileEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.41/OverviewMobileEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.11/PageGenerator.qml: -------------------------------------------------------------------------------- 1 | ../v3.31/PageGenerator.qml -------------------------------------------------------------------------------- /FileSets/v3.11/PageSettingsGuiMods.qml: -------------------------------------------------------------------------------- 1 | ../v3.14/PageSettingsGuiMods.qml -------------------------------------------------------------------------------- /FileSets/v3.11/PowerGauge.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/PowerGauge.qml -------------------------------------------------------------------------------- /FileSets/v3.12/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.12/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.12/DetailInverter.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/DetailInverter.qml -------------------------------------------------------------------------------- /FileSets/v3.12/LINKS_ONLY: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.12/LINKS_ONLY -------------------------------------------------------------------------------- /FileSets/v3.12/OverviewFlowComplex.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/OverviewFlowComplex.qml -------------------------------------------------------------------------------- /FileSets/v3.12/OverviewGeneratorEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.31/OverviewGeneratorEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.12/OverviewHubEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/OverviewHubEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.12/OverviewMobileEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.41/OverviewMobileEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.12/PageGenerator.qml: -------------------------------------------------------------------------------- 1 | ../v3.31/PageGenerator.qml -------------------------------------------------------------------------------- /FileSets/v3.12/PageSettingsGuiMods.qml: -------------------------------------------------------------------------------- 1 | ../v3.14/PageSettingsGuiMods.qml -------------------------------------------------------------------------------- /FileSets/v3.12/PowerGauge.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/PowerGauge.qml -------------------------------------------------------------------------------- /FileSets/v3.13/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.13/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.13/DetailInverter.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/DetailInverter.qml -------------------------------------------------------------------------------- /FileSets/v3.13/LINKS_ONLY: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.13/LINKS_ONLY -------------------------------------------------------------------------------- /FileSets/v3.13/OverviewFlowComplex.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/OverviewFlowComplex.qml -------------------------------------------------------------------------------- /FileSets/v3.13/OverviewGeneratorEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.31/OverviewGeneratorEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.13/OverviewHubEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/OverviewHubEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.13/OverviewMobileEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.41/OverviewMobileEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.13/PageGenerator.qml: -------------------------------------------------------------------------------- 1 | ../v3.31/PageGenerator.qml -------------------------------------------------------------------------------- /FileSets/v3.13/PageSettingsGuiMods.qml: -------------------------------------------------------------------------------- 1 | ../v3.14/PageSettingsGuiMods.qml -------------------------------------------------------------------------------- /FileSets/v3.13/PowerGauge.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/PowerGauge.qml -------------------------------------------------------------------------------- /FileSets/v3.14/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.14/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.14/DetailInverter.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/DetailInverter.qml -------------------------------------------------------------------------------- /FileSets/v3.14/OverviewFlowComplex.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/OverviewFlowComplex.qml -------------------------------------------------------------------------------- /FileSets/v3.14/OverviewGeneratorEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.31/OverviewGeneratorEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.14/OverviewHubEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/OverviewHubEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.14/OverviewMobileEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.41/OverviewMobileEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.14/PageGenerator.qml: -------------------------------------------------------------------------------- 1 | ../v3.31/PageGenerator.qml -------------------------------------------------------------------------------- /FileSets/v3.14/PowerGauge.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/PowerGauge.qml -------------------------------------------------------------------------------- /FileSets/v3.20/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.20/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.20/DetailInverter.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/DetailInverter.qml -------------------------------------------------------------------------------- /FileSets/v3.20/LINKS_ONLY: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.20/LINKS_ONLY -------------------------------------------------------------------------------- /FileSets/v3.20/OverviewFlowComplex.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/OverviewFlowComplex.qml -------------------------------------------------------------------------------- /FileSets/v3.20/OverviewGeneratorEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.31/OverviewGeneratorEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.20/OverviewHubEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/OverviewHubEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.20/OverviewMobileEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.41/OverviewMobileEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.20/PageGenerator.qml: -------------------------------------------------------------------------------- 1 | ../v3.31/PageGenerator.qml -------------------------------------------------------------------------------- /FileSets/v3.20/PageSettingsGuiMods.qml: -------------------------------------------------------------------------------- 1 | ../v3.22/PageSettingsGuiMods.qml -------------------------------------------------------------------------------- /FileSets/v3.20/PowerGauge.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/PowerGauge.qml -------------------------------------------------------------------------------- /FileSets/v3.21/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.21/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.21/DetailInverter.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/DetailInverter.qml -------------------------------------------------------------------------------- /FileSets/v3.21/LINKS_ONLY: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.21/LINKS_ONLY -------------------------------------------------------------------------------- /FileSets/v3.21/OverviewFlowComplex.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/OverviewFlowComplex.qml -------------------------------------------------------------------------------- /FileSets/v3.21/OverviewGeneratorEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.31/OverviewGeneratorEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.21/OverviewHubEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/OverviewHubEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.21/OverviewMobileEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.41/OverviewMobileEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.21/PageGenerator.qml: -------------------------------------------------------------------------------- 1 | ../v3.31/PageGenerator.qml -------------------------------------------------------------------------------- /FileSets/v3.21/PageSettingsGuiMods.qml: -------------------------------------------------------------------------------- 1 | ../v3.22/PageSettingsGuiMods.qml -------------------------------------------------------------------------------- /FileSets/v3.21/PowerGauge.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/PowerGauge.qml -------------------------------------------------------------------------------- /FileSets/v3.22/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.22/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.22/DetailInverter.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/DetailInverter.qml -------------------------------------------------------------------------------- /FileSets/v3.22/OverviewFlowComplex.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/OverviewFlowComplex.qml -------------------------------------------------------------------------------- /FileSets/v3.22/OverviewGeneratorEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.31/OverviewGeneratorEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.22/OverviewHubEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/OverviewHubEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.22/OverviewMobileEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.41/OverviewMobileEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.22/PageGenerator.qml: -------------------------------------------------------------------------------- 1 | ../v3.31/PageGenerator.qml -------------------------------------------------------------------------------- /FileSets/v3.22/PowerGauge.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/PowerGauge.qml -------------------------------------------------------------------------------- /FileSets/v3.30/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.30/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.30/DetailInverter.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/DetailInverter.qml -------------------------------------------------------------------------------- /FileSets/v3.30/LINKS_ONLY: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.30/LINKS_ONLY -------------------------------------------------------------------------------- /FileSets/v3.30/OverviewFlowComplex.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/OverviewFlowComplex.qml -------------------------------------------------------------------------------- /FileSets/v3.30/OverviewGeneratorEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.31/OverviewGeneratorEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.30/OverviewHubEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/OverviewHubEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.30/OverviewMobileEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.41/OverviewMobileEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.30/PageGenerator.qml: -------------------------------------------------------------------------------- 1 | ../v3.31/PageGenerator.qml -------------------------------------------------------------------------------- /FileSets/v3.30/PageSettingsGuiMods.qml: -------------------------------------------------------------------------------- 1 | ../v3.41/PageSettingsGuiMods.qml -------------------------------------------------------------------------------- /FileSets/v3.30/PowerGauge.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/PowerGauge.qml -------------------------------------------------------------------------------- /FileSets/v3.31/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.31/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.31/DetailInverter.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/DetailInverter.qml -------------------------------------------------------------------------------- /FileSets/v3.31/OverviewFlowComplex.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/OverviewFlowComplex.qml -------------------------------------------------------------------------------- /FileSets/v3.31/OverviewHubEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/OverviewHubEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.31/OverviewMobileEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.41/OverviewMobileEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.31/PageSettingsGuiMods.qml: -------------------------------------------------------------------------------- 1 | ../v3.41/PageSettingsGuiMods.qml -------------------------------------------------------------------------------- /FileSets/v3.31/PowerGauge.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/PowerGauge.qml -------------------------------------------------------------------------------- /FileSets/v3.33/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.33/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.33/DetailInverter.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/DetailInverter.qml -------------------------------------------------------------------------------- /FileSets/v3.33/LINKS_ONLY: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.33/LINKS_ONLY -------------------------------------------------------------------------------- /FileSets/v3.33/OverviewFlowComplex.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/OverviewFlowComplex.qml -------------------------------------------------------------------------------- /FileSets/v3.33/OverviewGeneratorEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.41/OverviewGeneratorEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.33/OverviewHubEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/OverviewHubEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.33/OverviewMobileEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.41/OverviewMobileEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.33/PageGenerator.qml: -------------------------------------------------------------------------------- 1 | ../v3.41/PageGenerator.qml -------------------------------------------------------------------------------- /FileSets/v3.33/PageSettingsGuiMods.qml: -------------------------------------------------------------------------------- 1 | ../v3.41/PageSettingsGuiMods.qml -------------------------------------------------------------------------------- /FileSets/v3.33/PowerGauge.qml: -------------------------------------------------------------------------------- 1 | ../v3.34/PowerGauge.qml -------------------------------------------------------------------------------- /FileSets/v3.34/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.34/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.34/OverviewGeneratorEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.41/OverviewGeneratorEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.34/OverviewMobileEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.41/OverviewMobileEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.34/PageGenerator.qml: -------------------------------------------------------------------------------- 1 | ../v3.41/PageGenerator.qml -------------------------------------------------------------------------------- /FileSets/v3.34/PageSettingsGuiMods.qml: -------------------------------------------------------------------------------- 1 | ../v3.41/PageSettingsGuiMods.qml -------------------------------------------------------------------------------- /FileSets/v3.40/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.40/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.40/DetailInverter.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/DetailInverter.qml -------------------------------------------------------------------------------- /FileSets/v3.40/LINKS_ONLY: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.40/LINKS_ONLY -------------------------------------------------------------------------------- /FileSets/v3.40/OverviewFlowComplex.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewFlowComplex.qml -------------------------------------------------------------------------------- /FileSets/v3.40/OverviewGeneratorEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.41/OverviewGeneratorEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.40/OverviewHubEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewHubEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.40/OverviewMobileEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.41/OverviewMobileEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.40/PageGenerator.qml: -------------------------------------------------------------------------------- 1 | ../v3.41/PageGenerator.qml -------------------------------------------------------------------------------- /FileSets/v3.40/PageSettingsGuiMods.qml: -------------------------------------------------------------------------------- 1 | ../v3.41/PageSettingsGuiMods.qml -------------------------------------------------------------------------------- /FileSets/v3.40/PowerGauge.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/PowerGauge.qml -------------------------------------------------------------------------------- /FileSets/v3.41/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.41/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.41/DetailInverter.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/DetailInverter.qml -------------------------------------------------------------------------------- /FileSets/v3.41/OverviewFlowComplex.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewFlowComplex.qml -------------------------------------------------------------------------------- /FileSets/v3.41/OverviewHubEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewHubEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.41/PowerGauge.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/PowerGauge.qml -------------------------------------------------------------------------------- /FileSets/v3.50/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.50/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.50/DetailInverter.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/DetailInverter.qml -------------------------------------------------------------------------------- /FileSets/v3.50/LINKS_ONLY: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.50/LINKS_ONLY -------------------------------------------------------------------------------- /FileSets/v3.50/OverviewFlowComplex.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewFlowComplex.qml -------------------------------------------------------------------------------- /FileSets/v3.50/OverviewGeneratorEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewGeneratorEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.50/OverviewHubEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewHubEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.50/OverviewMobileEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewMobileEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.50/PageGenerator.qml.USE_ORIGINAL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.50/PageGenerator.qml.USE_ORIGINAL -------------------------------------------------------------------------------- /FileSets/v3.50/PageSettingsGuiMods.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/PageSettingsGuiMods.qml -------------------------------------------------------------------------------- /FileSets/v3.50/PowerGauge.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/PowerGauge.qml -------------------------------------------------------------------------------- /FileSets/v3.51/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.51/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.51/DetailInverter.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/DetailInverter.qml -------------------------------------------------------------------------------- /FileSets/v3.51/LINKS_ONLY: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.51/LINKS_ONLY -------------------------------------------------------------------------------- /FileSets/v3.51/OverviewFlowComplex.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewFlowComplex.qml -------------------------------------------------------------------------------- /FileSets/v3.51/OverviewGeneratorEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewGeneratorEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.51/OverviewHubEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewHubEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.51/OverviewMobileEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewMobileEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.51/PageGenerator.qml.USE_ORIGINAL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.51/PageGenerator.qml.USE_ORIGINAL -------------------------------------------------------------------------------- /FileSets/v3.51/PageSettingsGuiMods.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/PageSettingsGuiMods.qml -------------------------------------------------------------------------------- /FileSets/v3.51/PowerGauge.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/PowerGauge.qml -------------------------------------------------------------------------------- /FileSets/v3.52/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.52/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.52/DetailInverter.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/DetailInverter.qml -------------------------------------------------------------------------------- /FileSets/v3.52/LINKS_ONLY: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.52/LINKS_ONLY -------------------------------------------------------------------------------- /FileSets/v3.52/OverviewFlowComplex.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewFlowComplex.qml -------------------------------------------------------------------------------- /FileSets/v3.52/OverviewGeneratorEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewGeneratorEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.52/OverviewHubEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewHubEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.52/OverviewMobileEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewMobileEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.52/PageGenerator.qml.USE_ORIGINAL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.52/PageGenerator.qml.USE_ORIGINAL -------------------------------------------------------------------------------- /FileSets/v3.52/PageSettingsGuiMods.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/PageSettingsGuiMods.qml -------------------------------------------------------------------------------- /FileSets/v3.52/PowerGauge.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/PowerGauge.qml -------------------------------------------------------------------------------- /FileSets/v3.53/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.53/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.53/DetailInverter.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/DetailInverter.qml -------------------------------------------------------------------------------- /FileSets/v3.53/LINKS_ONLY: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.53/LINKS_ONLY -------------------------------------------------------------------------------- /FileSets/v3.53/OverviewFlowComplex.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewFlowComplex.qml -------------------------------------------------------------------------------- /FileSets/v3.53/OverviewGeneratorEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewGeneratorEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.53/OverviewHubEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewHubEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.53/OverviewMobileEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewMobileEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.53/PageGenerator.qml.USE_ORIGINAL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.53/PageGenerator.qml.USE_ORIGINAL -------------------------------------------------------------------------------- /FileSets/v3.53/PageSettingsGuiMods.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/PageSettingsGuiMods.qml -------------------------------------------------------------------------------- /FileSets/v3.53/PowerGauge.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/PowerGauge.qml -------------------------------------------------------------------------------- /FileSets/v3.54/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.54/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.54/DetailInverter.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/DetailInverter.qml -------------------------------------------------------------------------------- /FileSets/v3.54/LINKS_ONLY: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.54/LINKS_ONLY -------------------------------------------------------------------------------- /FileSets/v3.54/OverviewFlowComplex.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewFlowComplex.qml -------------------------------------------------------------------------------- /FileSets/v3.54/OverviewGeneratorEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewGeneratorEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.54/OverviewHubEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewHubEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.54/OverviewMobileEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewMobileEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.54/PageGenerator.qml.USE_ORIGINAL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.54/PageGenerator.qml.USE_ORIGINAL -------------------------------------------------------------------------------- /FileSets/v3.54/PageSettingsGuiMods.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/PageSettingsGuiMods.qml -------------------------------------------------------------------------------- /FileSets/v3.54/PowerGauge.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/PowerGauge.qml -------------------------------------------------------------------------------- /FileSets/v3.55/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.55/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.55/LINKS_ONLY: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.55/LINKS_ONLY -------------------------------------------------------------------------------- /FileSets/v3.55/OverviewFlowComplex.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewFlowComplex.qml -------------------------------------------------------------------------------- /FileSets/v3.55/OverviewGeneratorEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewGeneratorEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.55/OverviewHubEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewHubEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.55/OverviewMobileEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewMobileEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.55/PageGenerator.qml.USE_ORIGINAL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.55/PageGenerator.qml.USE_ORIGINAL -------------------------------------------------------------------------------- /FileSets/v3.55/PageSettingsGuiMods.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/PageSettingsGuiMods.qml -------------------------------------------------------------------------------- /FileSets/v3.55/PowerGauge.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/PowerGauge.qml -------------------------------------------------------------------------------- /FileSets/v3.60~15/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~15/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.60~15/DetailInverter.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/DetailInverter.qml -------------------------------------------------------------------------------- /FileSets/v3.60~15/LINKS_ONLY: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~15/LINKS_ONLY -------------------------------------------------------------------------------- /FileSets/v3.60~15/OverviewFlowComplex.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewFlowComplex.qml -------------------------------------------------------------------------------- /FileSets/v3.60~15/OverviewGeneratorEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewGeneratorEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.60~15/OverviewHubEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewHubEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.60~15/OverviewMobileEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewMobileEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.60~15/PageGenerator.qml.USE_ORIGINAL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~15/PageGenerator.qml.USE_ORIGINAL -------------------------------------------------------------------------------- /FileSets/v3.60~15/PageSettingsGuiMods.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/PageSettingsGuiMods.qml -------------------------------------------------------------------------------- /FileSets/v3.60~15/PowerGauge.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/PowerGauge.qml -------------------------------------------------------------------------------- /FileSets/v3.60~16/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~16/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.60~16/DetailInverter.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/DetailInverter.qml -------------------------------------------------------------------------------- /FileSets/v3.60~16/LINKS_ONLY: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~16/LINKS_ONLY -------------------------------------------------------------------------------- /FileSets/v3.60~16/OverviewFlowComplex.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewFlowComplex.qml -------------------------------------------------------------------------------- /FileSets/v3.60~16/OverviewGeneratorEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewGeneratorEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.60~16/OverviewHubEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewHubEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.60~16/OverviewMobileEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/OverviewMobileEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.60~16/PageGenerator.qml.USE_ORIGINAL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~16/PageGenerator.qml.USE_ORIGINAL -------------------------------------------------------------------------------- /FileSets/v3.60~16/PageSettingsGuiMods.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/PageSettingsGuiMods.qml -------------------------------------------------------------------------------- /FileSets/v3.60~16/PowerGauge.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~17/PowerGauge.qml -------------------------------------------------------------------------------- /FileSets/v3.60~17/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~17/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.60~17/PageGenerator.qml.USE_ORIGINAL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~17/PageGenerator.qml.USE_ORIGINAL -------------------------------------------------------------------------------- /FileSets/v3.60~17/PageGenerator.qml.orig: -------------------------------------------------------------------------------- 1 | import QtQuick 1.1 2 | import "utils.js" as Utils 3 | 4 | MbPage { 5 | id: root 6 | title: qsTr("Generator start/stop") 7 | property string settingsBindPrefix 8 | property string startStopBindPrefix 9 | property bool showRunTime: true 10 | property alias startStopModel: _startStopModel 11 | property VBusItem activeCondition: VBusItem { bind: Utils.path(startStopBindPrefix, "/RunningByCondition") } 12 | property VBusItem generatorState: VBusItem { bind: Utils.path(startStopBindPrefix, "/State") } 13 | property VBusItem runningTime: VBusItem { bind: Utils.path(startStopBindPrefix, "/Runtime") } 14 | 15 | FnGeneratorStates { 16 | id: genState 17 | } 18 | 19 | model: startStopModel 20 | 21 | function formatError(text, value) 22 | { 23 | return "#" + value.toString() + " " + text 24 | } 25 | 26 | VisibleItemModel { 27 | id: _startStopModel 28 | 29 | MbSwitch { 30 | name: qsTr("Auto start functionality") 31 | bind: Utils.path(startStopBindPrefix, "/AutoStartEnabled") 32 | show: startStopBindPrefix === "com.victronenergy.generator.startstop0" 33 | } 34 | 35 | MbSubMenu { 36 | description: qsTr("Manual start") 37 | show: startStopBindPrefix === "com.victronenergy.generator.startstop0" 38 | subpage: 39 | Component { 40 | PageGeneratorManualStart { 41 | startStopBindPrefix: root.startStopBindPrefix 42 | } 43 | } 44 | } 45 | 46 | MbItemValue { 47 | description: qsTr("Current run time") 48 | item.text: runningTime.valid ? Utils.secondsToNoSecsString(runningTime.value) : "0" 49 | show: generatorState.value >= 1 && generatorState.value <= 3 // Running, Warm-up, Cool-down 50 | } 51 | 52 | MbItemValue { 53 | description: qsTr("State") 54 | show: startStopBindPrefix === "com.victronenergy.generator.startstop0" 55 | item.text: activeCondition.valid ? genState.getState(generatorState.value, activeCondition.value) : '---' 56 | } 57 | 58 | MbItemOptions { 59 | id: _gensetStatus 60 | description: qsTr("Error") 61 | bind: Utils.path(startStopBindPrefix, "/Error") 62 | readonly: true 63 | show: valid && startStopBindPrefix === "com.victronenergy.generator.startstop0" 64 | possibleValues: [ 65 | MbOption { description: qsTr("No error"); value: 0 }, 66 | MbOption { description: formatError(qsTr("Remote switch control disabled"), 1); value: 1 }, 67 | MbOption { description: formatError(qsTr("Generator in fault condition"), 2); value: 2 }, 68 | MbOption { description: formatError(qsTr("Generator not detected at AC input"), 3); value: 3 } 69 | ] 70 | } 71 | 72 | MbSubMenu { 73 | id: conditions 74 | description: qsTr("Settings") 75 | subpage: Component { 76 | PageSettingsGenerator { 77 | settingsBindPrefix: root.settingsBindPrefix 78 | startStopBindPrefix: root.startStopBindPrefix 79 | } 80 | } 81 | } 82 | 83 | MbSubMenu { 84 | id: runtimePage 85 | description: qsTr("Run time and service") 86 | subpage: 87 | Component { 88 | PageGeneratorRuntimeService { 89 | title: qsTr("Run time and service") 90 | settingsBindPrefix: root.settingsBindPrefix 91 | startStopBindPrefix: root.startStopBindPrefix 92 | } 93 | } 94 | } 95 | } 96 | } 97 | -------------------------------------------------------------------------------- /FileSets/v3.60~21/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~21/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.60~21/DetailInverter.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~53/DetailInverter.qml -------------------------------------------------------------------------------- /FileSets/v3.60~21/LINKS_ONLY: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~21/LINKS_ONLY -------------------------------------------------------------------------------- /FileSets/v3.60~21/OverviewFlowComplex.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~25/OverviewFlowComplex.qml -------------------------------------------------------------------------------- /FileSets/v3.60~21/OverviewGeneratorEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/OverviewGeneratorEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.60~21/OverviewHubEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~25/OverviewHubEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.60~21/OverviewMobileEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~25/OverviewMobileEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.60~21/PageGenerator.qml.USE_ORIGINAL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~21/PageGenerator.qml.USE_ORIGINAL -------------------------------------------------------------------------------- /FileSets/v3.60~21/PageSettingsGuiMods.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/PageSettingsGuiMods.qml -------------------------------------------------------------------------------- /FileSets/v3.60~21/PowerGauge.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/PowerGauge.qml -------------------------------------------------------------------------------- /FileSets/v3.60~25/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~25/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.60~25/DetailInverter.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~53/DetailInverter.qml -------------------------------------------------------------------------------- /FileSets/v3.60~25/OverviewGeneratorEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/OverviewGeneratorEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.60~25/PageGenerator.qml.USE_ORIGINAL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~25/PageGenerator.qml.USE_ORIGINAL -------------------------------------------------------------------------------- /FileSets/v3.60~25/PageSettingsGuiMods.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/PageSettingsGuiMods.qml -------------------------------------------------------------------------------- /FileSets/v3.60~25/PowerGauge.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/PowerGauge.qml -------------------------------------------------------------------------------- /FileSets/v3.60~53/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~53/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.60~53/LINKS_ONLY: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~53/LINKS_ONLY -------------------------------------------------------------------------------- /FileSets/v3.60~53/OverviewFlowComplex.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/OverviewFlowComplex.qml -------------------------------------------------------------------------------- /FileSets/v3.60~53/OverviewGeneratorEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/OverviewGeneratorEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.60~53/OverviewHubEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/OverviewHubEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.60~53/OverviewMobileEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/OverviewMobileEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.60~53/PageGenerator.qml.USE_ORIGINAL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~53/PageGenerator.qml.USE_ORIGINAL -------------------------------------------------------------------------------- /FileSets/v3.60~53/PageSettingsGuiMods.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/PageSettingsGuiMods.qml -------------------------------------------------------------------------------- /FileSets/v3.60~53/PowerGauge.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/PowerGauge.qml -------------------------------------------------------------------------------- /FileSets/v3.60~57/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~57/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.60~57/LINKS_ONLY: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~57/LINKS_ONLY -------------------------------------------------------------------------------- /FileSets/v3.60~57/OverviewFlowComplex.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/OverviewFlowComplex.qml -------------------------------------------------------------------------------- /FileSets/v3.60~57/OverviewGeneratorEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/OverviewGeneratorEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.60~57/OverviewHubEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/OverviewHubEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.60~57/OverviewMobileEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/OverviewMobileEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.60~57/PageGenerator.qml.USE_ORIGINAL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~57/PageGenerator.qml.USE_ORIGINAL -------------------------------------------------------------------------------- /FileSets/v3.60~57/PageSettingsGuiMods.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/PageSettingsGuiMods.qml -------------------------------------------------------------------------------- /FileSets/v3.60~57/PowerGauge.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/PowerGauge.qml -------------------------------------------------------------------------------- /FileSets/v3.60~58/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~58/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.60~58/LINKS_ONLY: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~58/LINKS_ONLY -------------------------------------------------------------------------------- /FileSets/v3.60~58/OverviewFlowComplex.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/OverviewFlowComplex.qml -------------------------------------------------------------------------------- /FileSets/v3.60~58/OverviewGeneratorEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/OverviewGeneratorEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.60~58/OverviewHubEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/OverviewHubEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.60~58/OverviewMobileEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/OverviewMobileEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.60~58/PageGenerator.qml.USE_ORIGINAL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~58/PageGenerator.qml.USE_ORIGINAL -------------------------------------------------------------------------------- /FileSets/v3.60~58/PageSettingsGuiMods.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/PageSettingsGuiMods.qml -------------------------------------------------------------------------------- /FileSets/v3.60~58/PowerGauge.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/PowerGauge.qml -------------------------------------------------------------------------------- /FileSets/v3.60~59/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~59/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.60~59/LINKS_ONLY: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~59/LINKS_ONLY -------------------------------------------------------------------------------- /FileSets/v3.60~59/OverviewFlowComplex.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/OverviewFlowComplex.qml -------------------------------------------------------------------------------- /FileSets/v3.60~59/OverviewGeneratorEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/OverviewGeneratorEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.60~59/OverviewHubEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/OverviewHubEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.60~59/OverviewMobileEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/OverviewMobileEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.60~59/PageGenerator.qml.USE_ORIGINAL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~59/PageGenerator.qml.USE_ORIGINAL -------------------------------------------------------------------------------- /FileSets/v3.60~59/PageSettingsGuiMods.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/PageSettingsGuiMods.qml -------------------------------------------------------------------------------- /FileSets/v3.60~59/PowerGauge.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/PowerGauge.qml -------------------------------------------------------------------------------- /FileSets/v3.60~60/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~60/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.60~60/LINKS_ONLY: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~60/LINKS_ONLY -------------------------------------------------------------------------------- /FileSets/v3.60~60/OverviewFlowComplex.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/OverviewFlowComplex.qml -------------------------------------------------------------------------------- /FileSets/v3.60~60/OverviewGeneratorEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/OverviewGeneratorEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.60~60/OverviewHubEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/OverviewHubEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.60~60/OverviewMobileEnhanced.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/OverviewMobileEnhanced.qml -------------------------------------------------------------------------------- /FileSets/v3.60~60/PageGenerator.qml.USE_ORIGINAL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~60/PageGenerator.qml.USE_ORIGINAL -------------------------------------------------------------------------------- /FileSets/v3.60~60/PageSettingsGuiMods.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/PageSettingsGuiMods.qml -------------------------------------------------------------------------------- /FileSets/v3.60~60/PowerGauge.qml: -------------------------------------------------------------------------------- 1 | ../v3.60~65/PowerGauge.qml -------------------------------------------------------------------------------- /FileSets/v3.60~65/COMPLETE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~65/COMPLETE -------------------------------------------------------------------------------- /FileSets/v3.60~65/PageGenerator.qml.USE_ORIGINAL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwindrem/GuiMods/bff51e95a64709f0b964133aa248fc8eec678eaf/FileSets/v3.60~65/PageGenerator.qml.USE_ORIGINAL -------------------------------------------------------------------------------- /FileSets/v3.60~65/PageGenerator.qml.orig: -------------------------------------------------------------------------------- 1 | import QtQuick 2 2 | import "utils.js" as Utils 3 | 4 | MbPage { 5 | id: root 6 | title: qsTr("Generator start/stop") 7 | property string settingsBindPrefix 8 | property string startStopBindPrefix 9 | property bool showRunTime: true 10 | property alias startStopModel: _startStopModel 11 | property VBusItem activeCondition: VBusItem { bind: Utils.path(startStopBindPrefix, "/RunningByCondition") } 12 | property VBusItem generatorState: VBusItem { bind: Utils.path(startStopBindPrefix, "/State") } 13 | property VBusItem runningTime: VBusItem { bind: Utils.path(startStopBindPrefix, "/Runtime") } 14 | 15 | FnGeneratorStates { 16 | id: genState 17 | } 18 | 19 | model: startStopModel 20 | 21 | function formatError(text, value) 22 | { 23 | return "#" + value.toString() + " " + text 24 | } 25 | 26 | VisibleItemModel { 27 | id: _startStopModel 28 | 29 | MbSwitch { 30 | name: qsTr("Auto start functionality") 31 | bind: Utils.path(startStopBindPrefix, "/AutoStartEnabled") 32 | show: startStopBindPrefix === "com.victronenergy.generator.startstop0" 33 | } 34 | 35 | MbSubMenu { 36 | description: qsTr("Manual start") 37 | show: startStopBindPrefix === "com.victronenergy.generator.startstop0" 38 | subpage: 39 | Component { 40 | PageGeneratorManualStart { 41 | startStopBindPrefix: root.startStopBindPrefix 42 | } 43 | } 44 | } 45 | 46 | MbItemValue { 47 | description: qsTr("Current run time") 48 | item.text: runningTime.valid ? Utils.secondsToNoSecsString(runningTime.value) : "0" 49 | show: generatorState.value >= 1 && generatorState.value <= 3 // Running, Warm-up, Cool-down 50 | } 51 | 52 | MbItemValue { 53 | description: qsTr("State") 54 | show: startStopBindPrefix === "com.victronenergy.generator.startstop0" 55 | item.text: activeCondition.valid ? genState.getState(generatorState.value, activeCondition.value) : '---' 56 | } 57 | 58 | MbItemOptions { 59 | id: _gensetStatus 60 | description: qsTr("Error") 61 | bind: Utils.path(startStopBindPrefix, "/Error") 62 | readonly: true 63 | show: valid && startStopBindPrefix === "com.victronenergy.generator.startstop0" 64 | possibleValues: [ 65 | MbOption { description: qsTr("No error"); value: 0 }, 66 | MbOption { description: formatError(qsTr("Remote switch control disabled"), 1); value: 1 }, 67 | MbOption { description: formatError(qsTr("Generator in fault condition"), 2); value: 2 }, 68 | MbOption { description: formatError(qsTr("Generator not detected at AC input"), 3); value: 3 } 69 | ] 70 | } 71 | 72 | MbSubMenu { 73 | id: conditions 74 | description: qsTr("Settings") 75 | subpage: Component { 76 | PageSettingsGenerator { 77 | settingsBindPrefix: root.settingsBindPrefix 78 | startStopBindPrefix: root.startStopBindPrefix 79 | } 80 | } 81 | } 82 | 83 | MbSubMenu { 84 | id: runtimePage 85 | description: qsTr("Run time and service") 86 | subpage: 87 | Component { 88 | PageGeneratorRuntimeService { 89 | title: qsTr("Run time and service") 90 | settingsBindPrefix: root.settingsBindPrefix 91 | startStopBindPrefix: root.startStopBindPrefix 92 | } 93 | } 94 | } 95 | } 96 | } 97 | -------------------------------------------------------------------------------- /firstCompatibleVersion: -------------------------------------------------------------------------------- 1 | v3.10 -------------------------------------------------------------------------------- /gitHubInfo: -------------------------------------------------------------------------------- 1 | kwindrem:latest 2 | -------------------------------------------------------------------------------- /packageDependencies: -------------------------------------------------------------------------------- 1 | ExtTransferSwitch uninstalled 2 | GeneratorConnector uninstalled 3 | -------------------------------------------------------------------------------- /services/ExtTransferSwitch/log/run: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec multilog t s25000 n4 /var/log/ExtTransferSwitch 3 | 4 | -------------------------------------------------------------------------------- /services/ExtTransferSwitch/run: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec 2>&1 3 | exec /data/GuiMods/ExtTransferSwitch.py 4 | 5 | -------------------------------------------------------------------------------- /setup: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # this script provides the following modificaitons: 4 | # move Settings and Notifications to the top of the list man page 5 | # hides the Tiles Overview 6 | # replaces the Mobile Overview with an enhanced version 7 | # 8 | # each of these modifications is optional and can be selected 9 | # in the GUI 10 | # 11 | 12 | # everything done in HelperResources which never returns here !!! 13 | standardPromptAndActions='yes' 14 | 15 | #### following line incorporates helper resources into this script 16 | source "/data/SetupHelper/HelperResources/IncludeHelpers" 17 | #### end of lines to include helper resources 18 | -------------------------------------------------------------------------------- /version: -------------------------------------------------------------------------------- 1 | v10.94 2 | --------------------------------------------------------------------------------