diff --git a/common/GPodderDirectorySearchModel.qml b/common/GPodderDirectorySearchModel.qml new file mode 100644 index 0000000..5ff54dc --- /dev/null +++ b/common/GPodderDirectorySearchModel.qml @@ -0,0 +1,49 @@ + +/** + * + * gPodder QML UI Reference Implementation + * Copyright (c) 2013, 2014, Thomas Perl + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + * + */ + +import QtQuick 2.0 + +ListModel { + id: directorySearchModel + + function search(query, callback) { + clear(); + + var result = new XMLHttpRequest(); + result.onreadystatechange = function() { + if (result.readyState == XMLHttpRequest.DONE) { + var data = JSON.parse(result.responseText); + data.sort(function (a, b) { + // Sort by subscriber count, descending + return b.subscribers - a.subscribers; + }); + for (var i=0; i + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + * + */ + +import QtQuick 2.0 + +ButtonArea { + id: podcastItem + + transparent: true + + height: 100 * pgst.scalef + anchors { + left: parent.left + right: parent.right + } + + Image { + id: cover + + anchors { + left: parent.left + leftMargin: 10 * pgst.scalef + verticalCenter: parent.verticalCenter + } + + sourceSize.width: width + sourceSize.height: height + + width: 80 * pgst.scalef + height: 80 * pgst.scalef + + source: scaled_logo_url + } + + PLabel { + anchors { + left: cover.right + leftMargin: 10 * pgst.scalef + rightMargin: 10 * pgst.scalef + right: subcount.left + verticalCenter: parent.verticalCenter + } + + elide: Text.ElideRight + text: title + } + + PLabel { + id: subcount + anchors { + right: parent.right + rightMargin: 10 * pgst.scalef + verticalCenter: parent.verticalCenter + } + + text: subscribers + } +} diff --git a/touch/StartPage.qml b/touch/StartPage.qml index 891172f..4546b11 100644 --- a/touch/StartPage.qml +++ b/touch/StartPage.qml @@ -204,8 +204,8 @@ SlidePage { StartPageButton { id: recommendationsPane - title: 'Recommendations' - onClicked: pgst.loadPage('Settings.qml'); + title: 'gpodder.net' + onClicked: pgst.loadPage('Directory.qml'); Row { anchors { diff --git a/touch/Subscribe.qml b/touch/Subscribe.qml index 1736ec9..d3673bd 100644 --- a/touch/Subscribe.qml +++ b/touch/Subscribe.qml @@ -55,6 +55,19 @@ SlidePage { } } + ButtonArea { + id: directory + width: input.width + height: input.height + + PLabel { + anchors.centerIn: parent + text: 'gpodder.net' + } + + onClicked: pgst.loadPage('Directory.qml'); + } + PBusyIndicator { id: loading visible: false