diff --git a/nymea-app/resources.qrc b/nymea-app/resources.qrc
index 7db7c353..4a4d41d0 100644
--- a/nymea-app/resources.qrc
+++ b/nymea-app/resources.qrc
@@ -78,6 +78,11 @@
ui/devicepages/LightDevicePage.qml
ui/devicepages/FingerprintReaderDevicePage.qml
ui/devicelistpages/GenericDeviceListPage.qml
+ ui/devicelistpages/ClosablesDeviceListPage.qml
+ ui/devicelistpages/GarageDeviceListPage.qml
+ ui/devicelistpages/AwningDeviceListPage.qml
+ ui/devicelistpages/ShutterDeviceListPage.qml
+ ui/devicelistpages/BlindDeviceListPage.qml
ui/devicelistpages/LightsDeviceListPage.qml
ui/devicelistpages/SensorsDeviceListPage.qml
ui/devicelistpages/WeatherDeviceListPage.qml
@@ -138,6 +143,5 @@
ui/system/MqttPolicyPage.qml
ui/devicepages/DeviceLogPage.qml
ui/components/Led.qml
- ui/devicelistpages/ClosablesDeviceListPage.qml
diff --git a/nymea-app/ui/Nymea.qml b/nymea-app/ui/Nymea.qml
index 939f8344..a3db35f3 100644
--- a/nymea-app/ui/Nymea.qml
+++ b/nymea-app/ui/Nymea.qml
@@ -175,6 +175,7 @@ ApplicationWindow {
return Qt.resolvedUrl("images/DeviceIconBlind.svg")
case "garagegate":
return Qt.resolvedUrl("images/shutter/shutter-100.svg")
+ case "awning":
case "extendedawning":
return Qt.resolvedUrl("images/awning/awning-100.svg")
case "battery":
diff --git a/nymea-app/ui/devicelistpages/AwningDeviceListPage.qml b/nymea-app/ui/devicelistpages/AwningDeviceListPage.qml
new file mode 100644
index 00000000..f50d3a03
--- /dev/null
+++ b/nymea-app/ui/devicelistpages/AwningDeviceListPage.qml
@@ -0,0 +1,7 @@
+import QtQuick 2.9
+
+ClosablesDeviceListPage {
+ title: qsTr("Awnings")
+ iconBasename: "../images/awning/awning"
+ invertControls: true
+}
diff --git a/nymea-app/ui/devicelistpages/BlindDeviceListPage.qml b/nymea-app/ui/devicelistpages/BlindDeviceListPage.qml
new file mode 100644
index 00000000..d00487ea
--- /dev/null
+++ b/nymea-app/ui/devicelistpages/BlindDeviceListPage.qml
@@ -0,0 +1,6 @@
+import QtQuick 2.9
+
+ClosablesDeviceListPage {
+ title: qsTr("Blinds")
+ iconBasename: "../images/shutter/shutter"
+}
diff --git a/nymea-app/ui/devicelistpages/ClosablesDeviceListPage.qml b/nymea-app/ui/devicelistpages/ClosablesDeviceListPage.qml
index 2eb852d5..12cb9291 100644
--- a/nymea-app/ui/devicelistpages/ClosablesDeviceListPage.qml
+++ b/nymea-app/ui/devicelistpages/ClosablesDeviceListPage.qml
@@ -9,6 +9,10 @@ import "../components"
DeviceListPageBase {
id: root
+ property string iconBasename
+
+ property bool invertControls: false
+
header: GuhHeader {
id: header
onBackPressed: pageStack.pop()
@@ -82,8 +86,8 @@ DeviceListPageBase {
? app.accentColor
: keyColor
name: itemDelegate.percentageStateType
- ? "../images/shutter/shutter-" + app.pad(Math.round(itemDelegate.percentageState.value / 10) * 10, 3) + ".svg"
- : "../images/shutter/shutter-050.svg"
+ ? root.iconBasename + "-" + app.pad(Math.round(itemDelegate.percentageState.value / 10) * 10, 3) + ".svg"
+ : root.iconBasename + "-050.svg"
}
}
@@ -101,6 +105,7 @@ DeviceListPageBase {
id: shutterControls
height: parent.height
device: itemDelegate.device
+ invert: root.invertControls
}
}
}
diff --git a/nymea-app/ui/devicelistpages/GarageDeviceListPage.qml b/nymea-app/ui/devicelistpages/GarageDeviceListPage.qml
new file mode 100644
index 00000000..efc3eefd
--- /dev/null
+++ b/nymea-app/ui/devicelistpages/GarageDeviceListPage.qml
@@ -0,0 +1,6 @@
+import QtQuick 2.9
+
+ClosablesDeviceListPage {
+ title: qsTr("Garage gates")
+ iconBasename: "../images/shutter/shutter"
+}
diff --git a/nymea-app/ui/devicelistpages/ShutterDeviceListPage.qml b/nymea-app/ui/devicelistpages/ShutterDeviceListPage.qml
new file mode 100644
index 00000000..b82517bd
--- /dev/null
+++ b/nymea-app/ui/devicelistpages/ShutterDeviceListPage.qml
@@ -0,0 +1,6 @@
+import QtQuick 2.9
+
+ClosablesDeviceListPage {
+ title: qsTr("Shutters")
+ iconBasename: "../images/shutter/shutter"
+}
diff --git a/nymea-app/ui/mainviews/DevicesPageDelegate.qml b/nymea-app/ui/mainviews/DevicesPageDelegate.qml
index 4c080f07..a5f94f49 100644
--- a/nymea-app/ui/mainviews/DevicesPageDelegate.qml
+++ b/nymea-app/ui/mainviews/DevicesPageDelegate.qml
@@ -28,14 +28,20 @@ MainPageTile {
case "smartmeter":
page ="SmartMeterDeviceListPage.qml";
break;
- case "awning":
- case "blind":
- case "shutter":
case "garagegate":
+ page = "GarageDeviceListPage.qml";
+ break;
+ case "awning":
case "extendedAwning":
+ page = "AwningDeviceListPage.qml";
+ break;
+ case "blind":
case "extendedBlind":
+ page = "ShutterDeviceListPage.qml";
+ break;
+ case "shutter":
case "extendedShutter":
- page = "ClosablesDeviceListPage.qml";
+ page = "ShutterDeviceListPage.qml";
break;
default:
page = "GenericDeviceListPage.qml"