Nokia Belle Refresh - QT 4.8.0 - Landscape mode/rendering changed/damaged
Nokia Belle Refresh - QT 4.8.0 - Landscape mode/rendering changed/damaged
Latest Nokia Belle firmware delivers QT 4.8.0. The coordinate system and rendering differs between portrait and landscape mode. Portrait mode behaves like QT 4.7.4 . Landscape mode is totaly different in two ways (maybe more).
[B]1. Coordinate system[/B]
Lets have a look on the upper left corner (screen dimension is 360x640 N8, E7):
[I]Portrait Mode:[/I]
[FONT="Courier New"]QT 4.7.4 => X: 0 Y: 0
QT 4.8.0 => X: 0 Y: 0[/FONT]
[I]Landscape Mode[/I]
[FONT="Courier New"]QT 4.7.4 => X: 0 Y: 0
QT 4.8.0 => X: [B]360[/B] Y: 0[/FONT]
It seems that the QML root object is only rotated (by the new animation) and still behaves in portrait mode. How can i get the old behavior? How to disable the animation?
[B]2. Rendering landscape mode QT 4.8.0[/B]
While rendering in portrait mode everything behaves like QT 4.7.4 .
When using a QGLWidget as viewport ([FONT="Courier New"]QmlApplicationViewer::setViewport(new QGLWidget(QGLFormat::defaultFormat()));[/FONT]) than rendering in landscape mode is totaly damaged. Application is only show on left side of the screen and covers only 50% of the screen.
Same behavior can be reproduced with unchanged viewport by setting the attribute Qt::WA_TranslucentBackground ([FONT="Courier New"]QmlApplicationViewer::setAttribute(Qt::WA_TranslucentBackground);[/FONT]).
So! I know there no support anymore by Nokia (Update, Bugfixes, ...) for Symbian. But is there a known workaround to get my applications working with Nokia Belle Refresh?
Given hint at [URL="http://www.developer.nokia.com/Community/Wiki/Changes_in_Symbian_Belle_and_Qt_4.7.4"]Wiki Changes QT 4.8.x[/URL] to set attribute Qt::WA_SymbianNoSystemRotation does not change anything.
All hints and advises are welcome.
Best regards
P.
Re: Nokia Belle Refresh - QT 4.8.0 - Landscape mode/rendering changed/damaged
No solutions, but I observed that
QApplication::setGraphicsSystem("raster");
also causes landscape rendering to misbehave badly, resulting in something that resembles upside down portrait instead of the intended landscape.
Re: Nokia Belle Refresh - QT 4.8.0 - Landscape mode/rendering changed/damaged
Ok, made a few test builds. For me, if I use QApplication::setGraphicsSystem("raster");
I can get it to work almost like it was by using
QApplication::setGraphicsSystem("raster");
QmlApplicationViewer viewer;
viewer.setProperty("orientationMethod", 1);
Landscape mode works and is sticky, provided the device is in landscape at application start.
If the device is in portrait, it renders as if in landscape, but upside down. It failed differently in 4.7.4.
So the display bitmap 640x360 is centered on 360x640 screen, rotated 180 degrees. So the left and right edges are not visible.
This also is sticky, so the only remedy for me is to exit the app, rotate phone to landscape, restart. At least it works, but will not make it through the store QA.
[URL="http://qt-project.org/wiki/Qt-4-8-Compatibility-Issues-Symbian"]/Qt-4-8-Compatibility-Issues-Symbian[/URL] seems to document the same misery.
Re: Nokia Belle Refresh - QT 4.8.0 - Landscape mode/rendering changed/damaged
Not sure about the original poster's question, but one thing to avoid is locking orientation in the CPP code when using Qt Quick Components (QQC) Page element.
If using QQC Page, orientation locking should be done in the QML only and code like this should be avoided:
[INDENT]viewer.setOrientation( QmlApplicationViewer::ScreenOrientationLockLandscape );[/INDENT]