2
* Copyright (C) 2013 Canonical, Ltd.
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.
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.
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/>.
22
property bool available: true
23
property bool shown: true
25
/* If your showable supports on demand content creation/destruction,
26
set this to false when destroyed and true when ready to be shown.
27
NOTE: You should load your content when "required" is true and
28
destroy when "required" is false
30
property bool created: true
31
property bool required
32
property bool __shouldShow: false
34
property list<QtObject> hides
35
property var showAnimation
36
property var hideAnimation
38
// automatically set the target on showAnimation and hideAnimation to be the
40
onShowAnimationChanged: if (showAnimation) showAnimation["target"] = showable
41
onHideAnimationChanged: if (hideAnimation) hideAnimation["target"] = showable
43
Component.onCompleted: required = shown;
45
function __hideOthers() {
47
for (i=0; i<hides.length; i++) {
62
if (created && __shouldShow) {
68
function showWithoutAnimation() {
72
function __reallyShow(animated) {
79
if (hideAnimation != undefined && hideAnimation.running) {
83
if (showAnimation != undefined) {
85
if (!showAnimation.running) {
86
showAnimation.restart()
89
showAnimation.start();
90
showAnimation.complete();
101
if (showAnimation != undefined && showAnimation.running) {
104
if (hideAnimation != undefined) {
105
if (!hideAnimation.running) {
106
hideAnimation.restart()
117
target: hideAnimation ? hideAnimation: null
119
if (!hideAnimation.running) {