Unity 8
AbstractStage.qml
1 /*
2  * Copyright (C) 2015-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 Ubuntu.Components 1.3
19 import GSettings 1.0
20 
21 FocusScope {
22  id: root
23 
24  // Controls to be set from outside
25  property QtObject applicationManager
26  property QtObject topLevelSurfaceList
27  property bool altTabPressed
28  property url background
29  property bool beingResized
30  property int dragAreaWidth
31  property real dragProgress // How far left the stage has been dragged, used externally by tutorial code
32  property bool interactive
33  property real inverseProgress // This is the progress for left edge drags, in pixels.
34  property bool keepDashRunning: true
35  property real maximizedAppTopMargin
36  property real nativeHeight
37  property real nativeWidth
38  property QtObject orientations
39  property int shellOrientation
40  property int shellOrientationAngle
41  property bool spreadEnabled: true // If false, animations and right edge will be disabled
42  property bool suspended
43  // A Stage should paint a wallpaper etc over its full size but not use the margins for window placement
44  property int leftMargin: 0
45  property alias paintBackground: background.visible
46 
47  // To be read from outside
48  property var mainApp: null
49  property int mainAppWindowOrientationAngle: 0
50  property bool orientationChangesEnabled
51  property int supportedOrientations: Qt.PortraitOrientation
52  | Qt.LandscapeOrientation
53  | Qt.InvertedPortraitOrientation
54  | Qt.InvertedLandscapeOrientation
55 
56  signal stageAboutToBeUnloaded
57  signal itemSnapshotRequested(Item item)
58 
59  // Shared code for use in stage implementations
60  GSettings {
61  id: lifecycleExceptions
62  schema.id: "com.canonical.qtmir"
63  }
64 
65  function isExemptFromLifecycle(appId) {
66  var shortAppId = appId.split('_')[0];
67  for (var i = 0; i < lifecycleExceptions.lifecycleExemptAppids.length; i++) {
68  if (shortAppId === lifecycleExceptions.lifecycleExemptAppids[i]) {
69  return true;
70  }
71  }
72  return false;
73  }
74 
75  Rectangle {
76  id: background
77  color: "#060606"
78  anchors.fill: parent
79  }
80 }