Merge PR #1097: Introduce overview for states and events of things

This commit is contained in:
jenkins 2024-09-10 16:20:28 +02:00
commit 3142e708b8
13 changed files with 873 additions and 483 deletions

View File

@ -318,5 +318,6 @@
<file>ui/mainviews/dashboard/DashboardSensorDelegate.qml</file> <file>ui/mainviews/dashboard/DashboardSensorDelegate.qml</file>
<file>ui/devicepages/ThingStatusPage.qml</file> <file>ui/devicepages/ThingStatusPage.qml</file>
<file>ui/customviews/MultiStateChart.qml</file> <file>ui/customviews/MultiStateChart.qml</file>
<file>ui/devicepages/DeviceDetailsPage.qml</file>
</qresource> </qresource>
</RCC> </RCC>

View File

@ -177,7 +177,7 @@
</message> </message>
<message> <message>
<source>No data</source> <source>No data</source>
<translation type="unfinished">Žádná data</translation> <translation>Žádná data</translation>
</message> </message>
<message> <message>
<source>This action has not been executed yet.</source> <source>This action has not been executed yet.</source>
@ -692,6 +692,10 @@
<source>Are you sure you want to remove %1 and all associated settings?</source> <source>Are you sure you want to remove %1 and all associated settings?</source>
<translation>Opravdu chcete odstranit %1 a všechna související nastavení?</translation> <translation>Opravdu chcete odstranit %1 a všechna související nastavení?</translation>
</message> </message>
<message>
<source>Details</source>
<translation>Detaily</translation>
</message>
</context> </context>
<context> <context>
<name>ConnectingPage</name> <name>ConnectingPage</name>
@ -1233,7 +1237,7 @@
</message> </message>
<message> <message>
<source>State</source> <source>State</source>
<translation type="unfinished">Stav</translation> <translation>Stav</translation>
</message> </message>
<message> <message>
<source>Select depiction</source> <source>Select depiction</source>
@ -1426,6 +1430,17 @@
<translation>Chyba: %1</translation> <translation>Chyba: %1</translation>
</message> </message>
</context> </context>
<context>
<name>DeviceDetailsPage</name>
<message>
<source>States</source>
<translation>Podmínky</translation>
</message>
<message>
<source>Events</source>
<translation>Události</translation>
</message>
</context>
<context> <context>
<name>DeviceLogPage</name> <name>DeviceLogPage</name>
<message> <message>
@ -2124,7 +2139,7 @@
</message> </message>
<message> <message>
<source>No data</source> <source>No data</source>
<translation type="unfinished">Žádná data</translation> <translation>Žádná data</translation>
</message> </message>
<message> <message>
<source>This event has not been triggered yet.</source> <source>This event has not been triggered yet.</source>
@ -2404,7 +2419,7 @@ Prosím zkuste to znovu.</translation>
</message> </message>
<message> <message>
<source>ID copied to clipboard</source> <source>ID copied to clipboard</source>
<translation type="unfinished">ID zkopírováno do schránky</translation> <translation>ID zkopírováno do schránky</translation>
</message> </message>
</context> </context>
<context> <context>
@ -4611,23 +4626,23 @@ Použijte hodnotu časového limitu větší nebo rovnou 10 ms.</translation>
<name>MultiStateChart</name> <name>MultiStateChart</name>
<message> <message>
<source>Hours</source> <source>Hours</source>
<translation type="unfinished">Hodiny</translation> <translation>Hodiny</translation>
</message> </message>
<message> <message>
<source>Days</source> <source>Days</source>
<translation type="unfinished">Dny</translation> <translation>Dny</translation>
</message> </message>
<message> <message>
<source>Weeks</source> <source>Weeks</source>
<translation type="unfinished">Týdny</translation> <translation>Týdny</translation>
</message> </message>
<message> <message>
<source>Months</source> <source>Months</source>
<translation type="unfinished">Měsíce</translation> <translation>Měsíce</translation>
</message> </message>
<message> <message>
<source>No data</source> <source>No data</source>
<translation type="unfinished">Žádná data</translation> <translation>Žádná data</translation>
</message> </message>
</context> </context>
<context> <context>
@ -6985,7 +7000,7 @@ Toto prosím používejte pouze v případě, že jste si jisti tím co děláte
</message> </message>
<message> <message>
<source>Updating...</source> <source>Updating...</source>
<translation type="unfinished">Aktualizace probíhá...</translation> <translation>Aktualizace probíhá...</translation>
</message> </message>
<message> <message>
<source>Installed version: %1</source> <source>Installed version: %1</source>
@ -6993,11 +7008,11 @@ Toto prosím používejte pouze v případě, že jste si jisti tím co děláte
</message> </message>
<message> <message>
<source>Available version: %1</source> <source>Available version: %1</source>
<translation type="unfinished">Dostupná verze: %1</translation> <translation>Dostupná verze: %1</translation>
</message> </message>
<message> <message>
<source>Update</source> <source>Update</source>
<translation type="unfinished">Aktualizace</translation> <translation>Aktualizace</translation>
</message> </message>
<message> <message>
<source>Do you want to start the update now?</source> <source>Do you want to start the update now?</source>
@ -7005,7 +7020,7 @@ Toto prosím používejte pouze v případě, že jste si jisti tím co děláte
</message> </message>
<message> <message>
<source>Current version: %1</source> <source>Current version: %1</source>
<translation type="unfinished">Aktuální verze: %1</translation> <translation>Aktuální verze: %1</translation>
</message> </message>
<message> <message>
<source>Connection information</source> <source>Connection information</source>
@ -7017,7 +7032,7 @@ Toto prosím používejte pouze v případě, že jste si jisti tím co děláte
</message> </message>
<message> <message>
<source>Disconnected</source> <source>Disconnected</source>
<translation type="unfinished">Odpojeno</translation> <translation>Odpojeno</translation>
</message> </message>
<message> <message>
<source>Signal strength: %1 %</source> <source>Signal strength: %1 %</source>
@ -7037,11 +7052,11 @@ Toto prosím používejte pouze v případě, že jste si jisti tím co děláte
</message> </message>
<message> <message>
<source>Critical</source> <source>Critical</source>
<translation type="unfinished">Kritické</translation> <translation>Kritické</translation>
</message> </message>
<message> <message>
<source>OK</source> <source>OK</source>
<translation type="unfinished">OK</translation> <translation>OK</translation>
</message> </message>
<message> <message>
<source>Battery level: %1 %</source> <source>Battery level: %1 %</source>

View File

@ -691,6 +691,10 @@
<source>Are you sure you want to remove %1 and all associated settings?</source> <source>Are you sure you want to remove %1 and all associated settings?</source>
<translation>Bist Du sicher, dass %1 und alle zugehörigen Einstellungen entfernt werden sollen?</translation> <translation>Bist Du sicher, dass %1 und alle zugehörigen Einstellungen entfernt werden sollen?</translation>
</message> </message>
<message>
<source>Details</source>
<translation>Details</translation>
</message>
</context> </context>
<context> <context>
<name>ConnectingPage</name> <name>ConnectingPage</name>
@ -1425,6 +1429,17 @@
<translation>Fehler: %1</translation> <translation>Fehler: %1</translation>
</message> </message>
</context> </context>
<context>
<name>DeviceDetailsPage</name>
<message>
<source>States</source>
<translation>Zustände</translation>
</message>
<message>
<source>Events</source>
<translation>Ereignisse</translation>
</message>
</context>
<context> <context>
<name>DeviceLogPage</name> <name>DeviceLogPage</name>
<message> <message>

View File

@ -691,6 +691,10 @@
<source>Are you sure you want to remove %1 and all associated settings?</source> <source>Are you sure you want to remove %1 and all associated settings?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Details</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ConnectingPage</name> <name>ConnectingPage</name>
@ -1425,6 +1429,17 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>DeviceDetailsPage</name>
<message>
<source>States</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Events</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>DeviceLogPage</name> <name>DeviceLogPage</name>
<message> <message>

View File

@ -691,6 +691,10 @@
<source>Are you sure you want to remove %1 and all associated settings?</source> <source>Are you sure you want to remove %1 and all associated settings?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Details</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ConnectingPage</name> <name>ConnectingPage</name>
@ -1425,6 +1429,17 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>DeviceDetailsPage</name>
<message>
<source>States</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Events</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>DeviceLogPage</name> <name>DeviceLogPage</name>
<message> <message>
@ -7876,14 +7891,14 @@ Please only use this if you are sure you want this and consider reporting the is
</message> </message>
<message numerus="yes"> <message numerus="yes">
<source>%n device(s)</source> <source>%n device(s)</source>
<translation type="unfinished"> <translation>
<numerusform>%n device</numerusform> <numerusform>%n device</numerusform>
<numerusform>%n devices</numerusform> <numerusform>%n devices</numerusform>
</translation> </translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<source>%n device(s) (%1 disconnected)</source> <source>%n device(s) (%1 disconnected)</source>
<translation type="unfinished"> <translation>
<numerusform>%n device (%1 disconnected)</numerusform> <numerusform>%n device (%1 disconnected)</numerusform>
<numerusform>%n devices (%1 disconnected)</numerusform> <numerusform>%n devices (%1 disconnected)</numerusform>
</translation> </translation>

View File

@ -79,7 +79,7 @@
</message> </message>
<message> <message>
<source>About %1</source> <source>About %1</source>
<translation type="unfinished">Riguardo a %1</translation> <translation>Riguardo a %1</translation>
</message> </message>
<message> <message>
<source>Device serial number</source> <source>Device serial number</source>
@ -137,7 +137,7 @@
<name>ActionLogPage</name> <name>ActionLogPage</name>
<message> <message>
<source>History for %1</source> <source>History for %1</source>
<translation type="unfinished">Cronologia per %1</translation> <translation>Cronologia per %1</translation>
</message> </message>
<message> <message>
<source>Remove logs?</source> <source>Remove logs?</source>
@ -196,7 +196,7 @@
</message> </message>
<message> <message>
<source>Add</source> <source>Add</source>
<translation type="unfinished">Aggiungi</translation> <translation>Aggiungi</translation>
</message> </message>
<message> <message>
<source>WebSocket server interfaces</source> <source>WebSocket server interfaces</source>
@ -339,7 +339,7 @@
<name>AwningThingsListPage</name> <name>AwningThingsListPage</name>
<message> <message>
<source>Awnings</source> <source>Awnings</source>
<translation type="unfinished">Tende da sole</translation> <translation>Tende da sole</translation>
</message> </message>
</context> </context>
<context> <context>
@ -395,7 +395,7 @@
<name>BlindThingsListPage</name> <name>BlindThingsListPage</name>
<message> <message>
<source>Blinds</source> <source>Blinds</source>
<translation type="unfinished">Veneziane</translation> <translation>Veneziane</translation>
</message> </message>
</context> </context>
<context> <context>
@ -582,7 +582,7 @@
<name>Configuration</name> <name>Configuration</name>
<message> <message>
<source>Help</source> <source>Help</source>
<translation type="unfinished">Aiuto</translation> <translation>Aiuto</translation>
</message> </message>
<message> <message>
<source>Forum</source> <source>Forum</source>
@ -691,6 +691,10 @@
<source>Are you sure you want to remove %1 and all associated settings?</source> <source>Are you sure you want to remove %1 and all associated settings?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Details</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ConnectingPage</name> <name>ConnectingPage</name>
@ -739,7 +743,7 @@
<name>ConnectionInfoDialog</name> <name>ConnectionInfoDialog</name>
<message> <message>
<source>Available connections</source> <source>Available connections</source>
<translation type="unfinished">Connessioni disponibili</translation> <translation>Connessioni disponibili</translation>
</message> </message>
<message> <message>
<source>System information</source> <source>System information</source>
@ -747,11 +751,11 @@
</message> </message>
<message> <message>
<source>Add</source> <source>Add</source>
<translation type="unfinished">Aggiungi</translation> <translation>Aggiungi</translation>
</message> </message>
<message> <message>
<source>Close</source> <source>Close</source>
<translation type="unfinished">Chiudi</translation> <translation>Chiudi</translation>
</message> </message>
</context> </context>
<context> <context>
@ -816,7 +820,7 @@
</message> </message>
<message> <message>
<source>Demo mode</source> <source>Demo mode</source>
<translation type="unfinished">Modalità demo</translation> <translation>Modalità demo</translation>
</message> </message>
<message> <message>
<source>In order to use nymea, you will need to install nymea:core on a computer in your network. This can be a Raspberry Pi or any generic Linux computer.</source> <source>In order to use nymea, you will need to install nymea:core on a computer in your network. This can be a Raspberry Pi or any generic Linux computer.</source>
@ -868,7 +872,7 @@
</message> </message>
<message> <message>
<source>Manual connection</source> <source>Manual connection</source>
<translation type="unfinished">Connessione manuale</translation> <translation>Connessione manuale</translation>
</message> </message>
<message> <message>
<source>Please wait while your nymea system is being discovered.</source> <source>Please wait while your nymea system is being discovered.</source>
@ -900,7 +904,7 @@
</message> </message>
<message> <message>
<source>Wireless setup</source> <source>Wireless setup</source>
<translation type="unfinished">Configurazione wireless</translation> <translation>Configurazione wireless</translation>
</message> </message>
<message> <message>
<source>Searching for the nymea system...</source> <source>Searching for the nymea system...</source>
@ -1216,7 +1220,7 @@
</message> </message>
<message> <message>
<source>Cancel</source> <source>Cancel</source>
<translation type="unfinished">Cancella</translation> <translation>Cancella</translation>
</message> </message>
<message> <message>
<source>Back</source> <source>Back</source>
@ -1224,7 +1228,7 @@
</message> </message>
<message> <message>
<source>OK</source> <source>OK</source>
<translation type="unfinished">Ok</translation> <translation>Ok</translation>
</message> </message>
<message> <message>
<source>Sensor</source> <source>Sensor</source>
@ -1425,6 +1429,17 @@
<translation></translation> <translation></translation>
</message> </message>
</context> </context>
<context>
<name>DeviceDetailsPage</name>
<message>
<source>States</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Events</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>DeviceLogPage</name> <name>DeviceLogPage</name>
<message> <message>
@ -1868,7 +1883,7 @@
</message> </message>
<message> <message>
<source>OK</source> <source>OK</source>
<translation type="unfinished">Ok</translation> <translation>Ok</translation>
</message> </message>
<message> <message>
<source>Assigned things</source> <source>Assigned things</source>
@ -2093,7 +2108,7 @@
<name>EventLogPage</name> <name>EventLogPage</name>
<message> <message>
<source>History for %1</source> <source>History for %1</source>
<translation type="unfinished">Cronologia per %1</translation> <translation>Cronologia per %1</translation>
</message> </message>
<message> <message>
<source>Remove logs?</source> <source>Remove logs?</source>
@ -2388,11 +2403,11 @@ Please try again.</source>
</message> </message>
<message> <message>
<source>Cancel</source> <source>Cancel</source>
<translation type="unfinished">Cancella</translation> <translation>Cancella</translation>
</message> </message>
<message> <message>
<source>OK</source> <source>OK</source>
<translation type="unfinished">Ok</translation> <translation>Ok</translation>
</message> </message>
<message> <message>
<source>ID copied to clipboard</source> <source>ID copied to clipboard</source>
@ -2488,11 +2503,11 @@ Please try again.</source>
<name>GroupsView</name> <name>GroupsView</name>
<message> <message>
<source>There are no groups set up yet.</source> <source>There are no groups set up yet.</source>
<translation type="unfinished">Non ci sono gruppi già impostati.</translation> <translation>Non ci sono gruppi già impostati.</translation>
</message> </message>
<message> <message>
<source>Grouping things can be useful to control multiple devices at once, for example an entire room. Watch out for the group symbol when interacting with things and use it to add them to groups.</source> <source>Grouping things can be useful to control multiple devices at once, for example an entire room. Watch out for the group symbol when interacting with things and use it to add them to groups.</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
</context> </context>
<context> <context>
@ -3635,7 +3650,7 @@ Please try again.</source>
</message> </message>
<message> <message>
<source>Temperature</source> <source>Temperature</source>
<translation type="unfinished">Temperatura</translation> <translation>Temperatura</translation>
</message> </message>
<message> <message>
<source>Brightness</source> <source>Brightness</source>
@ -3650,7 +3665,7 @@ Please try again.</source>
<name>LightThingsListPage</name> <name>LightThingsListPage</name>
<message> <message>
<source>Lights</source> <source>Lights</source>
<translation type="unfinished">Luci</translation> <translation>Luci</translation>
</message> </message>
</context> </context>
<context> <context>
@ -3974,11 +3989,11 @@ Please try again.</source>
</message> </message>
<message> <message>
<source>App settings</source> <source>App settings</source>
<translation type="unfinished">Impostazioni app</translation> <translation>Impostazioni app</translation>
</message> </message>
<message> <message>
<source>System settings</source> <source>System settings</source>
<translation type="unfinished">Impostazioni di sistema</translation> <translation>Impostazioni di sistema</translation>
</message> </message>
<message> <message>
<source>New connection</source> <source>New connection</source>
@ -4195,7 +4210,7 @@ Please try again.</source>
</message> </message>
<message> <message>
<source>Add</source> <source>Add</source>
<translation type="unfinished">Aggiungi</translation> <translation>Aggiungi</translation>
</message> </message>
<message> <message>
<source>Select a serial port.</source> <source>Select a serial port.</source>
@ -4972,7 +4987,7 @@ Use a timeout value greater or equal to 10 ms.</source>
<name>NotificationsThingPage</name> <name>NotificationsThingPage</name>
<message> <message>
<source>Title</source> <source>Title</source>
<translation type="unfinished">Titolo</translation> <translation>Titolo</translation>
</message> </message>
<message> <message>
<source>Text</source> <source>Text</source>
@ -5004,7 +5019,7 @@ Use a timeout value greater or equal to 10 ms.</source>
</message> </message>
<message> <message>
<source>Close</source> <source>Close</source>
<translation type="unfinished">Chiudi</translation> <translation>Chiudi</translation>
</message> </message>
</context> </context>
<context> <context>
@ -6772,7 +6787,7 @@ Please only use this if you are sure you want this and consider reporting the is
</message> </message>
<message> <message>
<source>OK</source> <source>OK</source>
<translation type="unfinished">Ok</translation> <translation>Ok</translation>
</message> </message>
</context> </context>
<context> <context>
@ -6846,7 +6861,7 @@ Please only use this if you are sure you want this and consider reporting the is
</message> </message>
<message> <message>
<source>OK</source> <source>OK</source>
<translation type="unfinished">Ok</translation> <translation>Ok</translation>
</message> </message>
</context> </context>
<context> <context>
@ -6880,7 +6895,7 @@ Please only use this if you are sure you want this and consider reporting the is
<name>ThingLogPage</name> <name>ThingLogPage</name>
<message> <message>
<source>History for %1</source> <source>History for %1</source>
<translation type="unfinished">Cronologia per %1</translation> <translation>Cronologia per %1</translation>
</message> </message>
<message> <message>
<source>Filter by</source> <source>Filter by</source>
@ -7005,7 +7020,7 @@ Please only use this if you are sure you want this and consider reporting the is
</message> </message>
<message> <message>
<source>OK</source> <source>OK</source>
<translation type="unfinished">Ok</translation> <translation>Ok</translation>
</message> </message>
<message> <message>
<source>Battery level: %1 %</source> <source>Battery level: %1 %</source>
@ -7016,7 +7031,7 @@ Please only use this if you are sure you want this and consider reporting the is
<name>ThingsView</name> <name>ThingsView</name>
<message> <message>
<source>Welcome to %1!</source> <source>Welcome to %1!</source>
<translation type="unfinished">Benvenuto in %1!</translation> <translation>Benvenuto in %1!</translation>
</message> </message>
<message> <message>
<source>There are no things set up yet.</source> <source>There are no things set up yet.</source>
@ -7134,7 +7149,7 @@ Please only use this if you are sure you want this and consider reporting the is
</message> </message>
<message> <message>
<source>OK</source> <source>OK</source>
<translation type="unfinished">Ok</translation> <translation>Ok</translation>
</message> </message>
</context> </context>
<context> <context>
@ -7481,7 +7496,7 @@ Please only use this if you are sure you want this and consider reporting the is
</message> </message>
<message> <message>
<source>Next</source> <source>Next</source>
<translation type="unfinished">Avanti</translation> <translation>Avanti</translation>
</message> </message>
</context> </context>
<context> <context>
@ -7546,7 +7561,7 @@ Please only use this if you are sure you want this and consider reporting the is
</message> </message>
<message> <message>
<source>Help</source> <source>Help</source>
<translation type="unfinished">Aiuto</translation> <translation>Aiuto</translation>
</message> </message>
<message> <message>
<source>Network settings</source> <source>Network settings</source>
@ -7690,7 +7705,7 @@ Please only use this if you are sure you want this and consider reporting the is
</message> </message>
<message> <message>
<source>OK</source> <source>OK</source>
<translation type="unfinished">Ok</translation> <translation>Ok</translation>
</message> </message>
<message> <message>
<source>Remove Z-Wave node</source> <source>Remove Z-Wave node</source>
@ -7961,7 +7976,7 @@ Please only use this if you are sure you want this and consider reporting the is
</message> </message>
<message> <message>
<source>OK</source> <source>OK</source>
<translation type="unfinished">Ok</translation> <translation>Ok</translation>
</message> </message>
<message> <message>
<source>ZigBee network settings</source> <source>ZigBee network settings</source>
@ -8052,11 +8067,11 @@ Please only use this if you are sure you want this and consider reporting the is
</message> </message>
<message> <message>
<source>Help</source> <source>Help</source>
<translation type="unfinished">Aiuto</translation> <translation>Aiuto</translation>
</message> </message>
<message> <message>
<source>OK</source> <source>OK</source>
<translation type="unfinished">Ok</translation> <translation>Ok</translation>
</message> </message>
<message> <message>
<source>There are no ZigBee devices connected yet. Open the network for new devices to join and start the pairing procedure from the ZigBee device. Please refer to the devices manual for more information on how to start the pairing.</source> <source>There are no ZigBee devices connected yet. Open the network for new devices to join and start the pairing procedure from the ZigBee device. Please refer to the devices manual for more information on how to start the pairing.</source>
@ -8108,7 +8123,7 @@ Please only use this if you are sure you want this and consider reporting the is
</message> </message>
<message> <message>
<source>Close</source> <source>Close</source>
<translation type="unfinished">Chiudi</translation> <translation>Chiudi</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<source>%n device(s)</source> <source>%n device(s)</source>
@ -8228,7 +8243,7 @@ Please only use this if you are sure you want this and consider reporting the is
</message> </message>
<message> <message>
<source>Help</source> <source>Help</source>
<translation type="unfinished">Aiuto</translation> <translation>Aiuto</translation>
</message> </message>
<message> <message>
<source>Device</source> <source>Device</source>

File diff suppressed because it is too large Load Diff

View File

@ -177,7 +177,7 @@
</message> </message>
<message> <message>
<source>No data</source> <source>No data</source>
<translation type="unfinished">Geen gegevens</translation> <translation>Geen gegevens</translation>
</message> </message>
<message> <message>
<source>This action has not been executed yet.</source> <source>This action has not been executed yet.</source>
@ -691,6 +691,10 @@
<source>Are you sure you want to remove %1 and all associated settings?</source> <source>Are you sure you want to remove %1 and all associated settings?</source>
<translation>Weet je zeker dat je %1 wilt verwijderen, samen met de bijbehorende instellingen?</translation> <translation>Weet je zeker dat je %1 wilt verwijderen, samen met de bijbehorende instellingen?</translation>
</message> </message>
<message>
<source>Details</source>
<translation>Details</translation>
</message>
</context> </context>
<context> <context>
<name>ConnectingPage</name> <name>ConnectingPage</name>
@ -1232,7 +1236,7 @@
</message> </message>
<message> <message>
<source>State</source> <source>State</source>
<translation type="unfinished">Status</translation> <translation>Status</translation>
</message> </message>
<message> <message>
<source>Select depiction</source> <source>Select depiction</source>
@ -1425,6 +1429,17 @@
<translation>Fout: %1</translation> <translation>Fout: %1</translation>
</message> </message>
</context> </context>
<context>
<name>DeviceDetailsPage</name>
<message>
<source>States</source>
<translation>Statussen</translation>
</message>
<message>
<source>Events</source>
<translation>Gebeurtenissen</translation>
</message>
</context>
<context> <context>
<name>DeviceLogPage</name> <name>DeviceLogPage</name>
<message> <message>
@ -2125,7 +2140,7 @@
</message> </message>
<message> <message>
<source>No data</source> <source>No data</source>
<translation type="unfinished">Geen gegevens</translation> <translation>Geen gegevens</translation>
</message> </message>
<message> <message>
<source>This event has not been triggered yet.</source> <source>This event has not been triggered yet.</source>
@ -4597,23 +4612,23 @@ Gebruik een timeout waarde die groter of gelijk is dan 10 ms.</translation>
<name>MultiStateChart</name> <name>MultiStateChart</name>
<message> <message>
<source>Hours</source> <source>Hours</source>
<translation type="unfinished">Uren</translation> <translation>Uren</translation>
</message> </message>
<message> <message>
<source>Days</source> <source>Days</source>
<translation type="unfinished">Dagen</translation> <translation>Dagen</translation>
</message> </message>
<message> <message>
<source>Weeks</source> <source>Weeks</source>
<translation type="unfinished">Weken</translation> <translation>Weken</translation>
</message> </message>
<message> <message>
<source>Months</source> <source>Months</source>
<translation type="unfinished">Maanden</translation> <translation>Maanden</translation>
</message> </message>
<message> <message>
<source>No data</source> <source>No data</source>
<translation type="unfinished">Geen gegevens</translation> <translation>Geen gegevens</translation>
</message> </message>
</context> </context>
<context> <context>
@ -6971,7 +6986,7 @@ Als je fouten in de niet-officiële software vindt, geef deze dan door aan de on
</message> </message>
<message> <message>
<source>Updating...</source> <source>Updating...</source>
<translation type="unfinished">Aan het bijwerken...</translation> <translation>Aan het bijwerken...</translation>
</message> </message>
<message> <message>
<source>Installed version: %1</source> <source>Installed version: %1</source>
@ -6979,11 +6994,11 @@ Als je fouten in de niet-officiële software vindt, geef deze dan door aan de on
</message> </message>
<message> <message>
<source>Available version: %1</source> <source>Available version: %1</source>
<translation type="unfinished">Beschikbare versie: %1</translation> <translation>Beschikbare versie: %1</translation>
</message> </message>
<message> <message>
<source>Update</source> <source>Update</source>
<translation type="unfinished">Bijwerken</translation> <translation>Bijwerken</translation>
</message> </message>
<message> <message>
<source>Do you want to start the update now?</source> <source>Do you want to start the update now?</source>
@ -6991,7 +7006,7 @@ Als je fouten in de niet-officiële software vindt, geef deze dan door aan de on
</message> </message>
<message> <message>
<source>Current version: %1</source> <source>Current version: %1</source>
<translation type="unfinished">Huidige versie: %1</translation> <translation>Huidige versie: %1</translation>
</message> </message>
<message> <message>
<source>Connection information</source> <source>Connection information</source>
@ -6999,11 +7014,11 @@ Als je fouten in de niet-officiële software vindt, geef deze dan door aan de on
</message> </message>
<message> <message>
<source>Connected</source> <source>Connected</source>
<translation type="unfinished">Verbonden</translation> <translation>Verbonden</translation>
</message> </message>
<message> <message>
<source>Disconnected</source> <source>Disconnected</source>
<translation type="unfinished">Niet verbonden</translation> <translation>Niet verbonden</translation>
</message> </message>
<message> <message>
<source>Signal strength: %1 %</source> <source>Signal strength: %1 %</source>
@ -7023,11 +7038,11 @@ Als je fouten in de niet-officiële software vindt, geef deze dan door aan de on
</message> </message>
<message> <message>
<source>Critical</source> <source>Critical</source>
<translation type="unfinished">Kritiek</translation> <translation>Kritiek</translation>
</message> </message>
<message> <message>
<source>OK</source> <source>OK</source>
<translation type="unfinished">OK</translation> <translation>OK</translation>
</message> </message>
<message> <message>
<source>Battery level: %1 %</source> <source>Battery level: %1 %</source>

File diff suppressed because it is too large Load Diff

View File

@ -690,6 +690,10 @@
<source>Are you sure you want to remove %1 and all associated settings?</source> <source>Are you sure you want to remove %1 and all associated settings?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Details</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ConnectingPage</name> <name>ConnectingPage</name>
@ -1424,6 +1428,17 @@
<translation></translation> <translation></translation>
</message> </message>
</context> </context>
<context>
<name>DeviceDetailsPage</name>
<message>
<source>States</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Events</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>DeviceLogPage</name> <name>DeviceLogPage</name>
<message> <message>

View File

@ -13,7 +13,7 @@ InfoPaneBase {
readonly property bool setupFailure: root.thing.setupStatus == Thing.ThingSetupStatusFailed readonly property bool setupFailure: root.thing.setupStatus == Thing.ThingSetupStatusFailed
readonly property State batteryState: root.thing.stateByName("batteryLevel") readonly property State batteryState: root.thing.stateByName("batteryLevel")
readonly property State batteryCriticalState: root.thing.stateByName("batteryCritical") readonly property State batteryCriticalState: root.thing.stateByName("batteryCritical")
readonly property State connectedState: root.thing.thingClass.interfaces.indexOf("connectable") >= 0 && root.thing.stateByName("connected") readonly property State connectedState: root.thing.thingClass.interfaces.indexOf("connectable") >= 0 ? root.thing.stateByName("connected") : null
readonly property State signalStrengthState: root.thing.stateByName("signalStrength") readonly property State signalStrengthState: root.thing.stateByName("signalStrength")
readonly property State updateStatusState: root.thing.stateByName("updateStatus") readonly property State updateStatusState: root.thing.stateByName("updateStatus")
readonly property State childLockState: root.thing.stateByName("childLock") readonly property State childLockState: root.thing.stateByName("childLock")

View File

@ -0,0 +1,248 @@
import QtQuick 2.5
import QtQuick.Layouts 1.1
import QtQuick.Controls 2.2
import QtQuick.Controls.Material 2.2
import Nymea 1.0
import "../components"
import "../delegates"
Page {
id: root
property Thing thing: null
header: NymeaHeader {
text: thing ? thing.name : ""
backButtonVisible: true
onBackPressed: pageStack.pop()
}
ListView {
id: flickable
anchors.fill: parent
clip: true
SwipeDelegateGroup {}
section.property: "type"
section.delegate: ListSectionHeader {
text: {
switch (parseInt(section)) {
case ThingModel.TypeStateType:
return qsTr("States")
case ThingModel.TypeEventType:
return qsTr("Events")
}
}
}
model: ThingModel {
thing: root.thing
showActions: false
}
delegate: SwipeDelegate {
id: delegate
width: parent.width
readonly property StateType stateType: model.type === ThingModel.TypeStateType ? root.thing.thingClass.stateTypes.getStateType(model.id) : null
readonly property EventType eventType: model.type === ThingModel.TypeEventType ? root.thing.thingClass.eventTypes.getEventType(model.id) : null
Layout.fillWidth: true
bottomPadding: 0
contentItem: Loader {
id: inlineLoader
Layout.fillWidth: true
Layout.preferredHeight: Style.smallDelegateHeight
sourceComponent: {
switch (model.type) {
case ThingModel.TypeStateType:
return stateComponent;
case ThingModel.TypeEventType:
return eventComponent;
}
}
Binding {
target: inlineLoader.item
when: model.type === ThingModel.TypeStateType
property: "stateType"
value: delegate.stateType
}
Binding {
target: inlineLoader.item
when: model.type === ThingModel.TypeEventType
property: "eventType"
value: delegate.eventType
}
}
}
}
Component {
id: stateComponent
RowLayout {
id: stateDelegate
property StateType stateType: null
readonly property State thingState: stateType ? root.thing.states.getState(stateType.id) : null
Label {
Layout.fillWidth: true
Layout.minimumWidth: parent.width / 2
text: stateDelegate.stateType.displayName
elide: Text.ElideRight
}
Loader {
id: stateDelegateLoader
Layout.fillWidth: true
}
Label {
visible: text.length > 0 && stateDelegate.stateType.unit !== Types.UnitUnixTime
text: Types.toUiUnit(stateDelegate.stateType.unit)
}
Component.onCompleted: updateLoader()
onStateTypeChanged: updateLoader();
function updateLoader() {
if (stateDelegate.stateType == null) {
return;
}
var sourceComp;
switch (stateDelegate.stateType.type.toLowerCase()) {
case "string":
sourceComp = "LabelDelegate.qml";
break;
case "stringlist":
sourceComp = "ListDelegate.qml";
break;
case "bool":
sourceComp = "LedDelegate.qml";
break;
case "int":
case "uint":
case "double":
if (stateDelegate.stateType.unit === Types.UnitUnixTime) {
sourceComp = "DateTimeDelegate.qml";
} else {
sourceComp = "NumberLabelDelegate.qml";
}
break;
case "color":
sourceComp = "ColorDelegate.qml";
break;
}
if (!sourceComp) {
sourceComp = "LabelDelegate.qml";
print("GenericThingPage: unhandled entry", stateDelegate.stateType.displayName)
}
var minValue = stateDelegate.stateType.minValue !== undefined
? stateDelegate.stateType.minValue
: stateDelegate.stateType.type.toLowerCase() === "uint"
? 0
: -2000000000; // As per QML spec
var maxValue = stateDelegate.stateType.maxValue !== undefined
? stateDelegate.stateType.maxValue
: 2000000000;
print("pushing delegate for", stateDelegate.stateType.name, "from:", minValue, "to:", maxValue, "possible:", stateDelegate.stateType.possibleValuesDisplayNames)
stateDelegateLoader.setSource("../delegates/statedelegates/" + sourceComp,
{
value: root.thing.states.getState(stateType.id).value,
possibleValues: stateDelegate.stateType.possibleValues,
possibleValuesDisplayNames: stateDelegate.stateType.possibleValuesDisplayNames,
from: minValue,
to: maxValue,
unit: stateDelegate.stateType.unit,
writable: false,
stateType: stateDelegate.stateType
})
}
Binding {
target: stateDelegateLoader.item
property: "value"
value: stateDelegate.thingState.value
}
Binding {
target: stateDelegateLoader.item.hasOwnProperty("from") ? stateDelegateLoader.item : null
property: "from"
value: stateDelegate.thingState.minValue
}
Binding {
target: stateDelegateLoader.item.hasOwnProperty("to") ? stateDelegateLoader.item : null
property: "to"
value: stateDelegate.thingState.maxValue
}
Binding {
target: stateDelegateLoader.item.hasOwnProperty("possibleValues") ? stateDelegateLoader.item : null
property: "possibleValues"
value: stateDelegate.thingState.possibleValues
}
Binding {
target: stateDelegateLoader.item.hasOwnProperty("possibleValuesDisplayNames") ? stateDelegateLoader.item : null
property: "possibleValuesDisplayNames"
value: {
print("updating displayNames", stateDelegate.thingState.possibleValues)
var ret = []
for (var i = 0; i < stateDelegate.thingState.possibleValues.length; i++) {
var possibleValue = stateDelegate.thingState.possibleValues[i]
var idx = stateDelegate.stateType.possibleValues.indexOf(possibleValue)
print("value:", possibleValue, idx)
if (idx >= 0) {
ret.push(stateDelegate.stateType.possibleValuesDisplayNames[idx])
} else {
ret.push(possibleValue)
}
}
return ret
}
}
Binding {
target: stateDelegateLoader.item.hasOwnProperty("unit") ? stateDelegateLoader.item : null
property: "unit"
value: stateDelegate.stateType.unit
}
}
}
Component {
id: eventComponent
RowLayout {
id: eventComponentItem
property EventType eventType: null
Label {
Layout.fillWidth: true
text: eventComponentItem.eventType.displayName
}
Rectangle {
id: flashlight
Layout.preferredHeight: Style.iconSize * .8
Layout.preferredWidth: height
color: "lightgray"
radius: width / 2
border.color: Style.foregroundColor
border.width: 1
SequentialAnimation on color {
id: flashlightAnimation
running: false
ColorAnimation { to: "lightgreen"; duration: 100 }
ColorAnimation { to: "lightgray"; duration: 500 }
}
}
Connections {
target: root.thing
onEventTriggered: {
if (eventTypeId === eventComponentItem.eventType.id) {
flashlightAnimation.start();
}
}
}
}
}
}

View File

@ -73,6 +73,8 @@ SettingsPageBase {
if (!root.thing.isChild || root.thingClass.createMethods.indexOf("CreateMethodAuto") < 0) { if (!root.thing.isChild || root.thingClass.createMethods.indexOf("CreateMethodAuto") < 0) {
deviceMenu.addItem(menuEntryComponent.createObject(deviceMenu, {text: qsTr("Reconfigure"), iconSource: "../images/configure.svg", functionName: "reconfigureThing"})) deviceMenu.addItem(menuEntryComponent.createObject(deviceMenu, {text: qsTr("Reconfigure"), iconSource: "../images/configure.svg", functionName: "reconfigureThing"}))
} }
deviceMenu.addItem(menuEntryComponent.createObject(deviceMenu, {text: qsTr("Details"), iconSource: "../images/info.svg", functionName: "thingDetails"}))
} }
function renameThing() { function renameThing() {
@ -91,6 +93,10 @@ SettingsPageBase {
configPage.aborted.connect(function() {pageStack.pop(root)}) configPage.aborted.connect(function() {pageStack.pop(root)})
} }
function thingDetails() {
pageStack.push(Qt.resolvedUrl("qrc:/ui/devicepages/DeviceDetailsPage.qml"), {thing: root.thing})
}
Component { Component {
id: menuEntryComponent id: menuEntryComponent
IconMenuItem { IconMenuItem {