import QtQuick 2.6 import Sailfish.Silica 1.0 import nl.netsoj.chris.Jellyfin 1.0 as J import ".." Page { id: pageRoot SilicaListView { id: listView anchors.fill: parent contentHeight: Theme.itemSizeLarge header: PageHeader { //: Page title: page for remote controlling other Jellyfin apps title: qsTr("Remote control") } model: J.RemoteDeviceList { id: deviceList apiClient: appWindow.apiClient scanning: pageRoot.status == PageStatus.Active } delegate: ListItem { property bool isConnected: model.jellyfinId === appWindow.playbackManager.controllingSessionId onClicked: deviceList.activateSession(appWindow.playbackManager, model.index) contentHeight: Theme.itemSizeMedium Icon { id: deviceIcon anchors { left: parent.left leftMargin: Theme.horizontalPageMargin verticalCenter: parent.verticalCenter } height: parent.contentHeight - 2 * Theme.paddingMedium width: height source: { if (model.deviceType == J.DeviceType.Phone) { return "image://theme/icon-m-device" } else if (model.deviceType == J.DeviceType.Tv) { // For the lack of a better icon return "image://theme/icon-m-device-landscape" } else if (model.deviceType == J.DeviceType.Computer) { return "image://theme/icon-m-computer" } else { //case J.DeviceType.Unknown: return "image://theme/icon-m-question" } } highlighted: parent.down || isConnected } Column { anchors { left: deviceIcon.right right: parent.right verticalCenter: parent.verticalCenter leftMargin: Theme.paddingLarge rightMargin: Theme.horizontalPageMargin } Label { id: deviceName //: List of devices item title in the form of text: qsTr("%1 — %2").arg(model.name).arg(model.deviceName) color: isConnected || highlighted ? Theme.highlightColor : Theme.primaryColor } Label { id: deviceUser text: model.userName color: isConnected || highlighted ? Theme.secondaryHighlightColor : Theme.secondaryColor } } } } }