| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Destroying the control environment also pops items from the original
cleanup stack which is not owned by the control environment.
This is a platform issue (and does not occur in 9.3 & 9.4).
To avoid this causing a panic, the s60main is changed to not push items
on the cleanup stack (instead, it TRAPs the call to main(), and deletes
its allocations manually).
A further 9.2 cleanup stack crash was caused when application construction
fails (because of missing resource files). The resulting exception would
bypass deleting the control environment, and return from main with the
wrong cleanup stack active.
This is resolved by doing the TRAP / cleanup / throw manually instead of
using qt_trap_throwing (The control environment cannot be pushed to the
cleanup stack, because it owns the cleanup stack at that time).
This isn't a 9.2 specific bug, but rather is revealed by 9.2 because the
missing resource file is non fatal in 9.3 and 9.4.
Fixes many autotests which have crashed on S60 3.1 since the cleanup
stack swapping patch.
Reviewed-by: axis
|
|
|
|
|
|
|
|
|
|
| |
It's more appropriate to have it in QtGui after the framework classes
were moved there.
This also means that the rsgfix needed earlier is not necessary
anymore, since QtGui is not a static library.
RevBy: Janne Anttila
|
|
|
|
|
|
|
|
|
|
|
| |
When using STDCPP in Symbian^3, the definition for uncaught_exception
*must* be provided before any attempt to include e32base.h is made.
This is because STDCPP support disables the standard Symbian definition
of uncaught_exception, so the version from <exception> needs to be used
instead.
Reviewed-by: Jason Barron
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
|
|
|
| |
<exception> header was missing from sqt60main_mcrt0.cpp, causing
Symbian builds to break.
Reviewed-by: axis
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This way we avoid having a lot of code in a static (and
unmaintainable) library. The s60main static library now currently has
only one task: to call main().
To move the initialization into QtGui also meant a change in how the
S60 framework is created, because we can no longer use the trick
where we create and start the the S60 event loop and then have the
framework call us back to start main(). The initialization now
follows the creation and destruction of QApplication, which is a lot
more in line with how other platforms do it.
Since S60 doesn't support creating the environment, and *then*
starting it (both are executed by the same call), we had to open up
the S60 framework construction classes and just mirror what they do.
This means that after QApplication construction is done, the S60
framework is initialized, but nothing will run yet and control will
return to main(), where the user can start the event loop himself.
One of the quirks of this approach is that the construction of the
S60 framework makes a new cleanup stack. This means that any active
traps will not be active anymore, and leaving without setting a new
trap will most likely panic. This shouldn't be a problem for us,
since Qt is never supposed to leave, but it means that if anyone uses
the cleanup stack without setting a new trap, they will receive a
panic.
It was considered to add a trap mark in QApplication construction and
then removing it on destruction, but it was dropped because leaving
from main() is still undefined (even if the old cleanup stack would
be restored in the destructor, we wouldn't be able to stop the
exception from unwinding the stack, and the cleanup stack would then
be unbalanced).
RevBy: Jason Barron
RevBy: Janne Anttila
AutoTest: QWidget passed with same failure count
|
| |
| |
| |
| |
| |
| | |
Conflicts:
src/s60main/qts60main.cpp
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Conflicts:
demos/boxes/glshaders.cpp
demos/boxes/vector.h
demos/embedded/fluidlauncher/pictureflow.cpp
demos/embedded/fluidlauncher/pictureflow.h
doc/src/desktop-integration.qdoc
doc/src/distributingqt.qdoc
doc/src/examples-overview.qdoc
doc/src/examples.qdoc
doc/src/frameworks-technologies/dbus-adaptors.qdoc
doc/src/geometry.qdoc
doc/src/groups.qdoc
doc/src/objecttrees.qdoc
doc/src/platform-notes.qdoc
doc/src/plugins-howto.qdoc
doc/src/qt3support.qdoc
doc/src/qtdbus.qdoc
doc/src/qtdesigner.qdoc
doc/src/qtgui.qdoc
doc/src/qtmain.qdoc
doc/src/qtopengl.qdoc
doc/src/qtsvg.qdoc
doc/src/qtuiloader.qdoc
doc/src/qundo.qdoc
doc/src/richtext.qdoc
doc/src/topics.qdoc
src/corelib/tools/qdumper.cpp
src/gui/embedded/qkbdpc101_qws.cpp
src/gui/embedded/qkbdsl5000_qws.cpp
src/gui/embedded/qkbdusb_qws.cpp
src/gui/embedded/qkbdvr41xx_qws.cpp
src/gui/embedded/qkbdyopy_qws.cpp
src/gui/embedded/qmousebus_qws.cpp
src/gui/embedded/qmousevr41xx_qws.cpp
src/gui/embedded/qmouseyopy_qws.cpp
src/gui/painting/qpaintengine_d3d.cpp
src/gui/painting/qwindowsurface_d3d.cpp
src/opengl/gl2paintengineex/glgc_shader_source.h
src/opengl/gl2paintengineex/qglpexshadermanager.cpp
src/opengl/gl2paintengineex/qglpexshadermanager_p.h
src/opengl/gl2paintengineex/qglshader.cpp
src/opengl/gl2paintengineex/qglshader_p.h
src/opengl/util/fragmentprograms_p.h
src/plugins/kbddrivers/linuxis/linuxiskbdhandler.cpp
src/plugins/mousedrivers/linuxis/linuxismousehandler.cpp
src/script/parser/qscript.g
src/script/qscriptarray_p.h
src/script/qscriptasm_p.h
src/script/qscriptbuffer_p.h
src/script/qscriptclass.cpp
src/script/qscriptclassdata_p.h
src/script/qscriptcompiler.cpp
src/script/qscriptcompiler_p.h
src/script/qscriptcontext.cpp
src/script/qscriptcontext_p.cpp
src/script/qscriptcontext_p.h
src/script/qscriptcontextfwd_p.h
src/script/qscriptecmaarray.cpp
src/script/qscriptecmaarray_p.h
src/script/qscriptecmaboolean.cpp
src/script/qscriptecmacore.cpp
src/script/qscriptecmadate.cpp
src/script/qscriptecmadate_p.h
src/script/qscriptecmaerror.cpp
src/script/qscriptecmaerror_p.h
src/script/qscriptecmafunction.cpp
src/script/qscriptecmafunction_p.h
src/script/qscriptecmaglobal.cpp
src/script/qscriptecmaglobal_p.h
src/script/qscriptecmamath.cpp
src/script/qscriptecmamath_p.h
src/script/qscriptecmanumber.cpp
src/script/qscriptecmanumber_p.h
src/script/qscriptecmaobject.cpp
src/script/qscriptecmaobject_p.h
src/script/qscriptecmaregexp.cpp
src/script/qscriptecmaregexp_p.h
src/script/qscriptecmastring.cpp
src/script/qscriptecmastring_p.h
src/script/qscriptengine.cpp
src/script/qscriptengine_p.cpp
src/script/qscriptengine_p.h
src/script/qscriptenginefwd_p.h
src/script/qscriptextenumeration.cpp
src/script/qscriptextenumeration_p.h
src/script/qscriptextqobject.cpp
src/script/qscriptextqobject_p.h
src/script/qscriptextvariant.cpp
src/script/qscriptfunction.cpp
src/script/qscriptfunction_p.h
src/script/qscriptgc_p.h
src/script/qscriptmember_p.h
src/script/qscriptobject_p.h
src/script/qscriptprettypretty.cpp
src/script/qscriptprettypretty_p.h
src/script/qscriptvalue.cpp
src/script/qscriptvalueimpl.cpp
src/script/qscriptvalueimpl_p.h
src/script/qscriptvalueimplfwd_p.h
src/script/qscriptvalueiteratorimpl.cpp
src/script/qscriptxmlgenerator.cpp
src/script/qscriptxmlgenerator_p.h
tests/auto/linguist/lupdate/testdata/recursivescan/project.ui
tests/auto/linguist/lupdate/testdata/recursivescan/sub/finddialog.cpp
tests/auto/qkeyevent/tst_qkeyevent.cpp
tools/linguist/shared/cpp.cpp
|
|
|
|
| |
RevBy: Trust me
|
|
|
|
|
|
|
|
| |
Even though the static app is public in the sense that it is included
in every program, the headers it contains are not.
RevBy: Jason Barron
AutoTest: tst_headers passed
|
|
|
|
| |
RevBy: Trust me
|
|
|
|
| |
RevBy: Trust me
|
| |
|
| |
|
|
|
|
|
| |
Contains some smaller fixes and renaming of macros. Looks big,
but isn't scary at all ;)
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Squashed commit of the branch haralds-haralds-qt-s60-topics/topic/exceptions,
which also contains the full history.
Rev-By: Harald Fernengel
Rev-By: Ralf Engels
|
|/ |
|
|\ |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
These functions are really Symbian functions and not S60 specific so
they should be named as such. Also, our public API should use the Qt
convention and not the Symbian convention so remove the 'L' even if
it is a leaving function at the moment.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QSymbianControl::HandleResourceChange contained global event handling.
So Qt handled same issues unnecessarily (for each shown top level
widget). Now this global event handling is encapsulated to
s60ResourceChange (new method) called by s60main. In addition,
qs60style generated unnecessary resize events. If widget was
fullscreen or maximized, then this caused incorrect resize events
(old size delivered). With these changes, qs60style just informs
widgets of style change (similarly as in qstylesheetstyle).
Task-number: 251085
Reviewed-by: Jason Barron <jason.barron@nokia.com>
Conflicts:
src/gui/kernel/qapplication.h
src/gui/styles/qs60style.cpp
|
|/
|
|
|
|
|
|
|
|
|
|
| |
inside QtGui, we do not need to export those QMenu[Bar]::symbianCommands
through our public API, anymore.
This commit moved the code of QMenuBar::symbianCommands to
QMenuBarPrivate::symbianCommands and made that one static.
QMenu[Private]::symbianCommands was apparently unused -> deleted.
RevBy: Jason Barron
RevvBy: Markku Luukkainen
|
|
|
|
|
|
|
| |
CQtS60MainAppUi::HandleCommandL to the new QApplication::s60HandleCommandL
so that it is in QtGui rather than in the static app wrapper.
RevBy: axis
|
|
|