| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
qmake/generators/makefile.cpp
qmake/generators/win32/msbuild_objectmodel.cpp
qmake/generators/win32/msvc_vcxproj.cpp
src/corelib/global/qnamespace.h
src/gui/text/qtextcontrol.cpp
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Avkon calls BeginFullScreen() and EndFullScreen() to trigger the
fullscreen system transition effects for application exit, however
the calls are made too late for Qt apps because the widgets are
already destroyed. Instead, the effects are triggered explicitly
from Qt, before closing the widgets, or from aboutToQuit, whichever
comes first.
Task-number: QT-4718
Reviewed-by: Jani Hautakangas
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When raster graphics system is forced and the HW was capable enough,
we still tried to use SetSurfaceTransparency() on the RWindow to
enable semi-transparency, which is wrong as it only works for
windows that have a separate surface.
Reviewed-by: Jani Hautakangas
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The backing store tracker's registerWidget and unregisterWidget
functions are called when EPartiallyVisible and ENotVisible events
come from WSERV. However if an application sends its window group
to background right after caling show() and before entering the
event loop, there is a chance that all the application will receive
is an ENotVisible event, leading to calling unregisterWidget() without
a previous registerWidget(). In this case the backing store was
not destroyed and the application was consuming GPU memory even while
it was staying in background. This patch ensures registerWidget() is
called always before unregisterWidget() in the Symbian-specific
event handler for ENotVisible, and replaces the previous patch,
a12d41076919a133e63de63dff5c1a131a0564e4, which caused regression
in autotests.
Task-number: QTBUG-18493
Reviewed-by: Gareth Stockwell
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Applications can request the usage of RWindow::FixNativeOrientation()
by setting the new Qt::WA_SymbianNoSystemRotation attribute for their
fullscreen top-level widget (which in practice will either be a
graphics or declarative view). This will fix the underlying EGL
window surface and the QWidget dimensions to the dimension of the
native orientation of the device (typically portrait). The default
auto-rotation can be left enabled, however it will be up to the
application to rotate the drawing. Global notifications, VKB, etc.
will still appear in the proper orientation. Another benefit is
improved performance in the non-native orientation.
Task-number: QTBUG-17742
Reviewed-by: Jason Barron
Reviewed-by: Jani Hautakangas
|
| | |
| | |
| | |
| | |
| | | |
Task-number: QTMOBILITY-1494
Reviewed-by: Gareth Stockwell
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fullscreen with softkeys dialogs would draw twice when orientation
was changed to landscape, causing flicker. This happened because
status pane change event and layout change event both caused
redraw with different client area size. Added a check to avoid
handling client area change on account of status pane change, if status
pane is not visible and there was no change in its visibility.
Task-number: QTBUG-18496
Reviewed-by: Sami Merila
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It was previously not possible to render text (QPainter::drawText)
in a secondary thread on Symbian, it always resulted in some
kind of panic. This patch corrects it. For S60 5.0 and earlier
the behavior is not changed, threaded text rendering is only
supported on Symbian^3 and newer. This also means
QFontDatabase::supportsThreadedFontRendering() will return
true from now on, but only on Symbian^3 and higher.
Task-number: QTBUG-18516
Reviewed-by: mread
|
|\ \
| |/
| |
| |
| |
| | |
Conflicts:
src/gui/text/qfontengine_mac.mm
tests/auto/qdiriterator/tst_qdiriterator.cpp
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Dialog softkeys are covered by Qt Application's Softkeys
Updating softkeys while showing a native dialog, pushes Qt application CBA
on top of dialog CBA. Therefore, native dialog can not be dismissed.
As a workaround, when gaining focus to a window, do not update application
softkeys, if there is a native dialog shown.
Task-number: QTBUG-18486
Reviewed-by: mread
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fullscreen child windows of non-fullscreen main application window
displayed softkeys and status bar when they shouldn't. Fixed it so that
fullscreen windows never display these items (except for softkeys when
explicitly specified to do so.)
Task-number: QTTH-1207
Reviewed-by: Sami Merila
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
doc/src/declarative/example-slideswitch.qdoc
doc/src/development/qmake-manual.qdoc
doc/src/snippets/code/doc_src_qmake-manual.pro
doc/src/snippets/code/doc_src_qtscript.qdoc
src/corelib/animation/qabstractanimation.cpp
src/s60installs/bwins/QtOpenGLu.def
src/s60installs/eabi/QtOpenGLu.def
src/s60installs/eabi/QtOpenVGu.def
tests/auto/qdir/qdir.pro
tests/auto/qsslsocket/tst_qsslsocket.cpp
tools/qdoc3/doc/qdoc-manual.qdocconf
|
| |
| |
| |
| |
| |
| |
| |
| | |
Now shows the CBA for each window that defines softkeys even if
topmost parent is fullscreen.
Task-number: QTBUG-4953
Reviewed-by: Sami Merila
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For fullscreen QDeclarativeViews that lock their orientation to the
native orientation of the device an additional performance gain can
be achieved by calling FixNativeOrientation on the underlying RWindow.
Such apps will either work in a single orientation only, or they will
handle rotation themselves, by using QPainter transformations and
opting out from the standard Avkon auto-rotation. In any of these cases
there is no need for the lower level layers of the system to handle
graphics surface rotation, the app is "fixed" to the native orientation
from their point of view, therefore it is safe to call
FixNativeOrientation().
Task-number: QTBUG-17742
Reviewed-by: Jason Barron
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously, the following rules applies to the creation and blitting of
the Symbian raster backing store:
1. Creation of backing store with an alpha channel:
Backing store has an alpha channel only if !QWidget::isOpaque.
2. Pre-filling of backing store prior to paint loop:
Backing store is filled with transparent pixels if
!QWidget::isOpaque.
3. Blitting of backing store:
CGraphicsContext::EDrawModeWriteAlpha is used (meaning that backing
store alpha values are propagated into the frame buffer), if
QWidget::isOpaque.
In order for the direct camera viewfinder to be visible on DSA devices,
alpha=0 must be written into the framebuffer in the region where the
viewfinder will be displayed. This requires a backing store with an alpha
channel (1), use of CGraphicsContext::EDrawModeWriteAlpha (3), but not
pre-filling of the entire backing store (2).
This patch adds a new enum value, QWExtra::BlitWriteAlpha, which can be
used by camera backends to achieve the desired behaviour.
Task-number: QTMOBILITY-1278
Reviewed-by: Jani Hautakangas
|
|\ \
| |/
| |
| |
| |
| |
| | |
Conflicts:
mkspecs/common/symbian/symbian.conf
src/s60installs/bwins/QtGuiu.def
src/s60installs/eabi/QtGuiu.def
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add dynamic GPU chip detection on Symbian to decide if
translucent EGL surfaces can be used. With 32MB GPU memory
there is not enough memory to create for example transparent
video overlay widgets and that's why hw surfaces must not
be used.
Task-number: QTBUG-18024
Reviewed-by: Jason Barron
|
| |
| |
| |
| | |
Reviewed-by: TRUSTME
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When using TV-out, the TV display can be used as an independent screen.
By default the content shown there is a clone of the device screen,
however from now on parenting a widget to QDesktopWidget::screen(1)
and calling show() will turn off cloning and have the widget shown
instead. screenCount() and the screenCountChanged signal can be used
to detect the availability of the secondary display, just like on other
platforms.
Task-number: QT-830
Reviewed-by: Sami Merila
Reviewed-by: Jani Hautakangas
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
By default Symbian devices use fullscreen editing mode. However, in the
latest AVKON releases a partial virtual keyboard is supported. Support
the non-fullscreen editing mode from QCoeFepInputContext.
The non-fullscreen editing mode is only supported for Symbian^3 and
only for graphicsview-based solutions (QGraphicsView, QGraphicsWebView,
QDeclarativeView, ...). When native side indicates that the keyboard
opens, the graphicsview is possibly translated so that the text cursor
position is ensured to be visible. When keyboard closes, the
translation is removed. If the graphicsview contains vertical scrollbar,
the whole view is resized to the area above the keyboard, since
translating it, would move the upper part of the scrollbar out of
screen area.
There is a new exported private API to control when partial vkb is
used.
Task-number: QTBUG-16572
Reviewed-by: axis
Reviewed-by: Mrudul Pendharkar
Reviewed-by: Laszlo Agocs
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This patch replaces the usage of old flag with new flags which
indicate availability of EGL surface transparency
SYMBIAN_GRAPHICS_SET_SURFACE_TRANSPARENCY_AVAILABLE and
availability of Symbian trasition effects API support
SYMBIAN_GRAPHICS_TRANSITION_EFFECTS_SIGNALING_AVAILABE.
Task-number: QTBUG-16822
Reviewed-by: Jason Barron
|
|\ \
| | |
| | |
| | |
| | | |
Conflicts:
doc/src/development/qmake-manual.qdoc
|
| |\ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
More specifically, QApplication::keyboardInputLocale() and
QApplication::keyboardInputDirection().
Task: QTBUG-15600
RevBy: Sami Merila
|
|\ \ \ \
| | |_|/
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
doc/src/development/qmake-manual.qdoc
mkspecs/symbian-gcce/qmake.conf
qmake/project.cpp
src/corelib/global/qnamespace.qdoc
src/declarative/graphicsitems/qdeclarativetext.cpp
src/gui/text/qtextdocumentlayout.cpp
src/gui/text/qtextdocumentlayout_p.h
tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp
tests/auto/networkselftest/networkselftest.pro
tests/auto/qscriptengine/tst_qscriptengine.cpp
tools/designer/src/components/signalsloteditor/signalslot_utils.cpp
tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp
tools/qdoc3/test/qt-build-docs.qdocconf
tools/qdoc3/test/qt-html-templates.qdocconf
tools/qdoc3/test/qt-html-templates_zh_CN.qdocconf
tools/qdoc3/test/qt.qdocconf
tools/qdoc3/test/qt_ja_JP.qdocconf
tools/qdoc3/test/qt_zh_CN.qdocconf
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Resizing native child window like QVideoWidget caused
S60 cba and status pane to appear.
Task-number: QTBUG-17040
Reviewed-by: Gareth Stockwell
|
|\ \ \ \
| |_|_|/
|/| | |
| | | |
| | | |
| | | | |
Conflicts:
src/gui/kernel/qapplication_s60.cpp
src/gui/text/qfontdatabase_s60.cpp
|
| | | | |
|
|\ \ \ \
| |/ / /
|/| / /
| |/ /
| | |
| | | |
Conflicts:
configure
src/network/bearer/bearer.pri
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This patch finally implements the missing application font support on
Symbian. QFontDatabase's addApplicationFont[FromData],
applicationFontFamilies and removeApplicationFont are now functional and
allow an application to load, use and unload fonts at run-time.
The underlying Symbian API comes with some restrictions/specialties.
Most of them are worked around in this patch, the missing ones are left
as part of QTBUG-16514:
- The font file must be a file, not a memory buffer. Web fonts and qrc
fonts come as memory buffers. These buffers are saved to a temporary
.ttf file and the file is loaded by the underlying Symbian API. The
temporary file can only be deleted after the font is unloaded.
- The font file must be in a public location in order to be loadable by
Symbian. It can for example not reside in the private application
directory. Therefore, all application fonts (also those that are on the
file system) become a temporary .ttf file in c:\temp\.
- Symbian3/PR2 will come with a font table API which provides direct
access to font tables. Symbian3/PR1 and below are missing this API,
therefore, an own TFontStore is (ab)used to read font tables out of a
font. This patch is considering both code paths in several occasions,
making the Qt Symbian font implementation significantly less
maintainable.
- The fonts are loaded into Symbian's central font server. Loaded fonts
from different processes can have colliding font typeface names (not
file names) on that server. The server does not separate loaded fonts by
their origin processes. Working around such collisions is part of
QTBUG-16514.
The number of fonts loadable at the same time by a Qt application is
limited to the random value 5. Just to prevent abuse of the font
server's memory.
As usual, this patch was looked at by colleagues, and it was adjusted
according to the feedback. But since the bus factor for the
interaction of Qt's and Symbian's font systems is 1, I reviewed this
patch, myself.
Task-Number: QTBUG-6611
Autotest: tst_QFontDatabase::addAppFont
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When an app is in the background and creates a window with softkeys,
the softkeys are not updated when the app comes to the foreground, so
they look faded. This change updates the softkeys when the app comes
to the forground.
Task-number: QTBUG-16110
Reviewed-by: Jason Barron
|
|\ \ \
| |/ /
| | /
| |/
|/|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
examples/webkit/imageanalyzer/imageanalyzer.h
examples/webkit/imageanalyzer/mainwindow.h
mkspecs/unsupported/qws/linux-x86-openkode-g++/qplatformdefs.h
src/corelib/io/qfsfileengine_iterator_unix.cpp
src/corelib/io/qfsfileengine_iterator_win.cpp
src/corelib/kernel/qcoreapplication.cpp
src/network/access/qnetworkaccessdatabackend.cpp
src/plugins/bearer/connman/qconnmanservice_linux.cpp
src/plugins/platforms/openvglite/qwindowsurface_vglite.h
src/s60installs/bwins/QtCoreu.def
src/s60installs/eabi/QtCoreu.def
src/s60installs/s60installs.pro
tools/assistant/tools/assistant/helpviewer_qwv.h
tools/qdoc3/test/qt-html-templates.qdocconf
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When a Symbian application is launched using RApaLsSession::StartApp,
command line parameters can be given with CApaCommandLine::SetTailEndL
and will now be correctly interpreted by Qt applications as command
line parameters.
There are a couple of limitations:
1) The parameters given with CApaCommandLine::SetTailEndL will not
be available in main method's argv array; they can be
accessed via QCoreApplication::arguments function.
2) CApaCommandLine::SetTailEndL does support any arbitrary binary data
as parameter, but only 8-bit string data gets parsed properly into
QCoreApplication::arguments. For other kind of tail data, you need
to subclass QS60MainAppUi and implement ProcessCommandParametersL
callback.
Task-number: QTBUG-15987
Reviewed-by: axis
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Native child windows on Symbian can cause composition artifacts on S^3
because they own a visible RWindow instance, but the RWindow
technically has no content because child windows paint their content to
their parent's backing store. In the event that a native child widget
completely obscures a top level, the composition engine does not
understand that the child is "empty" and should clear the UI surface
to let the top level "shine through". The result is that articacts can
remain on the UI surface after a transition from a WSERV drawing app to
a Qt (EGL rendering) app.
To fix this issue, we call CWindowGc::Clear() when the native child
widget receives an "expose" event. This clears the UI surface content
and ensures the top level is visible even though it is technically
below another RWindow.
Task-number: QTMOBILITY-484
Reviewed-by: Jani Hautakangas
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
demos/declarative/minehunt/minehunt.pro
src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp
src/plugins/phonon/mmf/mmf.pro
src/s60installs/s60installs.pro
tests/auto/qapplication/test/test.pro
tests/auto/qgraphicsview/tst_qgraphicsview.cpp
|
| |
| |
| |
| |
| |
| |
| |
| | |
No need to have two resize events in queue for same widget, so do
not post a new one if one is already pending in
QSymbianControl::SizeChanged().
Reviewed-by: Sami Merila
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Some recent changes had caused a change in events sent from avkon
to QSymbianControl, causing QDesktopWidget to be get resize event
before the client area of application was correct.
Moved the resize event sending from HandleStatusPaneSizeChange
to HandleResourceChange (case KEikDynamicLayoutVariantSwitch).
Task-number: QTBUG-16095
Reviewed-by: Sami Merila
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
CBA pointer is stored in static variable and it wasn't cleaned up
properly at QApplication destruction, which led to crash.
Task-number: QTBUG-15915
Reviewed-by: Sami Merila
Reviewed-by: Janne Koskinen
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
demos/declarative/minehunt/minehunt.pro
src/corelib/io/io.pri
src/corelib/io/qfsfileengine.cpp
src/corelib/io/qfsfileengine_unix.cpp
src/corelib/io/qfsfileengine_win.cpp
src/s60installs/bwins/QtCoreu.def
src/s60installs/bwins/QtDeclarativeu.def
src/s60installs/bwins/QtGuiu.def
src/s60installs/eabi/QtCoreu.def
src/s60installs/eabi/QtDeclarativeu.def
src/s60installs/eabi/QtGuiu.def
tests/auto/qapplication/test/test.pro
tests/auto/qaudioinput/qaudioinput.pro
tests/auto/qaudiooutput/qaudiooutput.pro
tests/auto/qchar/qchar.pro
tests/auto/qdiriterator/qdiriterator.pro
tests/auto/qsound/qsound.pro
|
| |\ \
| | |/
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
configure
doc/src/snippets/code/doc_src_qmake-manual.qdoc
mkspecs/features/symbian/application_icon.prf
mkspecs/features/symbian/default_post.prf
mkspecs/features/symbian/symbian_building.prf
qmake/generators/symbian/initprojectdeploy_symbian.cpp
src/multimedia/audio/audio.pri
src/network/access/qnetworkaccessmanager.cpp
src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
src/opengl/qgl_p.h
src/plugins/bearer/corewlan/qcorewlanengine.mm
src/plugins/phonon/mmf/mmf.pro
tests/auto/qscriptvalue/tst_qscriptvalue.cpp
tests/auto/qscriptvalue/tst_qscriptvalue.h
tools/qdoc3/doc/qdoc-manual.qdocconf
|
| | |\ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The CEikonEnv active object is used by Symbian to indicate that new
window server events are available, in this case pointer events.
Since this object was being controlled by Symbian, it was not subject
to Qt's round robin queue. In a case where the event handler for the
pointer event would take very long, it was possible for the active
object to be completed again before the previous handler was
finished, causing it to be called in a loop.
This was fixed by making a new Qt-owned class as a subclass of
CEikonEnv, and in its RunL, make sure that the object follows the
round-robin queue.
Because the round robin code is located in a subclass of CEikonEnv
that we own, the fix will have no effect if Qt is loaded after the
Eikon framework (such as a Qt plugin in a non-Qt app).
Task: QT-4077
RevBy: mread
AutoTest: N/A, system events
|
| |\ \ \
| | |/ / |
|
| | |/
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When an application requests more graphics memory, the GOOM monitor
will start looking for other applications to kill in order to recover
the requested graphics memory. The first step in this process is to
send a custom event to the application indicating that it is a
candidate for termination. If the application does not acknowledge this
event, it will be killed immediately. However, since Qt releases its
graphics memory when the app is obscured, we should indicate that we
handle this event such that Qt has a chance to finish freeing
resources. If after a certain time, the app has not freed its resources
it will be killed anyway. This essentially buys Qt some time to
avoid the case where Qt apps are killed while they are cleaning up.
Task: QTBUG-14858
Reviewed-by: Jani Hautakangas
|
| |\ \
| | |/ |
|