[Development] AplicationWindow, QQuickWindow, contentRotation and setting width and height of contentItem

Tomasz Olszak olszak.tomasz at gmail.com
Thu Aug 1 23:53:36 CEST 2013


I would like to make POC of automatic rotation of ApplicationWindow's
It can be simple solution for devices which have accelerometer only and
don't have system screen rotation.

Following mockup works:


Window {

    id: root

    /* In the end some kind of boolean property will turn on/off
following bindings or use transform property - don't decided yet*/

     property bool contentItemFollowsContentOrientation: false

    property bool __isPortrait: contentOrientation ===
Qt.PortraitOrientation || contentOrientation ===

    contentItem.x: __isPortrait ? 0 : root.width/2 - root.height/2

    contentItem.y: __isPortrait ? 0 : root.height/2 - root.width/2

    contentItem.width: __isPortrait ? root.width : root.height

    contentItem.height: __isPortrait ? root.height : root.width

    contentItem.rotation: (contentOrientation ==
Qt.LandscapeOrientation) ? 90 :

                          (contentOrientation ==
Qt.InvertedPortraitOrientation) ? 180 :

                          (contentOrientation ==
Qt.InvertedLandscapeOrientation) ? -90 : 0

    Rectangle {

        id: thisItemIsProperlyRotated




but only for square windows :) because following code have significant
impact on behavior of contentItem.with and contentItem.height bindings:

void QQuickWindowPrivate::initContentItem()



    q->connect(q, SIGNAL(widthChanged(int)),

            contentItem, SLOT(setWidth(int)));

    q->connect(q, SIGNAL(heightChanged(int)),

            contentItem, SLOT(setHeight(int)));




Shouldn't bindings be created instead of connections or maybe it was done
on purpose?
Do you see any risks of adding such feature?

Tomasz Olszak
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20130801/b27f2b1e/attachment.html>

More information about the Development mailing list