summaryrefslogtreecommitdiffstats
path: root/src/s60main/s60main.pro
diff options
context:
space:
mode:
authoraxis <qt-info@nokia.com>2009-08-31 14:10:23 (GMT)
committeraxis <qt-info@nokia.com>2009-09-03 14:41:42 (GMT)
commitc13b97f2f24d2ff2e62bedead5e3d50f8b992c1a (patch)
tree37db7b41ae98f2e4f43e9048abe80ca82300bb3e /src/s60main/s60main.pro
parentb3a703901e9adbe80e67ca4700c589596d009247 (diff)
downloadQt-c13b97f2f24d2ff2e62bedead5e3d50f8b992c1a.zip
Qt-c13b97f2f24d2ff2e62bedead5e3d50f8b992c1a.tar.gz
Qt-c13b97f2f24d2ff2e62bedead5e3d50f8b992c1a.tar.bz2
Move the S60/Avkon framework initialization into QtGui.
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
Diffstat (limited to 'src/s60main/s60main.pro')
-rw-r--r--src/s60main/s60main.pro8
1 files changed, 1 insertions, 7 deletions
diff --git a/src/s60main/s60main.pro b/src/s60main/s60main.pro
index a4833af..cc3c547 100644
--- a/src/s60main/s60main.pro
+++ b/src/s60main/s60main.pro
@@ -14,13 +14,7 @@ symbian {
CONFIG -= jpeg
INCLUDEPATH += tmp $$QMAKE_INCDIR_QT/QtCore $$MW_LAYER_SYSTEMINCLUDE
SOURCES = qts60main.cpp \
- qts60mainapplication.cpp \
- qts60mainappui.cpp \
- qts60maindocument.cpp
-
- HEADERS = qts60mainapplication_p.h \
- qts60mainappui_p.h \
- qts60maindocument_p.h
+ qts60main_mcrt0.cpp
# This block serves the minimalistic resource file for S60 3.1 platforms.
# Note there is no way to ifdef S60 version in mmp file, that is why the resource