From 20a6de82b48a88f51fef281aee9d15ffcd719bf6 Mon Sep 17 00:00:00 2001 From: Thomas Perl Date: Tue, 4 Feb 2014 23:50:41 +0100 Subject: [PATCH] Fallback cover art for podcast item --- touch/CoverArt.qml | 58 +++++++++++++++++++++++++++++++++++++++++++ touch/PodcastItem.qml | 6 ++--- 2 files changed, 60 insertions(+), 4 deletions(-) create mode 100644 touch/CoverArt.qml diff --git a/touch/CoverArt.qml b/touch/CoverArt.qml new file mode 100644 index 0000000..13ac387 --- /dev/null +++ b/touch/CoverArt.qml @@ -0,0 +1,58 @@ + + +/** + * + * 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 + +Item { + id: coverArt + + property string text + property alias source: cover.source + + Image { + id: cover + asynchronous: true + + opacity: source && status == Image.Ready + Behavior on opacity { PropertyAnimation { duration: 100 } } + + sourceSize.width: width + sourceSize.height: height + + width: parent.width + height: parent.height + } + + Rectangle { + opacity: 1 - cover.opacity + anchors.fill: cover + clip: true + + color: '#11ffffff' + + PLabel { + text: coverArt.text[0] + color: '#55ffffff' + anchors.centerIn: parent + font.pixelSize: parent.height * .8 + } + } +} diff --git a/touch/PodcastItem.qml b/touch/PodcastItem.qml index 8b1442e..690d377 100644 --- a/touch/PodcastItem.qml +++ b/touch/PodcastItem.qml @@ -31,7 +31,7 @@ ButtonArea { right: parent.right } - Image { + CoverArt { id: cover visible: !updating @@ -41,13 +41,11 @@ ButtonArea { verticalCenter: parent.verticalCenter } - sourceSize.width: width - sourceSize.height: height - width: 80 * pgst.scalef height: 80 * pgst.scalef source: coverart + text: title } PBusyIndicator {