Unity 8
BackgroundBlur.qml
1 /*
2  * Copyright (C) 2016 Canonical, Ltd.
3  * Copyright (C) 2022 UBports Foundation
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; version 3.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program. If not, see <http://www.gnu.org/licenses/>.
16  */
17 
18 import QtQuick 2.12
19 import Ubuntu.Components 1.3
20 import QtGraphicalEffects 1.0
21 
22 Item {
23  id: root
24 
25  property Item sourceItem
26  property rect blurRect: Qt.rect(0,0,0,0)
27  property bool occluding: false
28 
29  ShaderEffectSource {
30  id: shaderEffectSource
31  sourceItem: root.sourceItem
32  hideSource: root.occluding
33  sourceRect: root.blurRect
34  live: false
35  }
36 
37  FastBlur {
38  id: fastBlur
39  anchors.fill: parent
40  source: shaderEffectSource
41  radius: units.gu(3)
42  cached: false
43  }
44 
45  Timer {
46  interval: 48
47  repeat: root.visible
48  running: repeat
49  onTriggered: shaderEffectSource.scheduleUpdate()
50  }
51  }