@@ -41,6 +41,7 @@ Rectangle {
41 SessionContainer {
41 SessionContainer {
42 id: sessionContainer
42 id: sessionContainer
43 anchors.fill: parent
43 anchors.fill: parent
44+ orientation: Qt.PortraitOrientation
@@ -112,6 +113,24 @@ Rectangle {
112 session: sessionContainerLoader.item ? sessionContainerLoader.item.session : null
113 session: sessionContainerLoader.item ? sessionContainerLoader.item.session : null
118+ anchors { left: parent.left; right: parent.right }
119+ text: "Rotate device \u27F3"
121+ var orientation = sessionContainerLoader.item.orientation
122+ if (orientation == Qt.PortraitOrientation) {
123+ orientation = Qt.LandscapeOrientation;
124+ } else if (orientation == Qt.LandscapeOrientation) {
125+ orientation = Qt.InvertedPortraitOrientation;
126+ } else if (orientation == Qt.InvertedPortraitOrientation) {
127+ orientation = Qt.InvertedLandscapeOrientation;
129+ orientation = Qt.PortraitOrientation;
131+ sessionContainerLoader.item.orientation = orientation;
@@ -263,5 +282,49 @@ Rectangle {
263 // wait for animation to end
282 // wait for animation to end
264 tryCompareFunction(function() { return isContainerAnimating(childContainer); }, false);
283 tryCompareFunction(function() { return isContainerAnimating(childContainer); }, false);
286+ function test_orientationPropagatedToChildren_data() {
287+ return [ { tag: "count=1", count: 1 },
288+ { tag: "count=4", count: 4 } ];
291+ /* Text orientation changes are propagated to all children immediately */
292+ function test_orientationPropagatedToChildren(data) {
293+ sessionCheckbox.checked = true;
294+ var sessionContainer = sessionContainerLoader.item;
295+ compare(sessionContainer.childSessions.count(), 0);
299+ for (i = 0; i < data.count; i++) {
300+ var session = ApplicationTest.addChildSession(sessionContainer.session,
302+ session.createSurface();
303+ sessionContainer.session.addChildSession(session);
305+ // Check child SessionContainer has orientation matching the parent
306+ var delegate = findChild(sessionContainer, "childDelegate" + i);
307+ var childContainer = findChild(delegate, "sessionContainer");
309+ tryCompare(sessionContainer, "orientation", sessionContainer.orientation);
311+ sessions.push(session);
314+ // Change orientation and verify all children updated
315+ sessionContainer.orientation = Qt.LandscapeOrientation;
317+ for (i = 0; i < data.count; i++) {
318+ var delegate = findChild(sessionContainer, "childDelegate" + i);
319+ var childContainer = findChild(delegate, "sessionContainer");
321+ tryCompare(sessionContainer, "orientation", sessionContainer.orientation);
325+ for (i = data.count-1; i >= 0; i--) {
326+ ApplicationTest.removeSession(sessions[i]);