2
* Copyright 2015 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/>.
18
import "../1.2/PageWrapperUtils.js" as Utils
23
\inqmlmodule Ubuntu.Components 1.1
25
\brief Internal class used by \l PageStack
32
The reference to the page object. This can be the page
33
itself (which is an Item), but also a url pointing to a QML file.
35
property var reference
38
The initialized page object, or null if the object needs to be created.
40
property Item object: null
43
This variable will be true if \l object holds an object that was created
44
from the given reference, and thus can be destroyed when no the page is deactivated.
46
property bool canDestroy: false
49
This value is updated when a PageWrapper is pushed to/popped from a PageStack.
58
if (pageWrapper.active) Utils.activate(pageWrapper);
59
else Utils.deactivate(pageWrapper);
66
Properties are use to initialize a new object, or if reference
67
is already an object, properties are copied to the object when activated.
68
Set properties before setting the reference.
70
property var properties
76
Utils.deactivate(pageWrapper);
77
if (pageWrapper.object) pageWrapper.object = null;
78
Utils.initPage(pageWrapper);
79
if (pageWrapper.active && reference) {
80
Utils.activate(pageWrapper);
87
Component.onDestruction: {
88
Utils.deactivate(pageWrapper);
89
if (pageWrapper.canDestroy) Utils.destroyObject(pageWrapper);
94
Destroy \l object. Only call this function if \l canDestroy
96
function destroyObject() {
97
Utils.destroyObject(pageWrapper);