2
* Copyright 2012 Canonical Ltd.
4
* This program is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU Lesser General Public License as published by
6
* the Free Software Foundation; version 3.
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU Lesser General Public License for more details.
13
* You should have received a copy of the GNU Lesser General Public License
14
* along with this program. If not, see <http://www.gnu.org/licenses/>.
22
property url fallbackSource
23
property bool fallbackRequired: false
25
function isSourceDefined(sourceUrl) {
26
return sourceUrl != "" && sourceUrl != undefined
29
function tryLoadingFallbackSource() {
30
if (isSourceDefined(fallbackSource)) {
31
source = fallbackSource
35
function checkStatus() {
36
if (!isSourceDefined(source) || (status == Image.Error && source != fallbackSource)) {
37
fallbackRequired = true
38
tryLoadingFallbackSource()
42
onSourceChanged: fallbackRequired = false
43
onFallbackSourceChanged: if (fallbackRequired) tryLoadingFallbackSource()
44
onStatusChanged: checkStatus()
45
Component.onCompleted: checkStatus()