@@ -360,6 +360,68 @@ Item {
360360 PropertyAction { target: windowScreenshot; property: "visible"; value: false }
361361 ScriptAction { script: { windowScreenshot.discard(); } }
362362 }
363+ },
364+ Transition {
365+ from: "0"
366+ to: "180"
367+ enabled: ready
368+ SequentialAnimation {
369+ PropertyAction { target: shell; property: "y"; value: 0 }
370+ PropertyAction { target: shell; property: "transformOriginX"; value: orientedShell.width / 2 }
371+ PropertyAction { target: shell; property: "transformOriginY"; value: orientedShell.height / 2 }
372+
373+ NumberAnimation { target: shell; property: "transformRotationAngle"; from: 0; to: 180; duration: rotationDuration; easing.type: rotationEasing }
374+ }
375+ },
376+ Transition {
377+ from: "180"
378+ to: "0"
379+ enabled: ready
380+ SequentialAnimation {
381+ PropertyAction { target: shell; property: "y"; value: 0 }
382+ PropertyAction { target: shell; property: "transformOriginX"; value: orientedShell.width / 2 }
383+ PropertyAction { target: shell; property: "transformOriginY"; value: orientedShell.height / 2 }
384+
385+ NumberAnimation { target: shell; property: "transformRotationAngle"; from: 180; to: 0; duration: rotationDuration; easing.type: rotationEasing }
386+ }
387+ },
388+ Transition {
389+ from: "90"
390+ to: "270"
391+ enabled: ready
392+ SequentialAnimation {
393+ PropertyAction { target: shell; property: "x"; value: -(orientedShell.height - orientedShell.width) / 2 }
394+ PropertyAction { target: shell; property: "y"; value: (orientedShell.height - orientedShell.width) / 2 }
395+ PropertyAction { target: shell; property: "transformOriginX"; value: orientedShell.height / 2 }
396+ PropertyAction { target: shell; property: "transformOriginY"; value: orientedShell.width / 2 }
397+
398+ NumberAnimation { target: shell; property: "transformRotationAngle"; from: 90; to: 270; duration: rotationDuration; easing.type: rotationEasing }
399+
400+ // Explicitly apply state "270" values as Qt doesn't seem to properly apply them after the transition is done
401+ PropertyAction { target: shell; property: "x"; value: 0 }
402+ PropertyAction { target: shell; property: "y"; value: 0 }
403+ PropertyAction { target: shell; property: "transformOriginX"; value: orientedShell.height / 2 }
404+ PropertyAction { target: shell; property: "transformOriginY"; value: orientedShell.height / 2 }
405+ }
406+ },
407+ Transition {
408+ from: "270"
409+ to: "90"
410+ enabled: ready
411+ SequentialAnimation {
412+ PropertyAction { target: shell; property: "x"; value: -(orientedShell.height - orientedShell.width) / 2 }
413+ PropertyAction { target: shell; property: "y"; value: (orientedShell.height - orientedShell.width) / 2 }
414+ PropertyAction { target: shell; property: "transformOriginX"; value: orientedShell.height / 2 }
415+ PropertyAction { target: shell; property: "transformOriginY"; value: orientedShell.width / 2 }
416+
417+ NumberAnimation { target: shell; property: "transformRotationAngle"; from: 270; to: 90; duration: rotationDuration; easing.type: rotationEasing }
418+
419+ // Explicitly apply state "90" values as Qt doesn't seem to properly apply them after the transition is done
420+ PropertyAction { target: shell; property: "x"; value: 0 }
421+ PropertyAction { target: shell; property: "y"; value: 0 }
422+ PropertyAction { target: shell; property: "transformOriginX"; value: orientedShell.width / 2 }
423+ PropertyAction { target: shell; property: "transformOriginY"; value: orientedShell.width / 2 }
424+ }
363425 }
364426 ]
365427