Unity 8
HalfLoopRotationAnimation.qml
1 /*
2  * Copyright (C) 2015 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 
19 SequentialAnimation {
20  id: root
21 
22  // set from outside
23  property int fromAngle
24  property int toAngle
25  property var info
26  property var shell
27 
28  readonly property bool flipShellDimensions: toAngle == 90 || toAngle == 270
29 
30  ScriptAction { script: {
31  info.transitioning = true;
32  shell.orientationAngle = root.toAngle;
33  shell.x = (orientedShell.width - shell.width) / 2
34  shell.y = (orientedShell.height - shell.height) / 2;
35  shell.transformOriginX = shell.width / 2;
36  shell.transformOriginY = shell.height / 2;
37  shell.updateFocusedAppOrientation();
38  } }
39  NumberAnimation {
40  target: shell
41  property: "transformRotationAngle"
42  from: root.fromAngle; to: root.toAngle
43  duration: rotationDuration; easing.type: rotationEasing
44  }
45  ScriptAction { script: { info.transitioning = false; } }
46 }