X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=remote%2Fqml%2Fpages%2FChannelSelect.qml;fp=remote%2Fqml%2Fpages%2FChannelSelect.qml;h=43c6cf7ec1452bc3bf7a49261b38950960525907;hb=857fbdc12041b7f01f45d4dcf2208f9dccf29294;hp=0000000000000000000000000000000000000000;hpb=a5fc8a4255dabc9d5d514e597a7b19ffd5baf793;p=xinema.git diff --git a/remote/qml/pages/ChannelSelect.qml b/remote/qml/pages/ChannelSelect.qml new file mode 100644 index 0000000..43c6cf7 --- /dev/null +++ b/remote/qml/pages/ChannelSelect.qml @@ -0,0 +1,78 @@ +import QtQuick 2.0 +import Sailfish.Silica 1.0 + +ValueButton +{ + id: channelSelect + + property var channels: null + property int currentChannel: -1 + property bool _channelsAvailable: channels && channels.length + enabled: _channelsAvailable + + value: (_channelsAvailable ? currentChannel>=0 ? (currentChannel+1)+": "+channels[currentChannel] : "0: (off)" : "(not available)") + + onClicked: + { + if(_channelsAvailable) + pageStack.push(selectDialog); + } + + Component + { + id: selectDialog + + Page + { + id: page + + function selectChannel(index) + { + channelSelect.currentChannel = index; + pageStack.pop(); + } + + SilicaFlickable + { + width: parent.width + contentHeight: column.height + + Column + { + id: column + width: parent.width + spacing: Theme.paddingLarge + + PageHeader + { + id: header + title: channelSelect.label + } + + ChannelItem + { + channelIndex: 0 + channelName: "(off)" + down: channelSelect.currentChannel+1==channelIndex + + onClicked: page.selectChannel(channelIndex-1); + } + Repeater + { + id: repeater + model: channelSelect.channels + + ChannelItem + { + channelIndex: index+1 + channelName: modelData + down: channelSelect.currentChannel+1==channelIndex + + onClicked: page.selectChannel(channelIndex-1); + } + } + } + } + } + } +}