Unity 8
Wallpaper.qml
1 /*
2  * Copyright (C) 2013-2016 Canonical, Ltd.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; version 3.
7  *
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 General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  */
16 
17 import QtQuick 2.4
18 import QtQuick.Window 2.2
19 import Ubuntu.Components 1.3
20 
21 Item {
22  id: root
23  property url source
24 
25  CrossFadeImage {
26  anchors.fill: parent
27  fillMode: Image.PreserveAspectCrop
28 
29  // Limit how much memory we reserve and avoid reloading when item size
30  // changes or is rotated by specifying sourceSize.
31  //
32  // FIXME: If the source image has a portrait aspect ratio, we should swap
33  // sourceSize.width and sourceSize.height to prevent blurriness from double
34  // scaling. We could easily do that with a tiny image loader to check
35  // the aspect ratio first, but when we change sourceSize, we lose all
36  // the benefits of CrossFadeImage. So we need to fix that component
37  // first to gracefully handle sourceSize changes (LP: #1599203).
38  readonly property int maxSize: Math.max(Screen.width, Screen.height)
39  sourceSize.width: 0
40  sourceSize.height: maxSize
41 
42  source: root.source
43  }
44 }