From 30ef2af599f85fef56b975f45fd4edfe817a449a Mon Sep 17 00:00:00 2001
From: Sami Merila <sami.merila@nokia.com>
Date: Wed, 30 Jun 2010 10:30:47 +0300
Subject: QFileDialog broken in landscape in N8

The screen estate runs out for nHD landscape. Due to this, all
"system" dialogs (file, color, font dialogs and wizards) in Symbian
are now shown in fullscreen mode, instead of being just maximized.

Task-number: QTBUG-11668
Reviewed-by: Miikka Heikkinen
---
 src/gui/dialogs/qdialog.cpp | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/src/gui/dialogs/qdialog.cpp b/src/gui/dialogs/qdialog.cpp
index a6bd78a..c2184f2 100644
--- a/src/gui/dialogs/qdialog.cpp
+++ b/src/gui/dialogs/qdialog.cpp
@@ -527,14 +527,19 @@ int QDialog::exec()
 #endif //QT_NO_MENUBAR
 #endif //Q_WS_WINCE_WM
 
+    bool showSystemDialogFullScreen = false;
 #ifdef Q_OS_SYMBIAN
     if (qobject_cast<QFileDialog *>(this) || qobject_cast<QFontDialog *>(this) ||
-        qobject_cast<QColorDialog *>(this) || qobject_cast<QWizard *>(this))
-        showMaximized();
-    else
+        qobject_cast<QColorDialog *>(this) || qobject_cast<QWizard *>(this)) {
+        showSystemDialogFullScreen = true;
+    }
 #endif // Q_OS_SYMBIAN
 
-        show();
+    if (showSystemDialogFullScreen) {
+        setWindowFlags(windowFlags() | Qt::WindowSoftkeysVisibleHint);
+        setWindowState(Qt::WindowFullScreen);
+    }
+    show();
 
 #ifdef Q_WS_MAC
     d->mac_nativeDialogModalHelp();
@@ -892,8 +897,6 @@ void QDialog::adjustPosition(QWidget* w)
 bool QDialog::s60AdjustedPosition()
 {
     QPoint p;
-    const QSize mainAreaSize = QApplication::desktop()->availableGeometry(QCursor::pos()).size();
-    const int statusPaneHeight = (S60->screenHeightInPixels - mainAreaSize.height())>>1;
     const bool doS60Positioning = !(isFullScreen()||isMaximized());
     if (doS60Positioning) {
         // naive way to deduce screen orientation
-- 
cgit v0.12


From fabf804b147892abb0e8aeb49d1753359ea5e56e Mon Sep 17 00:00:00 2001
From: mread <qt-info@nokia.com>
Date: Wed, 30 Jun 2010 15:00:11 +0100
Subject: Avkon removal configured with -no-s60

Avkon dependencies can be configured out with the -no-s60 configure
flag, conversely Qt on Symbian will use Avkon if -s60 is configured.

These changes are intended to keep or introduce binary compatibility
between the s60 and no-s60 configurations. To do this, it has been
necessary to introduce stub equivalents of the CAknAppUi related
classes into the no-s60 configuration, and override all Avkon framework
virtual functions in the QS60Main... classes.

Other than that, these changes are mostly just correcting the use of
the Q_WS_S60 flag so that it only refers to Avkon dependencies.

Reviewed-by: Sami Merila
---
 mkspecs/common/symbian/symbian.conf            |   4 +-
 src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp |   2 +-
 src/corelib/global/qglobal.cpp                 |  14 +--
 src/corelib/io/io.pri                          |   2 +-
 src/corelib/io/qfsfileengine_unix.cpp          |  10 --
 src/corelib/kernel/qcore_symbian_p.cpp         |   2 +-
 src/gui/dialogs/qdialog.cpp                    |  21 ++--
 src/gui/dialogs/qdialog.h                      |   6 +-
 src/gui/image/qpixmapdatafactory.cpp           |   4 +-
 src/gui/kernel/kernel.pri                      |  11 ++-
 src/gui/kernel/qapplication.cpp                |   4 +-
 src/gui/kernel/qapplication.h                  |   8 +-
 src/gui/kernel/qapplication_s60.cpp            |  15 +--
 src/gui/kernel/qt_s60_p.h                      |  10 +-
 src/gui/kernel/qwidget.cpp                     |   2 +-
 src/gui/kernel/qwidget_s60.cpp                 |   3 +
 src/gui/painting/qgraphicssystem.cpp           |   4 +-
 src/gui/s60framework/qs60mainapplication.cpp   |  23 ++++-
 src/gui/s60framework/qs60mainapplication.h     |  20 +++-
 src/gui/s60framework/qs60mainappui.cpp         | 131 ++++++++++++++++++++++---
 src/gui/s60framework/qs60mainappui.h           |  75 +++++++++++++-
 src/gui/s60framework/qs60maindocument.cpp      |  22 +++--
 src/gui/s60framework/qs60maindocument.h        |  20 +++-
 src/gui/s60framework/s60framework.pri          |  22 +++--
 src/gui/util/qdesktopservices_s60.cpp          |  19 ++--
 src/gui/util/util.pri                          |   3 +-
 src/gui/widgets/qmenubar_p.h                   |   2 +-
 27 files changed, 338 insertions(+), 121 deletions(-)

diff --git a/mkspecs/common/symbian/symbian.conf b/mkspecs/common/symbian/symbian.conf
index baa519f..c1b31e5 100644
--- a/mkspecs/common/symbian/symbian.conf
+++ b/mkspecs/common/symbian/symbian.conf
@@ -67,7 +67,7 @@ QMAKE_LINK_OBJECT_SCRIPT=
 
 QMAKE_LIBS		= -llibc -llibm -leuser -llibdl
 QMAKE_LIBS_CORE         = $$QMAKE_LIBS -lefsrv -lhal -lbafl
-QMAKE_LIBS_GUI          = $$QMAKE_LIBS_CORE -lfbscli -lbitgdi -lgdi -lws32 -lapgrfx -lcone -leikcore -lmediaclientaudio -leikcoctl -leiksrv -lapparc -lcentralrepository
+QMAKE_LIBS_GUI          = $$QMAKE_LIBS_CORE -lfbscli -lbitgdi -lgdi -lws32 -lapgrfx -lcone -leikcore -lmediaclientaudio -lapparc -lcentralrepository
 QMAKE_LIBS_NETWORK      = 
 QMAKE_LIBS_EGL          = -llibEGL
 QMAKE_LIBS_OPENGL       = 
@@ -75,7 +75,7 @@ QMAKE_LIBS_OPENVG       = -llibOpenVG -lfbscli -lbitgdi -lgdi
 QMAKE_LIBS_THREAD       = -llibpthread
 QMAKE_LIBS_COMPAT       = 
 QMAKE_LIBS_QT_ENTRY     = -llibcrt0.lib
-QMAKE_LIBS_S60          = -lavkon
+QMAKE_LIBS_S60          = -lavkon -leikcoctl
 
 exists($${EPOCROOT}epoc32/include/platform/sgresource/sgimage.h) {
     QMAKE_LIBS_OPENVG += -lsgresource
diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp
index 9a4e9b2..dc12881 100644
--- a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp
@@ -3614,7 +3614,7 @@ QString QWebPage::userAgentForUrl(const QUrl&) const
         firstPartTemp += QString::fromLatin1("Sun Solaris");
 #elif defined Q_OS_ULTRIX
         firstPartTemp += QString::fromLatin1("DEC Ultrix");
-#elif defined Q_WS_S60
+#elif defined Q_OS_SYMBIAN
         firstPartTemp += QLatin1Char(' ');
         QSysInfo::S60Version s60Version = QSysInfo::s60Version();
         switch (s60Version) {
diff --git a/src/corelib/global/qglobal.cpp b/src/corelib/global/qglobal.cpp
index b31c83b..75a51ec 100644
--- a/src/corelib/global/qglobal.cpp
+++ b/src/corelib/global/qglobal.cpp
@@ -1622,7 +1622,7 @@ bool qSharedBuild()
   \macro Q_WS_S60
   \relates <QtGlobal>
 
-  Defined on S60.
+  Defined on S60 with the Avkon UI framework.
 
   \sa Q_WS_MAC, Q_WS_WIN, Q_WS_X11, Q_WS_QWS
  */
@@ -1813,7 +1813,6 @@ const QSysInfo::WinVersion QSysInfo::WindowsVersion = QSysInfo::windowsVersion()
 #endif
 
 #ifdef Q_OS_SYMBIAN
-# ifdef Q_WS_S60
 static QSysInfo::S60Version cachedS60Version = QSysInfo::S60Version(-1);
 
 QSysInfo::S60Version QSysInfo::s60Version()
@@ -1885,17 +1884,6 @@ QSysInfo::SymbianVersion QSysInfo::symbianVersion()
         return SV_Unknown;
     }
 }
-#else
-QSysInfo::S60Version QSysInfo::s60Version()
-{
-    return SV_S60_None;
-}
-
-QSysInfo::SymbianVersion QSysInfo::symbianVersion()
-{
-    return SV_Unknown;
-}
-# endif // ifdef Q_WS_S60
 #endif // ifdef Q_OS_SYMBIAN
 
 /*!
diff --git a/src/corelib/io/io.pri b/src/corelib/io/io.pri
index ef448b1..3d964c6 100644
--- a/src/corelib/io/io.pri
+++ b/src/corelib/io/io.pri
@@ -93,6 +93,6 @@ win32 {
             SOURCES += io/qfilesystemwatcher_symbian.cpp
             HEADERS += io/qfilesystemwatcher_symbian_p.h
             INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
-            contains(QT_CONFIG, s60): LIBS += -lplatformenv
+            LIBS += -lplatformenv
         }
 }
diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp
index 5762d94..9464a97 100644
--- a/src/corelib/io/qfsfileengine_unix.cpp
+++ b/src/corelib/io/qfsfileengine_unix.cpp
@@ -634,13 +634,8 @@ QString QFSFileEngine::homePath()
 QString QFSFileEngine::rootPath()
 {
 #if defined(Q_OS_SYMBIAN)
-# ifdef Q_WS_S60
     TFileName symbianPath = PathInfo::PhoneMemoryRootPath();
     return QDir::cleanPath(QDir::fromNativeSeparators(qt_TDesC2QString(symbianPath)));
-# else
-# warning No fallback implementation of QFSFileEngine::rootPath()
-    return QString();
-# endif
 #else
     return QLatin1String("/");
 #endif
@@ -649,17 +644,12 @@ QString QFSFileEngine::rootPath()
 QString QFSFileEngine::tempPath()
 {
 #if defined(Q_OS_SYMBIAN)
-# ifdef Q_WS_S60
     TFileName symbianPath = PathInfo::PhoneMemoryRootPath();
     QString temp = QDir::fromNativeSeparators(qt_TDesC2QString(symbianPath));
     temp += QLatin1String( "temp/");
 
     // Just to verify that folder really exist on hardware
     QT_MKDIR(QFile::encodeName(temp), 0777);
-# else
-# warning No fallback implementation of QFSFileEngine::tempPath()
-    QString temp;
-# endif
 #else
     QString temp = QFile::decodeName(qgetenv("TMPDIR"));
     if (temp.isEmpty())
diff --git a/src/corelib/kernel/qcore_symbian_p.cpp b/src/corelib/kernel/qcore_symbian_p.cpp
index 402eccf..5afde9a 100644
--- a/src/corelib/kernel/qcore_symbian_p.cpp
+++ b/src/corelib/kernel/qcore_symbian_p.cpp
@@ -131,7 +131,7 @@ public:
 private:
     void init()
     {
-#ifdef Q_WS_S60
+#ifdef Q_OS_SYMBIAN
         _LIT(KLibName_3_1, "qts60plugin_3_1" QT_LIBINFIX_UNICODE L".dll");
         _LIT(KLibName_3_2, "qts60plugin_3_2" QT_LIBINFIX_UNICODE L".dll");
         _LIT(KLibName_5_0, "qts60plugin_5_0" QT_LIBINFIX_UNICODE L".dll");
diff --git a/src/gui/dialogs/qdialog.cpp b/src/gui/dialogs/qdialog.cpp
index c2184f2..a2adb05 100644
--- a/src/gui/dialogs/qdialog.cpp
+++ b/src/gui/dialogs/qdialog.cpp
@@ -71,8 +71,9 @@ extern bool qt_wince_is_smartphone(); //is defined in qguifunctions_wce.cpp
 #   include "qwizard.h"
 #endif
 
-#if defined(Q_WS_S60)
 #include "private/qt_s60_p.h"
+#if defined(Q_WS_S60)
+#include <AknUtils.h>               // AknLayoutUtils
 #endif
 
 #ifndef SPI_GETSNAPTODEFBUTTON
@@ -393,7 +394,7 @@ void QDialogPrivate::resetModalitySetByOpen()
     resetModalityTo = -1;
 }
 
-#if defined(Q_WS_WINCE) || defined(Q_WS_S60)
+#if defined(Q_WS_WINCE) || defined(Q_OS_SYMBIAN)
 #ifdef Q_WS_WINCE_WM
 void QDialogPrivate::_q_doneAction()
 {
@@ -413,7 +414,7 @@ bool QDialog::event(QEvent *e)
         accept();
         result = true;
      }
-#else
+#elif defined(Q_WS_S60)
     if ((e->type() == QEvent::StyleChange) || (e->type() == QEvent::Resize )) {
         if (!testAttribute(Qt::WA_Moved)) {
             Qt::WindowStates state = windowState();
@@ -423,6 +424,7 @@ bool QDialog::event(QEvent *e)
                 setWindowState(state);
         }
     }
+    // TODO is Symbian, non-S60 behaviour required?
 #endif
     return result;
 }
@@ -823,8 +825,8 @@ void QDialog::adjustPosition(QWidget* w)
         return;
 #endif
 
-#ifdef Q_WS_S60
-    if (s60AdjustedPosition())
+#ifdef Q_OS_SYMBIAN
+    if (symbianAdjustedPosition())
         //dialog has already been positioned
         return;
 #endif
@@ -892,10 +894,11 @@ void QDialog::adjustPosition(QWidget* w)
     move(p);
 }
 
-#if defined(Q_WS_S60)
+#if defined(Q_OS_SYMBIAN)
 /*! \internal */
-bool QDialog::s60AdjustedPosition()
+bool QDialog::symbianAdjustedPosition()
 {
+#if defined(Q_WS_S60)
     QPoint p;
     const bool doS60Positioning = !(isFullScreen()||isMaximized());
     if (doS60Positioning) {
@@ -940,6 +943,10 @@ bool QDialog::s60AdjustedPosition()
         move(p);
     }
     return doS60Positioning;
+#else
+    // TODO - check positioning requirement for Symbian, non-s60
+    return false;
+#endif
 }
 #endif
 
diff --git a/src/gui/dialogs/qdialog.h b/src/gui/dialogs/qdialog.h
index 777256a..b2ba93c 100644
--- a/src/gui/dialogs/qdialog.h
+++ b/src/gui/dialogs/qdialog.h
@@ -107,7 +107,7 @@ public Q_SLOTS:
 protected:
     QDialog(QDialogPrivate &, QWidget *parent, Qt::WindowFlags f = 0);
 
-#if defined(Q_WS_WINCE) || defined(Q_WS_S60)
+#if defined(Q_WS_WINCE) || defined(Q_OS_SYMBIAN)
     bool event(QEvent *e);
 #endif
     void keyPressEvent(QKeyEvent *);
@@ -123,8 +123,8 @@ private:
     Q_DECLARE_PRIVATE(QDialog)
     Q_DISABLE_COPY(QDialog)
 
-#if defined(Q_WS_S60)
-    bool s60AdjustedPosition();
+#if defined(Q_OS_SYMBIAN)
+    bool symbianAdjustedPosition();
 #endif
 
 
diff --git a/src/gui/image/qpixmapdatafactory.cpp b/src/gui/image/qpixmapdatafactory.cpp
index 8014660..7498a7c 100644
--- a/src/gui/image/qpixmapdatafactory.cpp
+++ b/src/gui/image/qpixmapdatafactory.cpp
@@ -53,7 +53,7 @@
 #ifdef Q_WS_MAC
 # include <private/qpixmap_mac_p.h>
 #endif
-#ifdef Q_WS_S60
+#ifdef Q_OS_SYMBIAN
 # include <private/qpixmap_s60_p.h>
 #endif
 
@@ -82,7 +82,7 @@ QPixmapData* QSimplePixmapDataFactory::create(QPixmapData::PixelType type)
     return new QRasterPixmapData(type);
 #elif defined(Q_WS_MAC)
     return new QMacPixmapData(type);
-#elif defined(Q_WS_S60)
+#elif defined(Q_OS_SYMBIAN)
     return new QS60PixmapData(type);    
 #else
 #error QSimplePixmapDataFactory::create() not implemented
diff --git a/src/gui/kernel/kernel.pri b/src/gui/kernel/kernel.pri
index 6fd45ad..f9c84c1 100644
--- a/src/gui/kernel/kernel.pri
+++ b/src/gui/kernel/kernel.pri
@@ -120,18 +120,21 @@ symbian {
         kernel/qkeymapper_s60.cpp\
         kernel/qclipboard_s60.cpp\
         kernel/qdnd_s60.cpp \
-        kernel/qsound_s60.cpp \
-        kernel/qsoftkeymanager_s60.cpp
+        kernel/qsound_s60.cpp
 
     HEADERS += \
         kernel/qt_s60_p.h \
-        kernel/qeventdispatcher_s60_p.h \
-        kernel/qsoftkeymanager_s60_p.h
+        kernel/qeventdispatcher_s60_p.h
 
     LIBS += -lbafl -lestor
 
     INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
     INCLUDEPATH += ../3rdparty/s60
+
+    contains(QT_CONFIG, s60) {
+        SOURCES += kernel/qsoftkeymanager_s60.cpp
+        HEADERS += kernel/qsoftkeymanager_s60_p.h
+    }
 }
 
 
diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp
index 1680ef4..893de03 100644
--- a/src/gui/kernel/qapplication.cpp
+++ b/src/gui/kernel/qapplication.cpp
@@ -2771,7 +2771,7 @@ void QApplicationPrivate::dispatchEnterLeave(QWidget* enter, QWidget* leave) {
             qt_win_set_cursor(cursorWidget, true);
 #elif defined(Q_WS_X11)
             qt_x11_enforce_cursor(cursorWidget, true);
-#elif defined(Q_WS_S60)
+#elif defined(Q_OS_SYMBIAN)
             qt_symbian_set_cursor(cursorWidget, true);
 #endif
         }
@@ -5338,7 +5338,7 @@ QInputContext *QApplication::inputContext() const
             qic = QInputContextFactory::create(QLatin1String("xim"), that);
         that->d_func()->inputContext = qic;
     }
-#elif defined(Q_OS_SYMBIAN)
+#elif defined(Q_WS_SYMBIAN)
     if (!d->inputContext) {
         QApplication *that = const_cast<QApplication *>(this);
         const QStringList keys = QInputContextFactory::keys();
diff --git a/src/gui/kernel/qapplication.h b/src/gui/kernel/qapplication.h
index cb1d063..d31d9e5 100644
--- a/src/gui/kernel/qapplication.h
+++ b/src/gui/kernel/qapplication.h
@@ -61,7 +61,7 @@
 
 QT_BEGIN_HEADER
 
-#if defined(Q_WS_S60)
+#if defined(Q_OS_SYMBIAN)
 class CApaApplication;
 #endif
 
@@ -118,7 +118,7 @@ class Q_GUI_EXPORT QApplication : public QCoreApplication
 public:
     enum Type { Tty, GuiClient, GuiServer };
 
-#ifdef Q_WS_S60
+#ifdef Q_OS_SYMBIAN
     typedef CApaApplication * (*QS60MainApplicationFactory)();
 #endif
 
@@ -130,7 +130,7 @@ public:
     QApplication(Display* dpy, Qt::HANDLE visual = 0, Qt::HANDLE cmap = 0, int = QT_VERSION);
     QApplication(Display *dpy, int &argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE cmap= 0, int = QT_VERSION);
 #endif
-#if defined(Q_WS_S60)
+#if defined(Q_OS_SYMBIAN)
     QApplication(QApplication::QS60MainApplicationFactory factory, int &argc, char **argv, int = QT_VERSION);
 #endif
 #endif
@@ -366,7 +366,7 @@ public:
     QApplication(Display* dpy, Qt::HANDLE visual = 0, Qt::HANDLE cmap = 0);
     QApplication(Display *dpy, int &argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE cmap= 0);
 #endif
-#if defined(Q_WS_S60) || defined(qdoc)
+#if defined(Q_OS_SYMBIAN) || defined(qdoc)
     QApplication(QApplication::QS60MainApplicationFactory factory, int &argc, char **argv);
 #endif
 #endif
diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp
index a7c7310..0d65811 100644
--- a/src/gui/kernel/qapplication_s60.cpp
+++ b/src/gui/kernel/qapplication_s60.cpp
@@ -69,14 +69,17 @@
 #include "apgwgnam.h" // For CApaWindowGroupName
 #include <mdaaudiotoneplayer.h>     // For CMdaAudioToneUtility
 
+#if defined(Q_OS_SYMBIAN)
+# include <private/qs60mainapplication_p.h>
+# include <centralrepository.h>
+# include "qs60mainappui.h"
+# include "qinputcontext.h"
+#endif
+
 #if defined(Q_WS_S60)
 # if !defined(QT_NO_IM)
-#  include "qinputcontext.h"
 #  include <private/qcoefepinputcontext_p.h>
 # endif
-# include <private/qs60mainapplication_p.h>
-# include <centralrepository.h>
-# include "qs60mainappui.h"
 #endif
 
 #include "private/qstylesheetstyle_p.h"
@@ -894,7 +897,7 @@ TKeyResponse QSymbianControl::sendKeyEvent(QWidget *widget, QKeyEvent *keyEvent)
         if (qic && qic->filterEvent(keyEvent))
             return EKeyWasConsumed;
     }
-#endif // !defined(QT_NO_IM) && defined(Q_WS_S60)
+#endif // !defined(QT_NO_IM) && defined(Q_OS_SYMBIAN)
 
     if (widget && qt_sendSpontaneousEvent(widget, keyEvent))
         if (keyEvent->isAccepted())
@@ -1974,10 +1977,10 @@ int QApplicationPrivate::symbianHandleCommand(const QSymbianEvent *symbianEvent)
         ret = 1;
         break;
     default:
+#ifdef Q_WS_S60
         bool handled = QSoftKeyManager::handleCommand(command);
         if (handled)
             ret = 1;
-#ifdef Q_WS_S60
         else
             ret = QMenuBarPrivate::symbianCommands(command);
 #endif
diff --git a/src/gui/kernel/qt_s60_p.h b/src/gui/kernel/qt_s60_p.h
index 204e38c..d8ef67d 100644
--- a/src/gui/kernel/qt_s60_p.h
+++ b/src/gui/kernel/qt_s60_p.h
@@ -155,7 +155,9 @@ public:
     static inline CAknTitlePane* titlePane();
     static inline CAknContextPane* contextPane();
     static inline CEikButtonGroupContainer* buttonGroupContainer();
+#endif
 
+#ifdef Q_OS_SYMBIAN
     TTrapHandler *s60InstalledTrapHandler;
 #endif
 };
@@ -208,7 +210,7 @@ protected: // from MAknFadedComponent
     TInt CountFadedComponents() {return 1;}
     CCoeControl* FadedComponent(TInt /*aIndex*/) {return this;}
 #else
-    #warning No fallback implementation for QSymbianControl::FadeBehindPopup
+    // #warning No fallback implementation for QSymbianControl::FadeBehindPopup
     void FadeBehindPopup(bool /*fade*/){ }
 #endif
 
@@ -277,9 +279,9 @@ inline QS60Data::QS60Data()
   avkonComponentsSupportTransparency(0),
   menuBeingConstructed(0),
   memoryLimitForHwRendering(0),
-  s60ApplicationFactory(0),
-#ifdef Q_WS_S60
-  s60InstalledTrapHandler(0)
+  s60ApplicationFactory(0)
+#ifdef Q_OS_SYMBIAN
+  ,s60InstalledTrapHandler(0)
 #endif
 {
 }
diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp
index dd568cd..233df15 100644
--- a/src/gui/kernel/qwidget.cpp
+++ b/src/gui/kernel/qwidget.cpp
@@ -10695,7 +10695,7 @@ void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on)
 
         break;
     case Qt::WA_AcceptTouchEvents:
-#if defined(Q_WS_WIN) || defined(Q_WS_MAC) || defined(Q_WS_S60)
+#if defined(Q_WS_WIN) || defined(Q_WS_MAC) || defined(Q_OS_SYMBIAN)
         if (on)
             d->registerTouchWindow();
 #endif
diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp
index 3f351d9..2818d88 100644
--- a/src/gui/kernel/qwidget_s60.cpp
+++ b/src/gui/kernel/qwidget_s60.cpp
@@ -54,6 +54,7 @@
 
 #ifdef Q_WS_S60
 #include <aknappui.h>
+#include <eikbtgpc.h>
 #endif
 
 // This is necessary in order to be able to perform delayed invokation on slots
@@ -1082,12 +1083,14 @@ void QWidget::setWindowState(Qt::WindowStates newstate)
     Qt::WindowStates oldstate = windowState();
 
     const TBool isFullscreen = newstate & Qt::WindowFullScreen;
+#ifdef Q_WS_S60
     const TBool cbaRequested = windowFlags() & Qt::WindowSoftkeysVisibleHint;
     const TBool cbaVisible = CEikButtonGroupContainer::Current() ? true : false;
     const TBool softkeyVisibilityChange = isFullscreen && (cbaRequested != cbaVisible);
 
     if (oldstate == newstate && !softkeyVisibilityChange)
         return;
+#endif // Q_WS_S60
 
     if (isWindow()) {
         createWinId();
diff --git a/src/gui/painting/qgraphicssystem.cpp b/src/gui/painting/qgraphicssystem.cpp
index 2ea3d33..bd9e7fc 100644
--- a/src/gui/painting/qgraphicssystem.cpp
+++ b/src/gui/painting/qgraphicssystem.cpp
@@ -50,7 +50,7 @@
 #ifdef Q_WS_MAC
 # include <private/qpixmap_mac_p.h>
 #endif
-#ifdef Q_WS_S60
+#ifdef Q_OS_SYMBIAN
 # include <private/qpixmap_s60_p.h>
 #endif
 
@@ -71,7 +71,7 @@ QPixmapData *QGraphicsSystem::createDefaultPixmapData(QPixmapData::PixelType typ
     return new QRasterPixmapData(type);
 #elif defined(Q_WS_MAC)
     return new QMacPixmapData(type);
-#elif defined(Q_WS_S60)
+#elif defined(Q_OS_SYMBIAN)
     return new QS60PixmapData(type);    
 #elif !defined(Q_WS_QWS)
 #error QGraphicsSystem::createDefaultPixmapData() not implemented
diff --git a/src/gui/s60framework/qs60mainapplication.cpp b/src/gui/s60framework/qs60mainapplication.cpp
index 41ac1a8..0f9367e 100644
--- a/src/gui/s60framework/qs60mainapplication.cpp
+++ b/src/gui/s60framework/qs60mainapplication.cpp
@@ -71,17 +71,17 @@ _LIT(KQtWrapperResourceFile, "\\resource\\apps\\s60main" QT_LIBINFIX_UNICODE L".
 
   The QS60MainApplication provides a helper class for use in migrating
   from existing S60 based applications to Qt based applications. It is
-  used in the exact same way as the \c CAknApplication class from
+  used in the exact same way as the \c CEikApplication class from
   Symbian, but internally provides extensions used by Qt.
 
   When modifying old S60 applications that rely on implementing
-  functions in \c CAknApplication, the class should be modified to
-  inherit from this class instead of \c CAknApplication. Then the
+  functions in \c CEikApplication, the class should be modified to
+  inherit from this class instead of \c CEikApplication. Then the
   application can choose to override only certain functions. To make
   Qt use the custom application objects, pass a factory function to
   \c{QApplication::QApplication(QApplication::QS60MainApplicationFactory, int &, char **)}.
 
-  For more information on \c CAknApplication, please see the S60 documentation.
+  For more information on \c CEikApplication, please see the S60 documentation.
 
   Unlike other Qt classes, QS60MainApplication behaves like an S60 class, and can throw Symbian
   leaves.
@@ -136,4 +136,19 @@ TFileName QS60MainApplication::ResourceFileName() const
     return KNullDesC();
 }
 
+void QS60MainApplication::PreDocConstructL()
+{
+    QS60MainApplicationBase::PreDocConstructL();
+}
+
+CDictionaryStore *QS60MainApplication::OpenIniFileLC(RFs &aFs) const
+{
+    return QS60MainApplicationBase::OpenIniFileLC(aFs);
+}
+
+void QS60MainApplication::NewAppServerL(CApaAppServer *&aAppServer)
+{
+    QS60MainApplicationBase::NewAppServerL(aAppServer);
+}
+
 QT_END_NAMESPACE
diff --git a/src/gui/s60framework/qs60mainapplication.h b/src/gui/s60framework/qs60mainapplication.h
index 997f30f..cb22e68 100644
--- a/src/gui/s60framework/qs60mainapplication.h
+++ b/src/gui/s60framework/qs60mainapplication.h
@@ -44,9 +44,15 @@
 
 #include <QtCore/qglobal.h>
 
-#ifdef Q_WS_S60
+#ifdef Q_OS_SYMBIAN
 
+#ifdef Q_WS_S60
 #include <aknapp.h>
+typedef CAknApplication QS60MainApplicationBase;
+#else
+#include <eikapp.h>
+typedef CEikApplication QS60MainApplicationBase;
+#endif
 
 QT_BEGIN_HEADER
 
@@ -54,7 +60,7 @@ QT_BEGIN_NAMESPACE
 
 QT_MODULE(Gui)
 
-class Q_GUI_EXPORT QS60MainApplication : public CAknApplication
+class Q_GUI_EXPORT QS60MainApplication : public QS60MainApplicationBase
 {
 public:
     QS60MainApplication();
@@ -65,6 +71,14 @@ public:
 
     virtual TFileName ResourceFileName() const;
 
+public:
+
+    virtual void PreDocConstructL();
+
+    virtual CDictionaryStore *OpenIniFileLC(RFs &aFs) const;
+
+    virtual void NewAppServerL(CApaAppServer *&aAppServer);
+
 protected:
 
     virtual CApaDocument *CreateDocumentL();
@@ -74,6 +88,6 @@ QT_END_NAMESPACE
 
 QT_END_HEADER
 
-#endif // Q_WS_S60
+#endif // Q_OS_SYMBIAN
 
 #endif // QS60MAINAPPLICATION_H
diff --git a/src/gui/s60framework/qs60mainappui.cpp b/src/gui/s60framework/qs60mainappui.cpp
index ce13de8..40c2d03 100644
--- a/src/gui/s60framework/qs60mainappui.cpp
+++ b/src/gui/s60framework/qs60mainappui.cpp
@@ -41,20 +41,25 @@
 
 // INCLUDE FILES
 #include <exception>
+#include <qglobal.h>
+#ifdef Q_WS_S60
 #include <avkon.hrh>
 #include <eikmenub.h>
 #include <eikmenup.h>
+#include <avkon.rsg>
+#endif
 #include <barsread.h>
 #include <qconfig.h>
-#if defined(QT_LIBINFIX_UNQUOTED)
+#ifdef Q_WS_S60
+#  if defined(QT_LIBINFIX_UNQUOTED)
 // Two level macro needed for proper expansion of libinfix
-#  define QT_S60MAIN_RSG_2(x) <s60main##x##.rsg>
-#  define QT_S60MAIN_RSG(x) QT_S60MAIN_RSG_2(x)
-#  include QT_S60MAIN_RSG(QT_LIBINFIX_UNQUOTED)
-#else
-#  include <s60main.rsg>
+#    define QT_S60MAIN_RSG_2(x) <s60main##x##.rsg>
+#    define QT_S60MAIN_RSG(x) QT_S60MAIN_RSG_2(x)
+#    include QT_S60MAIN_RSG(QT_LIBINFIX_UNQUOTED)
+#  else
+#    include <s60main.rsg>
+#  endif
 #endif
-#include <avkon.rsg>
 
 #include "qs60mainappui.h"
 #include <QtGui/qapplication.h>
@@ -115,14 +120,16 @@ void QS60MainAppUi::ConstructL()
     // ENoAppResourceFile and ENonStandardResourceFile makes UI to work without
     // resource files in most SDKs. S60 3rd FP1 public seems to require resource file
     // even these flags are defined
-    TInt flags = CAknAppUi::EAknEnableSkin
-                 | CAknAppUi::ENoScreenFurniture
-                 | CAknAppUi::ENonStandardResourceFile;
+    TInt flags = CEikAppUi::ENoScreenFurniture
+               | CEikAppUi::ENonStandardResourceFile;
+#ifdef Q_WS_S60
+    flags |= CAknAppUi::EAknEnableSkin;
     // After 5th Edition S60, native side supports animated wallpapers.
 	// However, there is no support for that feature on Qt side, so indicate to
 	// native UI framework that this application will not support background animations.
     if (QSysInfo::s60Version() > QSysInfo::SV_S60_5_0)
         flags |= KAknDisableAnimationBackground;
+#endif
     BaseConstructL(flags);
 }
 
@@ -168,7 +175,7 @@ void QS60MainAppUi::HandleCommandL(TInt command)
  */
 void QS60MainAppUi::HandleResourceChangeL(TInt type)
 {
-    CAknAppUi::HandleResourceChangeL(type);
+    QS60MainAppUiBase::HandleResourceChangeL(type);
 
     if (qApp) {
         QSymbianEvent event(QSymbianEvent::ResourceChangeEvent, type);
@@ -185,7 +192,7 @@ void QS60MainAppUi::HandleResourceChangeL(TInt type)
  * If you override this function, you should call the base class implementation if you do not
  * handle the event.
  */
-void QS60MainAppUi::HandleWsEventL(const TWsEvent& wsEvent, CCoeControl *destination)
+void QS60MainAppUi::HandleWsEventL(const TWsEvent &wsEvent, CCoeControl *destination)
 {
     int result = 0;
     if (qApp) {
@@ -196,7 +203,7 @@ void QS60MainAppUi::HandleWsEventL(const TWsEvent& wsEvent, CCoeControl *destina
     }
 
     if (result <= 0)
-        CAknAppUi::HandleWsEventL(wsEvent, destination);
+        QS60MainAppUiBase::HandleWsEventL(wsEvent, destination);
 }
 
 
@@ -236,6 +243,7 @@ void QS60MainAppUi::DynInitMenuBarL(TInt /* resourceId */, CEikMenuBar * /* menu
  */
 void QS60MainAppUi::DynInitMenuPaneL(TInt resourceId, CEikMenuPane *menuPane)
 {
+#ifdef Q_WS_S60
     if (resourceId == R_QT_WRAPPERAPP_MENU) {
         if (menuPane->NumberOfItemsInPane() <= 1)
             QT_TRYCATCH_LEAVING(qt_symbian_show_toplevel(menuPane));
@@ -245,6 +253,9 @@ void QS60MainAppUi::DynInitMenuPaneL(TInt resourceId, CEikMenuPane *menuPane)
             && resourceId != R_AVKON_MENUPANE_LANGUAGE_DEFAULT) {
         QT_TRYCATCH_LEAVING(qt_symbian_show_submenu(menuPane, resourceId));
     }
+#else
+    QS60MainAppUiBase::DynInitMenuPaneL(resourceId, menuPane);
+#endif
 }
 
 /*!
@@ -255,16 +266,104 @@ void QS60MainAppUi::DynInitMenuPaneL(TInt resourceId, CEikMenuPane *menuPane)
  *
  * If you override this function, you should call the base class implementation as well.
  */
-void QS60MainAppUi::RestoreMenuL(CCoeControl* menuWindow, TInt resourceId, TMenuType menuType)
+void QS60MainAppUi::RestoreMenuL(CCoeControl *menuWindow, TInt resourceId, TMenuType menuType)
 {
+#ifdef Q_WS_S60
     if (resourceId >= QT_SYMBIAN_FIRST_MENU_ITEM && resourceId <= QT_SYMBIAN_LAST_MENU_ITEM) {
         if (menuType == EMenuPane)
             DynInitMenuPaneL(resourceId, (CEikMenuPane*)menuWindow);
         else
             DynInitMenuBarL(resourceId, (CEikMenuBar*)menuWindow);
-    } else {
-        CAknAppUi::RestoreMenuL(menuWindow, resourceId, menuType);
+    } else
+#endif
+    {
+        QS60MainAppUiBase::RestoreMenuL(menuWindow, resourceId, menuType);
     }
 }
 
+void QS60MainAppUi::Exit()
+{
+    QS60MainAppUiBase::Exit();
+}
+
+void QS60MainAppUi::SetFadedL(TBool aFaded)
+{
+    QS60MainAppUiBase::SetFadedL(aFaded);
+}
+
+TRect QS60MainAppUi::ApplicationRect() const
+{
+    return QS60MainAppUiBase::ApplicationRect();
+}
+
+void QS60MainAppUi::HandleScreenDeviceChangedL()
+{
+    QS60MainAppUiBase::HandleScreenDeviceChangedL();
+}
+
+void QS60MainAppUi::HandleApplicationSpecificEventL(TInt aType, const TWsEvent &aEvent)
+{
+    QS60MainAppUiBase::HandleApplicationSpecificEventL(aType, aEvent);
+}
+
+TTypeUid::Ptr QS60MainAppUi::MopSupplyObject(TTypeUid aId)
+{
+    return QS60MainAppUiBase::MopSupplyObject(aId);
+}
+
+void QS60MainAppUi::ProcessCommandL(TInt aCommand)
+{
+    QS60MainAppUiBase::ProcessCommandL(aCommand);
+}
+
+TErrorHandlerResponse QS60MainAppUi::HandleError (TInt aError, const SExtendedError &aExtErr, TDes &aErrorText, TDes &aContextText)
+{
+    return QS60MainAppUiBase::HandleError(aError, aExtErr, aErrorText, aContextText);
+}
+
+void QS60MainAppUi::HandleViewDeactivation(const TVwsViewId &aViewIdToBeDeactivated, const TVwsViewId &aNewlyActivatedViewId)
+{
+    QS60MainAppUiBase::HandleViewDeactivation(aViewIdToBeDeactivated, aNewlyActivatedViewId);
+}
+
+void QS60MainAppUi::PrepareToExit()
+{
+    QS60MainAppUiBase::PrepareToExit();
+}
+
+void QS60MainAppUi::HandleTouchPaneSizeChange()
+{
+    QS60MainAppUiBase::HandleTouchPaneSizeChange();
+}
+
+void QS60MainAppUi::HandleSystemEventL(const TWsEvent &aEvent)
+{
+    QS60MainAppUiBase::HandleSystemEventL(aEvent);
+}
+
+void QS60MainAppUi::Reserved_MtsmPosition()
+{
+    QS60MainAppUiBase::Reserved_MtsmPosition();
+}
+
+void QS60MainAppUi::Reserved_MtsmObject()
+{
+    QS60MainAppUiBase::Reserved_MtsmObject();
+}
+
+void QS60MainAppUi::HandleForegroundEventL(TBool aForeground)
+{
+    QS60MainAppUiBase::HandleForegroundEventL(aForeground);
+}
+
+#ifndef Q_WS_S60
+
+void QS60StubAknAppUi::HandleViewDeactivation(const TVwsViewId &, const TVwsViewId &) {}
+void QS60StubAknAppUi::HandleTouchPaneSizeChange() {}
+void QS60StubAknAppUi::HandleStatusPaneSizeChange() {}
+void QS60StubAknAppUi::Reserved_MtsmPosition() {}
+void QS60StubAknAppUi::Reserved_MtsmObject() {}
+
+#endif
+
 QT_END_NAMESPACE
diff --git a/src/gui/s60framework/qs60mainappui.h b/src/gui/s60framework/qs60mainappui.h
index dcc72d1..796059f 100644
--- a/src/gui/s60framework/qs60mainappui.h
+++ b/src/gui/s60framework/qs60mainappui.h
@@ -44,9 +44,55 @@
 
 #include <QtCore/qglobal.h>
 
-#ifdef Q_WS_S60
+#ifdef Q_OS_SYMBIAN
 
+#ifdef Q_WS_S60
 #include <aknappui.h>
+typedef CAknAppUi QS60MainAppUiBase;
+#else
+#include <eikappui.h>
+// these stub classes simulate the structure of CAknAppUi, to help binary compatibility between Qt configured with and without S60/Avkon
+class QS60StubAknAppUiBase : public CEikAppUi
+{
+private:
+    int qS60StubAknAppUiBaseSpace[4];
+};
+
+class QS60StubMEikStatusPaneObserver
+{
+public:
+    virtual void HandleStatusPaneSizeChange() = 0;
+};
+
+class QS60StubMAknTouchPaneObserver
+{
+public:
+    virtual void HandleTouchPaneSizeChange() = 0;
+};
+
+class QS60StubAknAppUi : public QS60StubAknAppUiBase, QS60StubMEikStatusPaneObserver,
+            public MCoeViewDeactivationObserver,
+            public QS60StubMAknTouchPaneObserver
+{
+public: // MCoeViewDeactivationObserver
+    virtual void HandleViewDeactivation(const TVwsViewId&, const TVwsViewId &);
+
+public: // from MAknTouchPaneObserver
+    virtual void HandleTouchPaneSizeChange();
+
+protected: // from MEikStatusPaneObserver
+    virtual void HandleStatusPaneSizeChange();
+
+protected: // from CAknAppUi
+    virtual void Reserved_MtsmPosition();
+    virtual void Reserved_MtsmObject();
+
+private:
+    int qS60StubAknAppUiSpace[4];
+};
+
+typedef QS60StubAknAppUi QS60MainAppUiBase;
+#endif
 
 QT_BEGIN_HEADER
 
@@ -54,7 +100,7 @@ QT_BEGIN_NAMESPACE
 
 QT_MODULE(Gui)
 
-class Q_GUI_EXPORT QS60MainAppUi : public CAknAppUi
+class Q_GUI_EXPORT QS60MainAppUi : public QS60MainAppUiBase
 {
 public:
     QS60MainAppUi();
@@ -63,7 +109,7 @@ public:
 
     virtual void ConstructL();
 
-    virtual void RestoreMenuL(CCoeControl* menuWindow,TInt resourceId,TMenuType menuType);
+    virtual void RestoreMenuL(CCoeControl *menuWindow,TInt resourceId,TMenuType menuType);
     virtual void DynInitMenuBarL(TInt resourceId, CEikMenuBar *menuBar);
     virtual void DynInitMenuPaneL(TInt resourceId, CEikMenuPane *menuPane);
 
@@ -74,13 +120,32 @@ public:
     virtual void HandleStatusPaneSizeChange();
 
 protected:
-    virtual void HandleWsEventL(const TWsEvent& event, CCoeControl* destination);
+    virtual void HandleWsEventL(const TWsEvent &event, CCoeControl *destination);
+
+public:
+    virtual void Exit();
+    virtual void SetFadedL(TBool aFaded);
+    virtual TRect ApplicationRect() const;
+    virtual void ProcessCommandL(TInt aCommand);
+    virtual TErrorHandlerResponse HandleError (TInt aError, const SExtendedError &aExtErr, TDes &aErrorText, TDes &aContextText);
+    virtual void HandleViewDeactivation(const TVwsViewId &aViewIdToBeDeactivated, const TVwsViewId &aNewlyActivatedViewId);
+    virtual void PrepareToExit();
+    virtual void HandleTouchPaneSizeChange();
+
+protected:
+    virtual void HandleScreenDeviceChangedL();
+    virtual void HandleApplicationSpecificEventL(TInt aType, const TWsEvent &aEvent);
+    virtual TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
+    virtual void HandleSystemEventL(const TWsEvent &aEvent);
+    virtual void Reserved_MtsmPosition();
+    virtual void Reserved_MtsmObject();
+    virtual void HandleForegroundEventL(TBool aForeground);
 };
 
 QT_END_NAMESPACE
 
 QT_END_HEADER
 
-#endif // Q_WS_S60
+#endif // Q_OS_SYMBIAN
 
 #endif // QS60MAINAPPUI_H
diff --git a/src/gui/s60framework/qs60maindocument.cpp b/src/gui/s60framework/qs60maindocument.cpp
index 487e067..ed33a41 100644
--- a/src/gui/s60framework/qs60maindocument.cpp
+++ b/src/gui/s60framework/qs60maindocument.cpp
@@ -57,15 +57,15 @@ QT_BEGIN_NAMESPACE
 
   The QS60MainDocument provides a helper class for use in migrating
   from existing S60 based applications to Qt based applications. It is
-  used in the exact same way as the \c CAknDocument class from
+  used in the exact same way as the \c CEikDocument class from
   Symbian, but internally provides extensions used by Qt.
 
   When modifying old S60 applications that rely on implementing
-  functions in \c CAknDocument, the class should be modified to
-  inherit from this class instead of \c CAknDocument. Then the
+  functions in \c CEikDocument, the class should be modified to
+  inherit from this class instead of \c CEikDocument. Then the
   application can choose to override only certain functions.
 
-  For more information on \c CAknDocument, please see the S60
+  For more information on \c CEikDocument, please see the S60
   documentation.
 
   Unlike other Qt classes, QS60MainDocument behaves like an S60 class,
@@ -79,8 +79,8 @@ QT_BEGIN_NAMESPACE
  *
  * \a mainApplication should contain a pointer to a QS60MainApplication instance.
  */
-QS60MainDocument::QS60MainDocument(CEikApplication& mainApplication)
-    : CAknDocument(mainApplication)
+QS60MainDocument::QS60MainDocument(CEikApplication &mainApplication)
+    : QS60MainDocumentBase(mainApplication)
 {
     // No implementation required
 }
@@ -105,4 +105,14 @@ CEikAppUi *QS60MainDocument::CreateAppUiL()
     return (static_cast <CEikAppUi*>(new(ELeave)QS60MainAppUi));
 }
 
+CFileStore *QS60MainDocument::OpenFileL(TBool aDoOpen, const TDesC &aFilename, RFs &aFs)
+{
+    return QS60MainDocumentBase::OpenFileL(aDoOpen, aFilename, aFs);
+}
+
+void QS60MainDocument::OpenFileL(CFileStore *&aFileStore, RFile &aFile)
+{
+    QS60MainDocumentBase::OpenFileL(aFileStore, aFile);
+}
+
 QT_END_NAMESPACE
diff --git a/src/gui/s60framework/qs60maindocument.h b/src/gui/s60framework/qs60maindocument.h
index 553675f..2f0564f 100644
--- a/src/gui/s60framework/qs60maindocument.h
+++ b/src/gui/s60framework/qs60maindocument.h
@@ -44,9 +44,15 @@
 
 #include <QtCore/qglobal.h>
 
-#ifdef Q_WS_S60
+#ifdef Q_OS_SYMBIAN
 
-#include <AknDoc.h>
+#ifdef Q_WS_S60
+#include <akndoc.h>
+typedef CAknDocument QS60MainDocumentBase;
+#else
+#include <eikdoc.h>
+typedef CEikDocument QS60MainDocumentBase;
+#endif
 
 class CEikApplication;
 
@@ -58,7 +64,7 @@ QT_MODULE(Gui)
 
 class QS60MainAppUi;
 
-class Q_GUI_EXPORT QS60MainDocument : public CAknDocument
+class Q_GUI_EXPORT QS60MainDocument : public QS60MainDocumentBase
 {
 public:
 
@@ -69,12 +75,18 @@ public:
 public:
 
     virtual CEikAppUi *CreateAppUiL();
+
+public:
+
+    virtual CFileStore *OpenFileL(TBool aDoOpen, const TDesC &aFilename, RFs &aFs);
+
+    virtual void OpenFileL(CFileStore *&aFileStore, RFile &aFile);
 };
 
 QT_END_NAMESPACE
 
 QT_END_HEADER
 
-#endif // Q_WS_S60
+#endif // Q_OS_SYMBIAN
 
 #endif // QS60MAINDOCUMENT_H
diff --git a/src/gui/s60framework/s60framework.pri b/src/gui/s60framework/s60framework.pri
index f9d89dc..edbacc0 100644
--- a/src/gui/s60framework/s60framework.pri
+++ b/src/gui/s60framework/s60framework.pri
@@ -1,16 +1,20 @@
+contains(QT_CONFIG, s60) {
 # 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
 # file is always compiled for WINSCW
-minimalAppResource31 = \
-    "SOURCEPATH s60framework" \
-    "START RESOURCE s60main.rss" \
-    "TARGET s60main$${QT_LIBINFIX}" \
-    "HEADER" \
-    "TARGETPATH /resource/apps" \
-    "END"
-MMP_RULES += minimalAppResource31
 
-SYMBIAN_RESOURCES += s60framework/s60main.rss
+    minimalAppResource31 = \
+        "SOURCEPATH s60framework" \
+        "START RESOURCE s60main.rss" \
+        "TARGET s60main$${QT_LIBINFIX}" \
+        "HEADER" \
+        "TARGETPATH /resource/apps" \
+        "END"
+
+    MMP_RULES += minimalAppResource31
+
+    SYMBIAN_RESOURCES += s60framework/s60main.rss
+}
 
 SOURCES += s60framework/qs60mainapplication.cpp \
            s60framework/qs60mainappui.cpp \
diff --git a/src/gui/util/qdesktopservices_s60.cpp b/src/gui/util/qdesktopservices_s60.cpp
index a415180..24f6ccf 100644
--- a/src/gui/util/qdesktopservices_s60.cpp
+++ b/src/gui/util/qdesktopservices_s60.cpp
@@ -39,9 +39,6 @@
 **
 ****************************************************************************/
 
-// This flag changes the implementation to use S60 CDcoumentHandler
-// instead of apparch when opening the files
-#define USE_DOCUMENTHANDLER
 
 #include <qcoreapplication.h>
 #include <qdir.h>
@@ -56,10 +53,16 @@
 #include <rsendas.h>                // RSendAs
 #include <rsendasmessage.h>         // RSendAsMessage
 
+#ifdef Q_WS_S60
+// This flag changes the implementation to use S60 CDcoumentHandler
+// instead of apparch when opening the files
+#define USE_DOCUMENTHANDLER
+#endif
+
 // copied from miutset.h, so we don't get a dependency into the app layer
 const TUid KUidMsgTypeSMTP			= {0x10001028};	// 268439592
 
-#ifdef Q_WS_S60
+#ifdef Q_OS_SYMBIAN
 #  include <pathinfo.h>             // PathInfo
 #  ifdef USE_DOCUMENTHANDLER
 #    include <DocumentHandler.h>    // CDocumentHandler
@@ -264,7 +267,7 @@ static TDriveUnit writableExeDrive()
 static TPtrC writableDataRoot()
 {
     TDriveUnit drive = exeDrive();
-#ifdef Q_WS_S60
+#ifdef Q_OS_SYMBIAN
     switch(drive.operator TInt()){
         case EDriveC:
             return PathInfo::PhoneMemoryRootPath();
@@ -391,19 +394,19 @@ QString QDesktopServices::storageLocation(StandardLocation type)
         break;
     case MusicLocation:
         path.Append(writableDataRoot());
-#ifdef Q_WS_S60
+#ifdef Q_OS_SYMBIAN
         path.Append(PathInfo::SoundsPath());
 #endif
         break;
     case MoviesLocation:
         path.Append(writableDataRoot());
-#ifdef Q_WS_S60
+#ifdef Q_OS_SYMBIAN
         path.Append(PathInfo::VideosPath());
 #endif
         break;
     case PicturesLocation:
         path.Append(writableDataRoot());
-#ifdef Q_WS_S60
+#ifdef Q_OS_SYMBIAN
         path.Append(PathInfo::ImagesPath());
 #endif
         break;
diff --git a/src/gui/util/util.pri b/src/gui/util/util.pri
index be8db93..bea520e 100644
--- a/src/gui/util/util.pri
+++ b/src/gui/util/util.pri
@@ -43,9 +43,8 @@ embedded {
 }
 
 symbian {
-    LIBS += -lsendas2 -letext -lapmime
+    LIBS += -lsendas2 -letext -lapmime -lplatformenv
     contains(QT_CONFIG, s60) {
-        LIBS += -lplatformenv
         contains(CONFIG, is_using_gnupoc) {
             LIBS += -lcommonui
         } else {
diff --git a/src/gui/widgets/qmenubar_p.h b/src/gui/widgets/qmenubar_p.h
index 82070fe..fc6701c 100644
--- a/src/gui/widgets/qmenubar_p.h
+++ b/src/gui/widgets/qmenubar_p.h
@@ -269,10 +269,10 @@ public:
 
     } *symbian_menubar;
     static int symbianCommands(int command);
+#endif
 #ifdef QT_SOFTKEYS_ENABLED
     QAction *menuBarAction;
 #endif
-#endif
 };
 #endif
 
-- 
cgit v0.12


From 8c14529abdbbaa32c7d4f9d84b97515ab759223e Mon Sep 17 00:00:00 2001
From: mread <qt-info@nokia.com>
Date: Wed, 30 Jun 2010 17:21:05 +0100
Subject: Stub version of QS60Style

Added a stub version of QS60Style so that DEF files can be compatible
between Qt configured with and without style-s60.

Reviewed-by: Shane Kearns
---
 src/gui/styles/qs60style.h        |   8 +--
 src/gui/styles/qs60style_stub.cpp | 131 ++++++++++++++++++++++++++++++++++++++
 src/gui/styles/styles.pri         |   4 ++
 3 files changed, 137 insertions(+), 6 deletions(-)
 create mode 100644 src/gui/styles/qs60style_stub.cpp

diff --git a/src/gui/styles/qs60style.h b/src/gui/styles/qs60style.h
index c878538..f588d9f 100644
--- a/src/gui/styles/qs60style.h
+++ b/src/gui/styles/qs60style.h
@@ -50,8 +50,6 @@ QT_BEGIN_NAMESPACE
 
 QT_MODULE(Gui)
 
-#if !defined(QT_NO_STYLE_S60)
-
 //Public custom pixel metrics values.
 //These can be used to fetch custom pixel metric value from outside QS60Style.
 enum {
@@ -91,14 +89,14 @@ public:
 #endif
     bool event(QEvent *e);
 
-#ifndef Q_WS_S60
+#ifndef Q_OS_SYMBIAN
     static QStringList partKeys();
     static QStringList colorListKeys();
     void setS60Theme(const QHash<QString, QPicture> &parts,
         const QHash<QPair<QString , int>, QColor> &colors);
     bool loadS60ThemeFromBlob(const QString &blobFile);
     bool saveS60ThemeToBlob(const QString &blobFile) const;
-#endif // !Q_WS_S60
+#endif // !Q_OS_SYMBIAN
 
 protected Q_SLOTS:
     QIcon standardIconImplementation(
@@ -113,8 +111,6 @@ private:
     friend class QApplicationPrivate;
 };
 
-#endif // QT_NO_STYLE_S60
-
 QT_END_NAMESPACE
 
 QT_END_HEADER
diff --git a/src/gui/styles/qs60style_stub.cpp b/src/gui/styles/qs60style_stub.cpp
new file mode 100644
index 0000000..a3a5b9d
--- /dev/null
+++ b/src/gui/styles/qs60style_stub.cpp
@@ -0,0 +1,131 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtGui module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights.  These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qs60style.h"
+#include "qdebug.h"
+
+#if defined(QT_NO_STYLE_S60)
+QT_BEGIN_NAMESPACE
+
+QS60Style::QS60Style()
+{
+    qWarning() << "QS60Style stub created";
+}
+
+QS60Style::~QS60Style()
+{
+}
+
+void QS60Style::drawComplexControl(ComplexControl , const QStyleOptionComplex *, QPainter *, const QWidget *) const
+{
+}
+
+void QS60Style::drawControl(ControlElement , const QStyleOption *, QPainter *, const QWidget *) const
+{
+}
+
+void QS60Style::drawPrimitive(PrimitiveElement , const QStyleOption *, QPainter *, const QWidget *) const
+{
+}
+
+int QS60Style::pixelMetric(PixelMetric , const QStyleOption *, const QWidget *) const
+{
+    return 0;
+}
+
+QSize QS60Style::sizeFromContents(ContentsType , const QStyleOption *, const QSize &, const QWidget *) const
+{
+    return QSize();
+}
+
+int QS60Style::styleHint(StyleHint , const QStyleOption *, const QWidget *, QStyleHintReturn *) const
+{
+    return 0;
+}
+
+QRect QS60Style::subControlRect(ComplexControl , const QStyleOptionComplex *, SubControl , const QWidget *) const
+{
+    return QRect();
+}
+
+QRect QS60Style::subElementRect(SubElement , const QStyleOption *, const QWidget *) const
+{
+    return QRect();
+}
+
+void QS60Style::polish(QWidget *)
+{
+}
+
+void QS60Style::unpolish(QWidget *)
+{
+}
+
+void QS60Style::polish(QApplication *)
+{
+}
+
+void QS60Style::unpolish(QApplication *)
+{
+}
+
+bool QS60Style::event(QEvent *)
+{
+    return false;
+}
+
+QIcon QS60Style::standardIconImplementation(StandardPixmap , const QStyleOption *, const QWidget *) const
+{
+    return QIcon();
+}
+
+void QS60Style::timerEvent(QTimerEvent *)
+{
+}
+
+bool QS60Style::eventFilter(QObject *, QEvent *)
+{
+    return false;
+}
+
+QT_END_NAMESPACE
+
+#endif // QT_NO_STYLE_S60
diff --git a/src/gui/styles/styles.pri b/src/gui/styles/styles.pri
index 0a96272..b22a908 100644
--- a/src/gui/styles/styles.pri
+++ b/src/gui/styles/styles.pri
@@ -182,5 +182,9 @@ contains( styles, s60 ):contains(QT_CONFIG, s60) {
         RESOURCES += styles/qstyle_s60_simulated.qrc
     }
 } else {
+    symbian {
+        HEADERS += styles/qs60style.h
+        SOURCES += styles/qs60style_stub.cpp
+    }
     DEFINES += QT_NO_STYLE_S60
 }
-- 
cgit v0.12


From 9e2a179cb3384391a8d7ad4be2deea8f3390a37f Mon Sep 17 00:00:00 2001
From: mread <qt-info@nokia.com>
Date: Thu, 1 Jul 2010 10:14:47 +0100
Subject: Avkon Removal DEF file updates

This adds the s60framework exports to the Symbian DEF files. These new
exports remove the need for apps using s60framework classes to link to
Avkon.
---
 src/s60installs/bwins/QtGuiu.def | 22 +++++++++++++++++++++-
 src/s60installs/eabi/QtGuiu.def  | 26 +++++++++++++++++++++++++-
 2 files changed, 46 insertions(+), 2 deletions(-)

diff --git a/src/s60installs/bwins/QtGuiu.def b/src/s60installs/bwins/QtGuiu.def
index 6e20131..de8e052 100644
--- a/src/s60installs/bwins/QtGuiu.def
+++ b/src/s60installs/bwins/QtGuiu.def
@@ -8181,7 +8181,7 @@ EXPORTS
 	?rowsInserted@QTreeView@@MAEXABVQModelIndex@@HH@Z @ 8180 NONAME ; void QTreeView::rowsInserted(class QModelIndex const &, int, int)
 	?rowsRemoved@QTreeView@@IAEXABVQModelIndex@@HH@Z @ 8181 NONAME ; void QTreeView::rowsRemoved(class QModelIndex const &, int, int)
 	?rubberBandSelectionMode@QGraphicsView@@QBE?AW4ItemSelectionMode@Qt@@XZ @ 8182 NONAME ; enum Qt::ItemSelectionMode QGraphicsView::rubberBandSelectionMode(void) const
-	?s60AdjustedPosition@QDialog@@AAE_NXZ @ 8183 NONAME ; bool QDialog::s60AdjustedPosition(void)
+	?symbianAdjustedPosition@QDialog@@AAE_NXZ @ 8183 NONAME ; bool QDialog::symbianAdjustedPosition(void)
 	?s60UpdateIsOpaque@QWidgetPrivate@@QAEXXZ @ 8184 NONAME ; void QWidgetPrivate::s60UpdateIsOpaque(void)
 	?saturation@QColor@@QBEHXZ @ 8185 NONAME ; int QColor::saturation(void) const
 	?saturationF@QColor@@QBEMXZ @ 8186 NONAME ; float QColor::saturationF(void) const
@@ -12824,4 +12824,24 @@ EXPORTS
 	?createPixmapForImage@QRasterPixmapData@@IAEXAAVQImage@@V?$QFlags@W4ImageConversionFlag@Qt@@@@_N@Z @ 12823 NONAME ; void QRasterPixmapData::createPixmapForImage(class QImage &, class QFlags<enum Qt::ImageConversionFlag>, bool)
 	??0Tab@QTextOption@@QAE@MW4TabType@1@VQChar@@@Z @ 12824 NONAME ; QTextOption::Tab::Tab(float, enum QTextOption::TabType, class QChar)
 	?fromData@QRasterPixmapData@@UAE_NPBEIPBDV?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12825 NONAME ; bool QRasterPixmapData::fromData(unsigned char const *, unsigned int, char const *, class QFlags<enum Qt::ImageConversionFlag>)
+	?OpenIniFileLC@QS60MainApplication@@UBEPAVCDictionaryStore@@AAVRFs@@@Z @ 12826 NONAME ; class CDictionaryStore * QS60MainApplication::OpenIniFileLC(class RFs &) const
+	?Reserved_MtsmObject@QS60MainAppUi@@MAEXXZ @ 12827 NONAME ; void QS60MainAppUi::Reserved_MtsmObject(void)
+	?HandleForegroundEventL@QS60MainAppUi@@MAEXH@Z @ 12828 NONAME ; void QS60MainAppUi::HandleForegroundEventL(int)
+	?OpenFileL@QS60MainDocument@@UAEPAVCFileStore@@HABVTDesC16@@AAVRFs@@@Z @ 12829 NONAME ; class CFileStore * QS60MainDocument::OpenFileL(int, class TDesC16 const &, class RFs &)
+	?HandleTouchPaneSizeChange@QS60MainAppUi@@UAEXXZ @ 12830 NONAME ; void QS60MainAppUi::HandleTouchPaneSizeChange(void)
+	?Reserved_MtsmPosition@QS60MainAppUi@@MAEXXZ @ 12831 NONAME ; void QS60MainAppUi::Reserved_MtsmPosition(void)
+	?ApplicationRect@QS60MainAppUi@@UBE?AVTRect@@XZ @ 12832 NONAME ; class TRect QS60MainAppUi::ApplicationRect(void) const
+	?HandleSystemEventL@QS60MainAppUi@@MAEXABVTWsEvent@@@Z @ 12833 NONAME ; void QS60MainAppUi::HandleSystemEventL(class TWsEvent const &)
+	?HandleApplicationSpecificEventL@QS60MainAppUi@@MAEXHABVTWsEvent@@@Z @ 12834 NONAME ; void QS60MainAppUi::HandleApplicationSpecificEventL(int, class TWsEvent const &)
+	?HandleError@QS60MainAppUi@@UAE?AW4TErrorHandlerResponse@@HABUSExtendedError@@AAVTDes16@@1@Z @ 12835 NONAME ; enum TErrorHandlerResponse QS60MainAppUi::HandleError(int, struct SExtendedError const &, class TDes16 &, class TDes16 &)
+	?PrepareToExit@QS60MainAppUi@@UAEXXZ @ 12836 NONAME ; void QS60MainAppUi::PrepareToExit(void)
+	?MopSupplyObject@QS60MainAppUi@@MAE?AVPtr@TTypeUid@@V3@@Z @ 12837 NONAME ; class TTypeUid::Ptr QS60MainAppUi::MopSupplyObject(class TTypeUid)
+	?SetFadedL@QS60MainAppUi@@UAEXH@Z @ 12838 NONAME ; void QS60MainAppUi::SetFadedL(int)
+	?Exit@QS60MainAppUi@@UAEXXZ @ 12839 NONAME ; void QS60MainAppUi::Exit(void)
+	?ProcessCommandL@QS60MainAppUi@@UAEXH@Z @ 12840 NONAME ; void QS60MainAppUi::ProcessCommandL(int)
+	?OpenFileL@QS60MainDocument@@UAEXAAPAVCFileStore@@AAVRFile@@@Z @ 12841 NONAME ; void QS60MainDocument::OpenFileL(class CFileStore * &, class RFile &)
+	?HandleScreenDeviceChangedL@QS60MainAppUi@@MAEXXZ @ 12842 NONAME ; void QS60MainAppUi::HandleScreenDeviceChangedL(void)
+	?PreDocConstructL@QS60MainApplication@@UAEXXZ @ 12843 NONAME ; void QS60MainApplication::PreDocConstructL(void)
+	?NewAppServerL@QS60MainApplication@@UAEXAAPAVCApaAppServer@@@Z @ 12844 NONAME ; void QS60MainApplication::NewAppServerL(class CApaAppServer * &)
+	?HandleViewDeactivation@QS60MainAppUi@@UAEXABVTVwsViewId@@0@Z @ 12845 NONAME ; void QS60MainAppUi::HandleViewDeactivation(class TVwsViewId const &, class TVwsViewId const &)
 
diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def
index e7d865b..5e46a25 100644
--- a/src/s60installs/eabi/QtGuiu.def
+++ b/src/s60installs/eabi/QtGuiu.def
@@ -5957,7 +5957,7 @@ EXPORTS
 	_ZN7QDialog16staticMetaObjectE @ 5956 NONAME DATA 16
 	_ZN7QDialog18setSizeGripEnabledEb @ 5957 NONAME
 	_ZN7QDialog19getStaticMetaObjectEv @ 5958 NONAME
-	_ZN7QDialog19s60AdjustedPositionEv @ 5959 NONAME
+	_ZN7QDialog23symbianAdjustedPositionEv @ 5959 NONAME
 	_ZN7QDialog4doneEi @ 5960 NONAME
 	_ZN7QDialog4execEv @ 5961 NONAME
 	_ZN7QDialog4openEv @ 5962 NONAME
@@ -12020,4 +12020,28 @@ EXPORTS
 	_ZN10QImageData14convertInPlaceEN6QImage6FormatE6QFlagsIN2Qt19ImageConversionFlagEE @ 12019 NONAME
 	_ZN17QRasterPixmapData20createPixmapForImageER6QImage6QFlagsIN2Qt19ImageConversionFlagEEb @ 12020 NONAME
 	_ZN17QRasterPixmapData8fromDataEPKhjPKc6QFlagsIN2Qt19ImageConversionFlagEE @ 12021 NONAME
+	_ZN13QS60MainAppUi11HandleErrorEiRK14SExtendedErrorR6TDes16S4_ @ 12022 NONAME
+	_ZN13QS60MainAppUi13PrepareToExitEv @ 12023 NONAME
+	_ZN13QS60MainAppUi15MopSupplyObjectE8TTypeUid @ 12024 NONAME
+	_ZN13QS60MainAppUi15ProcessCommandLEi @ 12025 NONAME
+	_ZN13QS60MainAppUi18HandleSystemEventLERK8TWsEvent @ 12026 NONAME
+	_ZN13QS60MainAppUi19Reserved_MtsmObjectEv @ 12027 NONAME
+	_ZN13QS60MainAppUi21Reserved_MtsmPositionEv @ 12028 NONAME
+	_ZN13QS60MainAppUi22HandleForegroundEventLEi @ 12029 NONAME
+	_ZN13QS60MainAppUi22HandleViewDeactivationERK10TVwsViewIdS2_ @ 12030 NONAME
+	_ZN13QS60MainAppUi25HandleTouchPaneSizeChangeEv @ 12031 NONAME
+	_ZN13QS60MainAppUi26HandleScreenDeviceChangedLEv @ 12032 NONAME
+	_ZN13QS60MainAppUi31HandleApplicationSpecificEventLEiRK8TWsEvent @ 12033 NONAME
+	_ZN13QS60MainAppUi4ExitEv @ 12034 NONAME
+	_ZN13QS60MainAppUi9SetFadedLEi @ 12035 NONAME
+	_ZN16QS60MainDocument9OpenFileLERP10CFileStoreR5RFile @ 12036 NONAME
+	_ZN16QS60MainDocument9OpenFileLEiRK7TDesC16R3RFs @ 12037 NONAME
+	_ZN19QS60MainApplication13NewAppServerLERP13CApaAppServer @ 12038 NONAME
+	_ZN19QS60MainApplication16PreDocConstructLEv @ 12039 NONAME
+	_ZNK13QS60MainAppUi15ApplicationRectEv @ 12040 NONAME
+	_ZNK19QS60MainApplication13OpenIniFileLCER3RFs @ 12041 NONAME
+	_ZThn100_N13QS60MainAppUi25HandleTouchPaneSizeChangeEv @ 12042 NONAME
+	_ZThn24_N13QS60MainAppUi15ProcessCommandLEi @ 12043 NONAME
+	_ZThn40_N13QS60MainAppUi15MopSupplyObjectE8TTypeUid @ 12044 NONAME
+	_ZThn92_N13QS60MainAppUi22HandleViewDeactivationERK10TVwsViewIdS2_ @ 12045 NONAME
 
-- 
cgit v0.12


From bdb90df5d51d071c5b105a36654184a2c0f6ed65 Mon Sep 17 00:00:00 2001
From: mread <qt-info@nokia.com>
Date: Thu, 1 Jul 2010 10:54:29 +0100
Subject: fix for broken input method loading

Changed use of wrong flag "Q_WS_SYMBIAN" back to "Q_WS_S60" so that
input methods should work correctly in S60 builds of Qt.
---
 src/gui/kernel/qapplication.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp
index 893de03..365c2c8 100644
--- a/src/gui/kernel/qapplication.cpp
+++ b/src/gui/kernel/qapplication.cpp
@@ -5338,7 +5338,7 @@ QInputContext *QApplication::inputContext() const
             qic = QInputContextFactory::create(QLatin1String("xim"), that);
         that->d_func()->inputContext = qic;
     }
-#elif defined(Q_WS_SYMBIAN)
+#elif defined(Q_WS_S60)
     if (!d->inputContext) {
         QApplication *that = const_cast<QApplication *>(this);
         const QStringList keys = QInputContextFactory::keys();
-- 
cgit v0.12


From 30fbf43186521c10b9cd36577da57688be7f600d Mon Sep 17 00:00:00 2001
From: Sami Merila <sami.merila@nokia.com>
Date: Thu, 1 Jul 2010 14:43:18 +0300
Subject: QProgressDialog text is too close to dialog border

This is due to that in Symbian, dialog border is not definitive.
The actual border might be few pixels inside the dialog area to support
partial transparency of dialog corners. Therefore laying out labels
to near border (to y coordinate 0) makes the label cross the dialog
border area for some themes.

Fixed, by moving the dialog content down
PM_DefaultTopLevelMargin pixels.

Task-number: QT-3511
Reviewed-by: Alessandro Portale
---
 src/gui/dialogs/qprogressdialog.cpp | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/gui/dialogs/qprogressdialog.cpp b/src/gui/dialogs/qprogressdialog.cpp
index a2d7b23..d64c847 100644
--- a/src/gui/dialogs/qprogressdialog.cpp
+++ b/src/gui/dialogs/qprogressdialog.cpp
@@ -153,6 +153,13 @@ void QProgressDialogPrivate::layout()
     const bool centered =
         bool(q->style()->styleHint(QStyle::SH_ProgressDialog_CenterCancelButton, 0, q));
 
+    int additionalSpacing = 0;
+#ifdef Q_OS_SYMBIAN
+    //In Symbian, we need to have wider margins for dialog borders, as the actual border is some pixels
+    //inside the dialog area (to enable transparent borders)
+    additionalSpacing = mlr;
+#endif
+
     QSize cs = cancel ? cancel->sizeHint() : QSize(0,0);
     QSize bh = bar->sizeHint();
     int cspc;
@@ -185,8 +192,8 @@ void QProgressDialogPrivate::layout()
     }
 
     if (label)
-        label->setGeometry(mlr, 0, q->width()-mlr*2, lh);
-    bar->setGeometry(mlr, lh+sp, q->width()-mlr*2, bh.height());
+        label->setGeometry(mlr, additionalSpacing, q->width() - mlr * 2, lh);
+    bar->setGeometry(mlr, lh + sp + additionalSpacing, q->width() - mlr * 2, bh.height());
 }
 
 void QProgressDialogPrivate::retranslateStrings()
-- 
cgit v0.12


From 08df5e30508d89c4a8785d3fff7391fe10b2220b Mon Sep 17 00:00:00 2001
From: Liang Qi <liang.qi@nokia.com>
Date: Thu, 1 Jul 2010 15:32:20 +0200
Subject: Using the remaining valid data to construct the QTime object when
 msec parsing failed.

It's relevant with QTBUG-11623, but not a fix for it.

Reviewed-by: Aleksandar Sasha Babic
---
 src/corelib/tools/qdatetime.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/corelib/tools/qdatetime.cpp b/src/corelib/tools/qdatetime.cpp
index ae8aad6..5edb364 100644
--- a/src/corelib/tools/qdatetime.cpp
+++ b/src/corelib/tools/qdatetime.cpp
@@ -1843,7 +1843,7 @@ QTime QTime::fromString(const QString& s, Qt::DateFormat f)
             const QString msec_s(QLatin1String("0.") + s.mid(9, 4));
             const float msec(msec_s.toFloat(&ok));
             if (!ok)
-                return QTime();
+                return QTime(hour, minute, second, 0);
             return QTime(hour, minute, second, qMin(qRound(msec * 1000.0), 999));
         }
     }
-- 
cgit v0.12


From 357be9c19457adc7d48c16898985d0b7ddf0aeee Mon Sep 17 00:00:00 2001
From: mread <qt-info@nokia.com>
Date: Thu, 1 Jul 2010 15:26:04 +0100
Subject: Making orbit input methods work with Qt apps with -no-s60

This change allows Qt to load the Orbit input methods in Symbian
builds when Qt is configured with -no-s60

Reviewed-by: Sami Merila
---
 src/gui/kernel/qapplication.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp
index 365c2c8..ccfe88c 100644
--- a/src/gui/kernel/qapplication.cpp
+++ b/src/gui/kernel/qapplication.cpp
@@ -81,7 +81,7 @@
 #include <private/qt_x11_p.h>
 #endif
 
-#if defined(Q_WS_X11) || defined(Q_WS_S60)
+#if defined(Q_WS_X11) || defined(Q_OS_SYMBIAN)
 #include "qinputcontextfactory.h"
 #endif
 
@@ -5338,7 +5338,7 @@ QInputContext *QApplication::inputContext() const
             qic = QInputContextFactory::create(QLatin1String("xim"), that);
         that->d_func()->inputContext = qic;
     }
-#elif defined(Q_WS_S60)
+#elif defined(Q_OS_SYMBIAN)
     if (!d->inputContext) {
         QApplication *that = const_cast<QApplication *>(this);
         const QStringList keys = QInputContextFactory::keys();
-- 
cgit v0.12


From b61a5e36daf73c467638220ecd495ff95dcf6fe0 Mon Sep 17 00:00:00 2001
From: mread <qt-info@nokia.com>
Date: Thu, 1 Jul 2010 16:59:47 +0100
Subject: Fix for include "private/qt_s60_p.h" in non-symbian builds

Reviewed-by: Shane Kearns
---
 src/gui/dialogs/qdialog.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gui/dialogs/qdialog.cpp b/src/gui/dialogs/qdialog.cpp
index a2adb05..ce84aa6 100644
--- a/src/gui/dialogs/qdialog.cpp
+++ b/src/gui/dialogs/qdialog.cpp
@@ -69,9 +69,9 @@ extern bool qt_wince_is_smartphone(); //is defined in qguifunctions_wce.cpp
 #   include "qfontdialog.h"
 #   include "qcolordialog.h"
 #   include "qwizard.h"
+#   include "private/qt_s60_p.h"
 #endif
 
-#include "private/qt_s60_p.h"
 #if defined(Q_WS_S60)
 #include <AknUtils.h>               // AknLayoutUtils
 #endif
-- 
cgit v0.12


From 36f4d17a139c58cf00d3d9222dd2d35603ac09e8 Mon Sep 17 00:00:00 2001
From: mread <qt-info@nokia.com>
Date: Fri, 2 Jul 2010 09:36:58 +0100
Subject: qtguiu.def merge conflict fix

This takes the new exports added in qt/4.7, leaves them in place and
moves the Avkon Removal exports, which conflicted, to the end of the
DEF file.

Reviewed-by: Sami Merila
---
 src/s60installs/bwins/QtGuiu.def | 75 +++++++++++++++++++++++++---------
 src/s60installs/eabi/QtGuiu.def  | 88 +++++++++++++++++++++++++++++-----------
 2 files changed, 119 insertions(+), 44 deletions(-)

diff --git a/src/s60installs/bwins/QtGuiu.def b/src/s60installs/bwins/QtGuiu.def
index de8e052..296901d 100644
--- a/src/s60installs/bwins/QtGuiu.def
+++ b/src/s60installs/bwins/QtGuiu.def
@@ -12824,24 +12824,59 @@ EXPORTS
 	?createPixmapForImage@QRasterPixmapData@@IAEXAAVQImage@@V?$QFlags@W4ImageConversionFlag@Qt@@@@_N@Z @ 12823 NONAME ; void QRasterPixmapData::createPixmapForImage(class QImage &, class QFlags<enum Qt::ImageConversionFlag>, bool)
 	??0Tab@QTextOption@@QAE@MW4TabType@1@VQChar@@@Z @ 12824 NONAME ; QTextOption::Tab::Tab(float, enum QTextOption::TabType, class QChar)
 	?fromData@QRasterPixmapData@@UAE_NPBEIPBDV?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12825 NONAME ; bool QRasterPixmapData::fromData(unsigned char const *, unsigned int, char const *, class QFlags<enum Qt::ImageConversionFlag>)
-	?OpenIniFileLC@QS60MainApplication@@UBEPAVCDictionaryStore@@AAVRFs@@@Z @ 12826 NONAME ; class CDictionaryStore * QS60MainApplication::OpenIniFileLC(class RFs &) const
-	?Reserved_MtsmObject@QS60MainAppUi@@MAEXXZ @ 12827 NONAME ; void QS60MainAppUi::Reserved_MtsmObject(void)
-	?HandleForegroundEventL@QS60MainAppUi@@MAEXH@Z @ 12828 NONAME ; void QS60MainAppUi::HandleForegroundEventL(int)
-	?OpenFileL@QS60MainDocument@@UAEPAVCFileStore@@HABVTDesC16@@AAVRFs@@@Z @ 12829 NONAME ; class CFileStore * QS60MainDocument::OpenFileL(int, class TDesC16 const &, class RFs &)
-	?HandleTouchPaneSizeChange@QS60MainAppUi@@UAEXXZ @ 12830 NONAME ; void QS60MainAppUi::HandleTouchPaneSizeChange(void)
-	?Reserved_MtsmPosition@QS60MainAppUi@@MAEXXZ @ 12831 NONAME ; void QS60MainAppUi::Reserved_MtsmPosition(void)
-	?ApplicationRect@QS60MainAppUi@@UBE?AVTRect@@XZ @ 12832 NONAME ; class TRect QS60MainAppUi::ApplicationRect(void) const
-	?HandleSystemEventL@QS60MainAppUi@@MAEXABVTWsEvent@@@Z @ 12833 NONAME ; void QS60MainAppUi::HandleSystemEventL(class TWsEvent const &)
-	?HandleApplicationSpecificEventL@QS60MainAppUi@@MAEXHABVTWsEvent@@@Z @ 12834 NONAME ; void QS60MainAppUi::HandleApplicationSpecificEventL(int, class TWsEvent const &)
-	?HandleError@QS60MainAppUi@@UAE?AW4TErrorHandlerResponse@@HABUSExtendedError@@AAVTDes16@@1@Z @ 12835 NONAME ; enum TErrorHandlerResponse QS60MainAppUi::HandleError(int, struct SExtendedError const &, class TDes16 &, class TDes16 &)
-	?PrepareToExit@QS60MainAppUi@@UAEXXZ @ 12836 NONAME ; void QS60MainAppUi::PrepareToExit(void)
-	?MopSupplyObject@QS60MainAppUi@@MAE?AVPtr@TTypeUid@@V3@@Z @ 12837 NONAME ; class TTypeUid::Ptr QS60MainAppUi::MopSupplyObject(class TTypeUid)
-	?SetFadedL@QS60MainAppUi@@UAEXH@Z @ 12838 NONAME ; void QS60MainAppUi::SetFadedL(int)
-	?Exit@QS60MainAppUi@@UAEXXZ @ 12839 NONAME ; void QS60MainAppUi::Exit(void)
-	?ProcessCommandL@QS60MainAppUi@@UAEXH@Z @ 12840 NONAME ; void QS60MainAppUi::ProcessCommandL(int)
-	?OpenFileL@QS60MainDocument@@UAEXAAPAVCFileStore@@AAVRFile@@@Z @ 12841 NONAME ; void QS60MainDocument::OpenFileL(class CFileStore * &, class RFile &)
-	?HandleScreenDeviceChangedL@QS60MainAppUi@@MAEXXZ @ 12842 NONAME ; void QS60MainAppUi::HandleScreenDeviceChangedL(void)
-	?PreDocConstructL@QS60MainApplication@@UAEXXZ @ 12843 NONAME ; void QS60MainApplication::PreDocConstructL(void)
-	?NewAppServerL@QS60MainApplication@@UAEXAAPAVCApaAppServer@@@Z @ 12844 NONAME ; void QS60MainApplication::NewAppServerL(class CApaAppServer * &)
-	?HandleViewDeactivation@QS60MainAppUi@@UAEXABVTVwsViewId@@0@Z @ 12845 NONAME ; void QS60MainAppUi::HandleViewDeactivation(class TVwsViewId const &, class TVwsViewId const &)
+	?transformed@QRuntimePixmapData@@UBE?AVQPixmap@@ABVQTransform@@W4TransformationMode@Qt@@@Z @ 12826 NONAME ; class QPixmap QRuntimePixmapData::transformed(class QTransform const &, enum Qt::TransformationMode) const
+	?scroll@QRuntimePixmapData@@UAE_NHHABVQRect@@@Z @ 12827 NONAME ; bool QRuntimePixmapData::scroll(int, int, class QRect const &)
+	?buffer@QRuntimePixmapData@@UAEPAVQImage@@XZ @ 12828 NONAME ; class QImage * QRuntimePixmapData::buffer(void)
+	?copy@QRuntimePixmapData@@UAEXPBVQPixmapData@@ABVQRect@@@Z @ 12829 NONAME ; void QRuntimePixmapData::copy(class QPixmapData const *, class QRect const &)
+	?fromData@QRuntimePixmapData@@UAE_NPBEIPBDV?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12830 NONAME ; bool QRuntimePixmapData::fromData(unsigned char const *, unsigned int, char const *, class QFlags<enum Qt::ImageConversionFlag>)
+	?readBackInfo@QRuntimePixmapData@@QAEXXZ @ 12831 NONAME ; void QRuntimePixmapData::readBackInfo(void)
+	??_EQRuntimePixmapData@@UAE@I@Z @ 12832 NONAME ; QRuntimePixmapData::~QRuntimePixmapData(unsigned int)
+	?paintEngine@QRuntimePixmapData@@UBEPAVQPaintEngine@@XZ @ 12833 NONAME ; class QPaintEngine * QRuntimePixmapData::paintEngine(void) const
+	?memoryUsage@QRuntimePixmapData@@UBEIXZ @ 12834 NONAME ; unsigned int QRuntimePixmapData::memoryUsage(void) const
+	?toImage@QRasterPixmapData@@UBE?AVQImage@@ABVQRect@@@Z @ 12835 NONAME ; class QImage QRasterPixmapData::toImage(class QRect const &) const
+	?fromImageReader@QRasterPixmapData@@UAEXPAVQImageReader@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12836 NONAME ; void QRasterPixmapData::fromImageReader(class QImageReader *, class QFlags<enum Qt::ImageConversionFlag>)
+	?fill@QRuntimePixmapData@@UAEXABVQColor@@@Z @ 12837 NONAME ; void QRuntimePixmapData::fill(class QColor const &)
+	?alphaChannel@QRuntimePixmapData@@UBE?AVQPixmap@@XZ @ 12838 NONAME ; class QPixmap QRuntimePixmapData::alphaChannel(void) const
+	?createCompatiblePixmapData@QRuntimePixmapData@@UBEPAVQPixmapData@@XZ @ 12839 NONAME ; class QPixmapData * QRuntimePixmapData::createCompatiblePixmapData(void) const
+	?toImage@QRuntimePixmapData@@UBE?AVQImage@@XZ @ 12840 NONAME ; class QImage QRuntimePixmapData::toImage(void) const
+	?resize@QRuntimePixmapData@@UAEXHH@Z @ 12841 NONAME ; void QRuntimePixmapData::resize(int, int)
+	?fromNativeType@QRuntimePixmapData@@UAEXPAXW4NativeType@QPixmapData@@@Z @ 12842 NONAME ; void QRuntimePixmapData::fromNativeType(void *, enum QPixmapData::NativeType)
+	?fromFile@QRuntimePixmapData@@UAE_NABVQString@@PBDV?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12843 NONAME ; bool QRuntimePixmapData::fromFile(class QString const &, char const *, class QFlags<enum Qt::ImageConversionFlag>)
+	?setAlphaChannel@QRuntimePixmapData@@UAEXABVQPixmap@@@Z @ 12844 NONAME ; void QRuntimePixmapData::setAlphaChannel(class QPixmap const &)
+	?fromImageReader@QPixmapData@@UAEXPAVQImageReader@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12845 NONAME ; void QPixmapData::fromImageReader(class QImageReader *, class QFlags<enum Qt::ImageConversionFlag>)
+	?toImage@QPixmapData@@UBE?AVQImage@@ABVQRect@@@Z @ 12846 NONAME ; class QImage QPixmapData::toImage(class QRect const &) const
+	?fromImageReader@QPixmap@@SA?AV1@PAVQImageReader@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12847 NONAME ; class QPixmap QPixmap::fromImageReader(class QImageReader *, class QFlags<enum Qt::ImageConversionFlag>)
+	?fromImage@QRuntimePixmapData@@UAEXABVQImage@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12848 NONAME ; void QRuntimePixmapData::fromImage(class QImage const &, class QFlags<enum Qt::ImageConversionFlag>)
+	?setMask@QRuntimePixmapData@@UAEXABVQBitmap@@@Z @ 12849 NONAME ; void QRuntimePixmapData::setMask(class QBitmap const &)
+	?mask@QRuntimePixmapData@@UBE?AVQBitmap@@XZ @ 12850 NONAME ; class QBitmap QRuntimePixmapData::mask(void) const
+	?createPixmapData@QGraphicsSystem@@UAEPAVQPixmapData@@PAV2@@Z @ 12851 NONAME ; class QPixmapData * QGraphicsSystem::createPixmapData(class QPixmapData *)
+	?metric@QRuntimePixmapData@@UBEHW4PaintDeviceMetric@QPaintDevice@@@Z @ 12852 NONAME ; int QRuntimePixmapData::metric(enum QPaintDevice::PaintDeviceMetric) const
+	??1QRuntimePixmapData@@UAE@XZ @ 12853 NONAME ; QRuntimePixmapData::~QRuntimePixmapData(void)
+	??0QRuntimePixmapData@@QAE@PBVQRuntimeGraphicsSystem@@W4PixelType@QPixmapData@@@Z @ 12854 NONAME ; QRuntimePixmapData::QRuntimePixmapData(class QRuntimeGraphicsSystem const *, enum QPixmapData::PixelType)
+	?hasAlphaChannel@QRuntimePixmapData@@UBE_NXZ @ 12855 NONAME ; bool QRuntimePixmapData::hasAlphaChannel(void) const
+	?runtimeData@QRuntimePixmapData@@UBEPAVQPixmapData@@XZ @ 12856 NONAME ; class QPixmapData * QRuntimePixmapData::runtimeData(void) const
+	?toNativeType@QRuntimePixmapData@@UAEPAXW4NativeType@QPixmapData@@@Z @ 12857 NONAME ; void * QRuntimePixmapData::toNativeType(enum QPixmapData::NativeType)
+	?copy@QRasterPixmapData@@UAEXPBVQPixmapData@@ABVQRect@@@Z @ 12858 NONAME ; void QRasterPixmapData::copy(class QPixmapData const *, class QRect const &)
+	?eglSwapBuffersRegion2NOK@QEgl@@YAHHHHPBH@Z @ 12859 NONAME ; int QEgl::eglSwapBuffersRegion2NOK(int, int, int, int const *)
+	?swapBuffersRegion2NOK@QEglContext@@QAE_NHPBVQRegion@@@Z @ 12860 NONAME ; bool QEglContext::swapBuffersRegion2NOK(int, class QRegion const *)
+	?OpenIniFileLC@QS60MainApplication@@UBEPAVCDictionaryStore@@AAVRFs@@@Z @ 12861 NONAME ; class CDictionaryStore * QS60MainApplication::OpenIniFileLC(class RFs &) const
+	?Reserved_MtsmObject@QS60MainAppUi@@MAEXXZ @ 12862 NONAME ; void QS60MainAppUi::Reserved_MtsmObject(void)
+	?HandleForegroundEventL@QS60MainAppUi@@MAEXH@Z @ 12863 NONAME ; void QS60MainAppUi::HandleForegroundEventL(int)
+	?OpenFileL@QS60MainDocument@@UAEPAVCFileStore@@HABVTDesC16@@AAVRFs@@@Z @ 12864 NONAME ; class CFileStore * QS60MainDocument::OpenFileL(int, class TDesC16 const &, class RFs &)
+	?HandleTouchPaneSizeChange@QS60MainAppUi@@UAEXXZ @ 12865 NONAME ; void QS60MainAppUi::HandleTouchPaneSizeChange(void)
+	?Reserved_MtsmPosition@QS60MainAppUi@@MAEXXZ @ 12866 NONAME ; void QS60MainAppUi::Reserved_MtsmPosition(void)
+	?ApplicationRect@QS60MainAppUi@@UBE?AVTRect@@XZ @ 12867 NONAME ; class TRect QS60MainAppUi::ApplicationRect(void) const
+	?HandleSystemEventL@QS60MainAppUi@@MAEXABVTWsEvent@@@Z @ 12868 NONAME ; void QS60MainAppUi::HandleSystemEventL(class TWsEvent const &)
+	?HandleApplicationSpecificEventL@QS60MainAppUi@@MAEXHABVTWsEvent@@@Z @ 12869 NONAME ; void QS60MainAppUi::HandleApplicationSpecificEventL(int, class TWsEvent const &)
+	?HandleError@QS60MainAppUi@@UAE?AW4TErrorHandlerResponse@@HABUSExtendedError@@AAVTDes16@@1@Z @ 12870 NONAME ; enum TErrorHandlerResponse QS60MainAppUi::HandleError(int, struct SExtendedError const &, class TDes16 &, class TDes16 &)
+	?PrepareToExit@QS60MainAppUi@@UAEXXZ @ 12871 NONAME ; void QS60MainAppUi::PrepareToExit(void)
+	?MopSupplyObject@QS60MainAppUi@@MAE?AVPtr@TTypeUid@@V3@@Z @ 12872 NONAME ; class TTypeUid::Ptr QS60MainAppUi::MopSupplyObject(class TTypeUid)
+	?SetFadedL@QS60MainAppUi@@UAEXH@Z @ 12873 NONAME ; void QS60MainAppUi::SetFadedL(int)
+	?Exit@QS60MainAppUi@@UAEXXZ @ 12874 NONAME ; void QS60MainAppUi::Exit(void)
+	?ProcessCommandL@QS60MainAppUi@@UAEXH@Z @ 12875 NONAME ; void QS60MainAppUi::ProcessCommandL(int)
+	?OpenFileL@QS60MainDocument@@UAEXAAPAVCFileStore@@AAVRFile@@@Z @ 12876 NONAME ; void QS60MainDocument::OpenFileL(class CFileStore * &, class RFile &)
+	?HandleScreenDeviceChangedL@QS60MainAppUi@@MAEXXZ @ 12877 NONAME ; void QS60MainAppUi::HandleScreenDeviceChangedL(void)
+	?PreDocConstructL@QS60MainApplication@@UAEXXZ @ 12878 NONAME ; void QS60MainApplication::PreDocConstructL(void)
+	?NewAppServerL@QS60MainApplication@@UAEXAAPAVCApaAppServer@@@Z @ 12879 NONAME ; void QS60MainApplication::NewAppServerL(class CApaAppServer * &)
+	?HandleViewDeactivation@QS60MainAppUi@@UAEXABVTVwsViewId@@0@Z @ 12880 NONAME ; void QS60MainAppUi::HandleViewDeactivation(class TVwsViewId const &, class TVwsViewId const &)
 
diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def
index 5e46a25..018cba2 100644
--- a/src/s60installs/eabi/QtGuiu.def
+++ b/src/s60installs/eabi/QtGuiu.def
@@ -12020,28 +12020,68 @@ EXPORTS
 	_ZN10QImageData14convertInPlaceEN6QImage6FormatE6QFlagsIN2Qt19ImageConversionFlagEE @ 12019 NONAME
 	_ZN17QRasterPixmapData20createPixmapForImageER6QImage6QFlagsIN2Qt19ImageConversionFlagEEb @ 12020 NONAME
 	_ZN17QRasterPixmapData8fromDataEPKhjPKc6QFlagsIN2Qt19ImageConversionFlagEE @ 12021 NONAME
-	_ZN13QS60MainAppUi11HandleErrorEiRK14SExtendedErrorR6TDes16S4_ @ 12022 NONAME
-	_ZN13QS60MainAppUi13PrepareToExitEv @ 12023 NONAME
-	_ZN13QS60MainAppUi15MopSupplyObjectE8TTypeUid @ 12024 NONAME
-	_ZN13QS60MainAppUi15ProcessCommandLEi @ 12025 NONAME
-	_ZN13QS60MainAppUi18HandleSystemEventLERK8TWsEvent @ 12026 NONAME
-	_ZN13QS60MainAppUi19Reserved_MtsmObjectEv @ 12027 NONAME
-	_ZN13QS60MainAppUi21Reserved_MtsmPositionEv @ 12028 NONAME
-	_ZN13QS60MainAppUi22HandleForegroundEventLEi @ 12029 NONAME
-	_ZN13QS60MainAppUi22HandleViewDeactivationERK10TVwsViewIdS2_ @ 12030 NONAME
-	_ZN13QS60MainAppUi25HandleTouchPaneSizeChangeEv @ 12031 NONAME
-	_ZN13QS60MainAppUi26HandleScreenDeviceChangedLEv @ 12032 NONAME
-	_ZN13QS60MainAppUi31HandleApplicationSpecificEventLEiRK8TWsEvent @ 12033 NONAME
-	_ZN13QS60MainAppUi4ExitEv @ 12034 NONAME
-	_ZN13QS60MainAppUi9SetFadedLEi @ 12035 NONAME
-	_ZN16QS60MainDocument9OpenFileLERP10CFileStoreR5RFile @ 12036 NONAME
-	_ZN16QS60MainDocument9OpenFileLEiRK7TDesC16R3RFs @ 12037 NONAME
-	_ZN19QS60MainApplication13NewAppServerLERP13CApaAppServer @ 12038 NONAME
-	_ZN19QS60MainApplication16PreDocConstructLEv @ 12039 NONAME
-	_ZNK13QS60MainAppUi15ApplicationRectEv @ 12040 NONAME
-	_ZNK19QS60MainApplication13OpenIniFileLCER3RFs @ 12041 NONAME
-	_ZThn100_N13QS60MainAppUi25HandleTouchPaneSizeChangeEv @ 12042 NONAME
-	_ZThn24_N13QS60MainAppUi15ProcessCommandLEi @ 12043 NONAME
-	_ZThn40_N13QS60MainAppUi15MopSupplyObjectE8TTypeUid @ 12044 NONAME
-	_ZThn92_N13QS60MainAppUi22HandleViewDeactivationERK10TVwsViewIdS2_ @ 12045 NONAME
+	_ZN15QGraphicsSystem16createPixmapDataEP11QPixmapData @ 12022 NONAME
+	_ZN17QRasterPixmapData4copyEPK11QPixmapDataRK5QRect @ 12023 NONAME
+	_ZNK11QPixmapData7toImageERK5QRect @ 12024 NONAME
+	_ZNK17QRasterPixmapData7toImageERK5QRect @ 12025 NONAME
+	_ZTV15QGraphicsSystem @ 12026 NONAME
+	_ZN11QPixmapData15fromImageReaderEP12QImageReader6QFlagsIN2Qt19ImageConversionFlagEE @ 12027 NONAME
+	_ZN17QRasterPixmapData15fromImageReaderEP12QImageReader6QFlagsIN2Qt19ImageConversionFlagEE @ 12028 NONAME
+	_ZN18QRuntimePixmapData12readBackInfoEv @ 12029 NONAME
+	_ZN18QRuntimePixmapData12toNativeTypeEN11QPixmapData10NativeTypeE @ 12030 NONAME
+	_ZN18QRuntimePixmapData14fromNativeTypeEPvN11QPixmapData10NativeTypeE @ 12031 NONAME
+	_ZN18QRuntimePixmapData15setAlphaChannelERK7QPixmap @ 12032 NONAME
+	_ZN18QRuntimePixmapData4copyEPK11QPixmapDataRK5QRect @ 12033 NONAME
+	_ZN18QRuntimePixmapData4fillERK6QColor @ 12034 NONAME
+	_ZN18QRuntimePixmapData6bufferEv @ 12035 NONAME
+	_ZN18QRuntimePixmapData6resizeEii @ 12036 NONAME
+	_ZN18QRuntimePixmapData6scrollEiiRK5QRect @ 12037 NONAME
+	_ZN18QRuntimePixmapData7setMaskERK7QBitmap @ 12038 NONAME
+	_ZN18QRuntimePixmapData8fromDataEPKhjPKc6QFlagsIN2Qt19ImageConversionFlagEE @ 12039 NONAME
+	_ZN18QRuntimePixmapData8fromFileERK7QStringPKc6QFlagsIN2Qt19ImageConversionFlagEE @ 12040 NONAME
+	_ZN18QRuntimePixmapData9fromImageERK6QImage6QFlagsIN2Qt19ImageConversionFlagEE @ 12041 NONAME
+	_ZN18QRuntimePixmapDataC1EPK22QRuntimeGraphicsSystemN11QPixmapData9PixelTypeE @ 12042 NONAME
+	_ZN18QRuntimePixmapDataC2EPK22QRuntimeGraphicsSystemN11QPixmapData9PixelTypeE @ 12043 NONAME
+	_ZN18QRuntimePixmapDataD0Ev @ 12044 NONAME
+	_ZN18QRuntimePixmapDataD1Ev @ 12045 NONAME
+	_ZN18QRuntimePixmapDataD2Ev @ 12046 NONAME
+	_ZN7QPixmap15fromImageReaderEP12QImageReader6QFlagsIN2Qt19ImageConversionFlagEE @ 12047 NONAME
+	_ZNK18QRuntimePixmapData11memoryUsageEv @ 12048 NONAME
+	_ZNK18QRuntimePixmapData11paintEngineEv @ 12049 NONAME
+	_ZNK18QRuntimePixmapData11runtimeDataEv @ 12050 NONAME
+	_ZNK18QRuntimePixmapData11transformedERK10QTransformN2Qt18TransformationModeE @ 12051 NONAME
+	_ZNK18QRuntimePixmapData12alphaChannelEv @ 12052 NONAME
+	_ZNK18QRuntimePixmapData15hasAlphaChannelEv @ 12053 NONAME
+	_ZNK18QRuntimePixmapData26createCompatiblePixmapDataEv @ 12054 NONAME
+	_ZNK18QRuntimePixmapData4maskEv @ 12055 NONAME
+	_ZNK18QRuntimePixmapData6metricEN12QPaintDevice17PaintDeviceMetricE @ 12056 NONAME
+	_ZNK18QRuntimePixmapData7toImageEv @ 12057 NONAME
+	_ZTI18QRuntimePixmapData @ 12058 NONAME
+	_ZTV18QRuntimePixmapData @ 12059 NONAME
+	_ZN11QEglContext21swapBuffersRegion2NOKEiPK7QRegion @ 12060 NONAME
+	_ZN4QEgl24eglSwapBuffersRegion2NOKEiiiPKi @ 12061 NONAME
+	_ZN13QS60MainAppUi11HandleErrorEiRK14SExtendedErrorR6TDes16S4_ @ 12062 NONAME
+	_ZN13QS60MainAppUi13PrepareToExitEv @ 12063 NONAME
+	_ZN13QS60MainAppUi15MopSupplyObjectE8TTypeUid @ 12064 NONAME
+	_ZN13QS60MainAppUi15ProcessCommandLEi @ 12065 NONAME
+	_ZN13QS60MainAppUi18HandleSystemEventLERK8TWsEvent @ 12066 NONAME
+	_ZN13QS60MainAppUi19Reserved_MtsmObjectEv @ 12067 NONAME
+	_ZN13QS60MainAppUi21Reserved_MtsmPositionEv @ 12068 NONAME
+	_ZN13QS60MainAppUi22HandleForegroundEventLEi @ 12069 NONAME
+	_ZN13QS60MainAppUi22HandleViewDeactivationERK10TVwsViewIdS2_ @ 12070 NONAME
+	_ZN13QS60MainAppUi25HandleTouchPaneSizeChangeEv @ 12071 NONAME
+	_ZN13QS60MainAppUi26HandleScreenDeviceChangedLEv @ 12072 NONAME
+	_ZN13QS60MainAppUi31HandleApplicationSpecificEventLEiRK8TWsEvent @ 12073 NONAME
+	_ZN13QS60MainAppUi4ExitEv @ 12074 NONAME
+	_ZN13QS60MainAppUi9SetFadedLEi @ 12075 NONAME
+	_ZN16QS60MainDocument9OpenFileLERP10CFileStoreR5RFile @ 12076 NONAME
+	_ZN16QS60MainDocument9OpenFileLEiRK7TDesC16R3RFs @ 12077 NONAME
+	_ZN19QS60MainApplication13NewAppServerLERP13CApaAppServer @ 12078 NONAME
+	_ZN19QS60MainApplication16PreDocConstructLEv @ 12079 NONAME
+	_ZNK13QS60MainAppUi15ApplicationRectEv @ 12080 NONAME
+	_ZNK19QS60MainApplication13OpenIniFileLCER3RFs @ 12081 NONAME
+	_ZThn100_N13QS60MainAppUi25HandleTouchPaneSizeChangeEv @ 12082 NONAME
+	_ZThn24_N13QS60MainAppUi15ProcessCommandLEi @ 12083 NONAME
+	_ZThn40_N13QS60MainAppUi15MopSupplyObjectE8TTypeUid @ 12084 NONAME
+	_ZThn92_N13QS60MainAppUi22HandleViewDeactivationERK10TVwsViewIdS2_ @ 12085 NONAME
 
-- 
cgit v0.12


From 6fd1da7a672532c53eb55b3e2467332d28df5943 Mon Sep 17 00:00:00 2001
From: Miikka Heikkinen <miikka.heikkinen@digia.com>
Date: Fri, 2 Jul 2010 14:20:09 +0300
Subject: Support for "deploy" make target in Symbian

Executing "make deploy" will recreate project sis file and deploy it
into a device.

Task-number: QTBUG-5155
Reviewed-by: axis
---
 doc/src/platforms/symbian-introduction.qdoc             | 11 ++++++-----
 doc/src/snippets/code/doc_src_symbian-introduction.qdoc |  3 +--
 mkspecs/features/sis_targets.prf                        | 10 ++++++++++
 3 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/doc/src/platforms/symbian-introduction.qdoc b/doc/src/platforms/symbian-introduction.qdoc
index 1b3641d..22d858f 100644
--- a/doc/src/platforms/symbian-introduction.qdoc
+++ b/doc/src/platforms/symbian-introduction.qdoc
@@ -112,6 +112,7 @@
     \row \o \c release-armv5 \o Build release binaries for hardware using RVCT.
     \row \o \c run           \o Run the application on the emulator.
     \row \o \c runonphone    \o Run the application on a device.
+    \row \o \c deploy        \o Deploys the project into a device.
     \row \o \c sis           \o Create signed \c .sis file for project.
     \row \o \c unsigned_sis  \o Create unsigned \c .sis file for project.
     \row \o \c installer_sis \o Create signed \l{Smart Installer}{smart installer}
@@ -172,7 +173,7 @@
                                        By default empty.
     \endtable
 
-    The suppported options for \c QT_SIS_OPTIONS:
+    The supported options for \c QT_SIS_OPTIONS:
 
     \target Supported options for QT_SIS_OPTIONS
     \table
@@ -186,7 +187,7 @@
     \endtable
 
     Execute the \c{createpackage.pl} script without any
-    parameters for detailed information about options. By default no otions are given.
+    parameters for detailed information about options. By default no options are given.
 
     For example:
 
@@ -196,9 +197,9 @@
 
     \snippet doc/src/snippets/code/doc_src_symbian-introduction.qdoc 3
 
-    If you want to install the program immediately, make sure that the device
-    is connected to the computer in "PC Suite" mode, and run \c sis target
-    with the \c QT_SIS_OPTIONS=-i, like this:
+    If you want to install the program immediately after creating \c .sis file,
+    make sure that the device is connected to the computer in "PC Suite" mode,
+    and use \c deploy target instead of \c sis target:
 
     \snippet doc/src/snippets/code/doc_src_symbian-introduction.qdoc 5
 
diff --git a/doc/src/snippets/code/doc_src_symbian-introduction.qdoc b/doc/src/snippets/code/doc_src_symbian-introduction.qdoc
index 60c69c0..a2ea686 100644
--- a/doc/src/snippets/code/doc_src_symbian-introduction.qdoc
+++ b/doc/src/snippets/code/doc_src_symbian-introduction.qdoc
@@ -63,6 +63,5 @@
 //! [4]
 
 //! [5]
-   set QT_SIS_OPTIONS=-i
-   make sis
+   make deploy
 //! [5]
diff --git a/mkspecs/features/sis_targets.prf b/mkspecs/features/sis_targets.prf
index c31e38f..19972d7 100644
--- a/mkspecs/features/sis_targets.prf
+++ b/mkspecs/features/sis_targets.prf
@@ -159,6 +159,16 @@ equals(GENERATE_SIS_TARGETS, true) {
 
         QMAKE_DISTCLEAN += $${sis_destdir}/$${baseTarget}.sis
     }
+
+    deploy_target.target = deploy
+    contains(QMAKE_HOST.os, "Windows") {
+        deploy_target.depends = sis
+        deploy_target.commands = call $$target_sis_target.target
+    } else {
+        deploy_target.commands = @echo Deployment not supported in this environment
+    }
+    QMAKE_EXTRA_TARGETS += deploy_target
+
 } else {
     contains(TEMPLATE, subdirs) {
         # Enable recursive sis target.
-- 
cgit v0.12


From e5bd34ac642bf7665f618e5e2ce5f62cfb29fb73 Mon Sep 17 00:00:00 2001
From: Sami Merila <sami.merila@nokia.com>
Date: Fri, 2 Jul 2010 15:30:41 +0300
Subject: ColorDialog is incorrectly positioned

Due to somewhat special nature of colorDialog, it makes no sense to
make it fullscreen, as it is not totally stretchable in height. Making
it fullscreen only makes it appear higher on the screen and there is
an ugly gap between the dialog and softkeys.

Therefore, as a fix, colorDialog is shown in its "natural" window
state.

Task-number: QTBUG-11668
Reviewed-by: Miikka Heikkinen
---
 src/gui/dialogs/qdialog.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/gui/dialogs/qdialog.cpp b/src/gui/dialogs/qdialog.cpp
index ce84aa6..9e0437c 100644
--- a/src/gui/dialogs/qdialog.cpp
+++ b/src/gui/dialogs/qdialog.cpp
@@ -67,7 +67,6 @@ extern bool qt_wince_is_smartphone(); //is defined in qguifunctions_wce.cpp
 #elif defined(Q_OS_SYMBIAN)
 #   include "qfiledialog.h"
 #   include "qfontdialog.h"
-#   include "qcolordialog.h"
 #   include "qwizard.h"
 #   include "private/qt_s60_p.h"
 #endif
@@ -532,7 +531,7 @@ int QDialog::exec()
     bool showSystemDialogFullScreen = false;
 #ifdef Q_OS_SYMBIAN
     if (qobject_cast<QFileDialog *>(this) || qobject_cast<QFontDialog *>(this) ||
-        qobject_cast<QColorDialog *>(this) || qobject_cast<QWizard *>(this)) {
+        qobject_cast<QWizard *>(this)) {
         showSystemDialogFullScreen = true;
     }
 #endif // Q_OS_SYMBIAN
-- 
cgit v0.12


From 844832295daa5e515298142892ed9957ce7659a3 Mon Sep 17 00:00:00 2001
From: Sami Merila <sami.merila@nokia.com>
Date: Fri, 2 Jul 2010 15:40:06 +0300
Subject: QS60Style: Remove gap from QProgressDialog

When showing a progressDialog with QS60Style, there is a strange
empty area after the QProgressbar. This is reserved for label even if
it is not showing one.

Reviewed-by: Alessandro Portale
---
 src/gui/styles/qs60style.cpp | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp
index 45bcc00..7af0224 100644
--- a/src/gui/styles/qs60style.cpp
+++ b/src/gui/styles/qs60style.cpp
@@ -3116,6 +3116,11 @@ QRect QS60Style::subElementRect(SubElement element, const QStyleOption *opt, con
         case SE_CheckBoxFocusRect:
             ret = opt->rect;
             break;
+        case SE_ProgressBarLabel:
+        case SE_ProgressBarContents:
+        case SE_ProgressBarGroove:
+            ret = opt->rect;
+            break;
         default:
             ret = QCommonStyle::subElementRect(element, opt, widget);
     }
-- 
cgit v0.12


From a4afd05595ee15e128a8c4fdb96713bb9aa16d81 Mon Sep 17 00:00:00 2001
From: Sami Merila <sami.merila@nokia.com>
Date: Fri, 2 Jul 2010 15:49:02 +0300
Subject: QS60Style: Simplify QMenu drawing

This cleans up implementation of menu item drawing and "fixes" it, by
moving the rect calculations to occur in subElementRect() method,
instead of in the drawing code itself.

Reviewed-by: Alessandro Portale
---
 src/gui/styles/qs60style.cpp | 67 +++++++++++++++++++++-----------------------
 1 file changed, 32 insertions(+), 35 deletions(-)

diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp
index 7af0224..e28403b 100644
--- a/src/gui/styles/qs60style.cpp
+++ b/src/gui/styles/qs60style.cpp
@@ -1765,52 +1765,31 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
             QRect iconRect = subElementRect(SE_ItemViewItemDecoration, &optionMenuItem, widget);
             QRect textRect = subElementRect(SE_ItemViewItemText, &optionMenuItem, widget);
 
-            //todo: move the vertical spacing stuff into subElementRect
-            const int vSpacing = QS60StylePrivate::pixelMetric(PM_LayoutVerticalSpacing);
             QStyleOptionMenuItem optionCheckBox;
 
             //Regardless of checkbox visibility, make room for it, this mirrors native implementation,
             //where text and icon placement is static regardless of content of menu item.
-            const int hSpacing = QS60StylePrivate::pixelMetric(PM_LayoutHorizontalSpacing);
             optionCheckBox.QStyleOptionMenuItem::operator=(*menuItem);
             optionCheckBox.rect.setWidth(pixelMetric(PM_IndicatorWidth));
             optionCheckBox.rect.setHeight(pixelMetric(PM_IndicatorHeight));
+
+            const int vSpacing = QS60StylePrivate::pixelMetric(PM_LayoutVerticalSpacing);
+            //The vertical spacing is doubled; it needs one spacing to separate checkbox from
+            //highlight and then it needs one to separate it whatever is shown after it (text/icon/both).
+            const int moveByX = optionCheckBox.rect.width() + 2 * vSpacing;
             optionCheckBox.rect.moveCenter(QPoint(
-                    optionCheckBox.rect.center().x(), 
+                    optionCheckBox.rect.center().x() + moveByX >> 1, 
                     menuItem->rect.center().y()));
-            const int moveByX = optionCheckBox.rect.width() + vSpacing +
-                    pixelMetric(PM_DefaultFrameWidth);
-            if (optionMenuItem.direction == Qt::LeftToRight) {
-                if (iconRect.isValid()) {
-                    iconRect.translate(moveByX, 0);
-                    iconRect.setWidth(iconRect.width() + vSpacing);
-                }
-                if (textRect.isValid()) {
-                    textRect.translate(moveByX, 0);
-                    textRect.setWidth(textRect.width() - moveByX - vSpacing);
-                }
-                optionCheckBox.rect.translate(vSpacing + pixelMetric(PM_DefaultFrameWidth), hSpacing >> 1);
-            } else {
-                if (textRect.isValid())
-                    textRect.setWidth(textRect.width() - moveByX);
-                if (iconRect.isValid()) {
-                    iconRect.setWidth(iconRect.width() + vSpacing);
-                    iconRect.translate(-optionCheckBox.rect.width() - vSpacing, 0);
-                }
+
+            if (optionMenuItem.direction != Qt::LeftToRight)
                 optionCheckBox.rect.translate(textRect.width() + iconRect.width(), 0);
-            }
+
 
             const bool selected = (option->state & State_Selected) && (option->state & State_Enabled);
             if (selected) {
-                const int spacing = pixelMetric(PM_DefaultFrameWidth) * 2;
-                int start; int end;
-                if (QApplication::layoutDirection() == Qt::LeftToRight) {
-                    start = optionMenuItem.rect.left() + spacing;
-                    end = qMax(textRect.right(), iconRect.right() + spacing);
-                } else {
-                    start = qMax(spacing, qMin(textRect.left(), iconRect.left() - spacing));
-                    end = optionMenuItem.rect.right() - spacing;
-                }
+                const int spacing = ignoreCheckMark ? (vSpacing + QS60StylePrivate::pixelMetric(PM_DefaultFrameWidth)) : 0;
+                const int start = optionMenuItem.rect.left() + spacing;
+                const int end = optionMenuItem.rect.right() - spacing;
                 //-1 adjustment to avoid highlight being on top of possible separator item
                 const QRect highlightRect = QRect(
                         QPoint(start, option->rect.top()), 
@@ -3025,20 +3004,38 @@ QRect QS60Style::subElementRect(SubElement element, const QStyleOption *opt, con
                     pixelMetric(PM_SmallIconSize, opt, widget);
                 ret = menuItem->rect;
 
+                QRect checkBoxRect = checkable ? menuItem->rect : QRect();
+                if (checkable) {
+                    checkBoxRect.setWidth(pixelMetric(PM_IndicatorWidth));
+                    checkBoxRect.setHeight(pixelMetric(PM_IndicatorHeight));
+                }
+
+                const int vSpacing = QS60StylePrivate::pixelMetric(PM_LayoutVerticalSpacing);
+                //The vertical spacing is doubled; it needs one spacing to separate checkbox from
+                //highlight and then it needs one to separate it whatever is shown after it (text/icon/both).
+                const int moveByX = checkBoxRect.width() + 2 * vSpacing;
+
                 if (element == SE_ItemViewItemDecoration) {
                     if (menuItem->icon.isNull()) {
                         ret = QRect();
                     } else {
                         if (menuItem->direction == Qt::RightToLeft)
-                            ret.translate(ret.width() - indicatorWidth, 0);
+                            ret.translate(ret.width() - indicatorWidth - moveByX, 0);
+                        else
+                            ret.translate(moveByX, 0);
                         ret.setWidth(indicatorWidth);
                     }
                 } else {
-                    if (!menuItem->icon.isNull())
+                    if (!menuItem->icon.isNull()) {
                         if (menuItem->direction == Qt::LeftToRight)
                             ret.adjust(indicatorWidth, 0, 0, 0);
                         else
                             ret.adjust(0, 0, -indicatorWidth, 0);
+                    }
+                    if (menuItem->direction == Qt::LeftToRight)
+                        ret.adjust(moveByX, 0, 0, 0);
+                    else
+                        ret.adjust(0, 0, -moveByX, 0);
 
                     // Make room for submenu indicator
                     if (menuItem->menuItemType == QStyleOptionMenuItem::SubMenu){
-- 
cgit v0.12


From f9dfd989197826c88f4d40e232fbbb040250f56f Mon Sep 17 00:00:00 2001
From: axis <qt-info@nokia.com>
Date: Thu, 1 Jul 2010 16:37:58 +0200
Subject: Added a top-level runonphone target for Qt and QtWebKit.

RevBy:    Trust me
---
 src/src.pro | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/src.pro b/src/src.pro
index 0573c2d..9704716 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -187,4 +187,15 @@ debug.depends = $$EXTRA_DEBUG_TARGETS
 release.depends = $$EXTRA_RELEASE_TARGETS
 QMAKE_EXTRA_TARGETS += debug release
 
+# This gives us a top-level runonphone target, which installs Qt and optionally QtWebKit.
+contains(CONFIG, run_on_phone) {
+    src_runonphone_target.target = runonphone
+    src_runonphone_target.commands = $(MAKE) -C $$QT_BUILD_TREE/src/s60installs runonphone
+    src_runonphone_target.depends = first
+    contains(QT_CONFIG, webkit) {
+        src_runonphone_target.commands += && $(MAKE) -C $$QT_BUILD_TREE/src/3rdparty/webkit/WebCore runonphone
+    }
+    QMAKE_EXTRA_TARGETS += src_runonphone_target
+}
+
 SUBDIRS += $$SRC_SUBDIRS
-- 
cgit v0.12


From e4616afabbdccdbd6f53e5c96086bd4065af9227 Mon Sep 17 00:00:00 2001
From: axis <qt-info@nokia.com>
Date: Thu, 1 Jul 2010 16:40:11 +0200
Subject: Fixed deployment locations for various profiles.

RevBy:    Trust me
---
 demos/declarative/minehunt/minehunt.pro         | 2 +-
 demos/spectrum/app/app.pro                      | 2 +-
 src/imports/folderlistmodel/folderlistmodel.pro | 3 ++-
 src/imports/gestures/gestures.pro               | 3 ++-
 src/imports/particles/particles.pro             | 3 ++-
 5 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/demos/declarative/minehunt/minehunt.pro b/demos/declarative/minehunt/minehunt.pro
index aac91f6..f85afeb 100644
--- a/demos/declarative/minehunt/minehunt.pro
+++ b/demos/declarative/minehunt/minehunt.pro
@@ -27,7 +27,7 @@ symbian:{
     TARGET.EPOCALLOWDLLDATA = 1
     include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
     TARGET.CAPABILITY = NetworkServices ReadUserData
-    importFiles.sources = qmlminehuntplugin.dll \
+    importFiles.sources = MinehuntCore/qmlminehuntplugin.dll \
     MinehuntCore/Explosion.qml \
     MinehuntCore/pics \
     MinehuntCore/qmldir
diff --git a/demos/spectrum/app/app.pro b/demos/spectrum/app/app.pro
index c15edf9..ebeef87 100644
--- a/demos/spectrum/app/app.pro
+++ b/demos/spectrum/app/app.pro
@@ -86,7 +86,7 @@ symbian {
 
     !contains(DEFINES, DISABLE_FFT) {
         # Include FFTReal DLL in the SIS file
-        fftreal.sources = $${EPOCROOT}epoc32/release/$(PLATFORM)/$(TARGET)/fftreal.dll
+        fftreal.sources = ../3rdparty/fftreal/fftreal.dll
         fftreal.path = !:/sys/bin
         DEPLOYMENT += fftreal
     }
diff --git a/src/imports/folderlistmodel/folderlistmodel.pro b/src/imports/folderlistmodel/folderlistmodel.pro
index 49a6baa..c306037 100644
--- a/src/imports/folderlistmodel/folderlistmodel.pro
+++ b/src/imports/folderlistmodel/folderlistmodel.pro
@@ -8,6 +8,7 @@ SOURCES += qdeclarativefolderlistmodel.cpp plugin.cpp
 HEADERS += qdeclarativefolderlistmodel.h
 
 QTDIR_build:DESTDIR = $$QT_BUILD_TREE/imports/$$TARGETPATH
+else:DESTDIR = .
 target.path = $$[QT_INSTALL_IMPORTS]/$$TARGETPATH
 
 qmldir.files += $$PWD/qmldir
@@ -17,7 +18,7 @@ symbian:{
     TARGET.UID3 = 0x20021320
     include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
     
-    importFiles.sources = qmlfolderlistmodelplugin.dll qmldir
+    importFiles.sources = $$DESTDIR/qmlfolderlistmodelplugin$${QT_LIBINFIX}.dll qmldir
     importFiles.path = $$QT_IMPORTS_BASE_DIR/$$TARGETPATH
     
     DEPLOYMENT = importFiles
diff --git a/src/imports/gestures/gestures.pro b/src/imports/gestures/gestures.pro
index 265bbca..8a772da 100644
--- a/src/imports/gestures/gestures.pro
+++ b/src/imports/gestures/gestures.pro
@@ -8,6 +8,7 @@ SOURCES += qdeclarativegesturearea.cpp plugin.cpp
 HEADERS += qdeclarativegesturearea_p.h
 
 QTDIR_build:DESTDIR = $$QT_BUILD_TREE/imports/$$TARGETPATH
+else:DESTDIR = .
 target.path = $$[QT_INSTALL_IMPORTS]/$$TARGETPATH
 
 qmldir.files += $$PWD/qmldir
@@ -17,7 +18,7 @@ symbian:{
     TARGET.UID3 = 0x2002131F
     include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
     
-    importFiles.sources = qmlgesturesplugin.dll qmldir
+    importFiles.sources = $$DESTDIR/qmlgesturesplugin$${QT_LIBINFIX}.dll qmldir
     importFiles.path = $$QT_IMPORTS_BASE_DIR/$$TARGETPATH
     
     DEPLOYMENT = importFiles
diff --git a/src/imports/particles/particles.pro b/src/imports/particles/particles.pro
index 91c1b9f..68462e7 100644
--- a/src/imports/particles/particles.pro
+++ b/src/imports/particles/particles.pro
@@ -12,6 +12,7 @@ HEADERS += \
     qdeclarativeparticles_p.h
 
 QTDIR_build:DESTDIR = $$QT_BUILD_TREE/imports/$$TARGETPATH
+else:DESTDIR = .
 target.path = $$[QT_INSTALL_IMPORTS]/$$TARGETPATH
 
 qmldir.files += $$PWD/qmldir
@@ -21,7 +22,7 @@ symbian:{
     TARGET.UID3 = 0x2002131E
     include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
     
-    importFiles.sources = qmlparticlesplugin.dll qmldir
+    importFiles.sources = $$DESTDIR/qmlparticlesplugin$${QT_LIBINFIX}.dll qmldir
     importFiles.path = $$QT_IMPORTS_BASE_DIR/$$TARGETPATH
     
     DEPLOYMENT = importFiles
-- 
cgit v0.12


From ad82e439c735912d069a2cf456b04e3d10016e84 Mon Sep 17 00:00:00 2001
From: axis <qt-info@nokia.com>
Date: Thu, 1 Jul 2010 17:09:43 +0200
Subject: Fixed symbian/linux-armcc mkspec when configured with -qtlibinfix.

Task:     QTBUG-11396
RevBy:    Miikka Heikkinen
---
 configure                                     |  7 +++++++
 mkspecs/features/symbian/def_files.prf        | 18 +++++++++++-------
 mkspecs/features/symbian/symbian_building.prf |  8 ++++++--
 src/corelib/corelib.pro                       |  2 +-
 src/gui/gui.pro                               |  2 +-
 5 files changed, 26 insertions(+), 11 deletions(-)

diff --git a/configure b/configure
index 4650229..01040e3 100755
--- a/configure
+++ b/configure
@@ -7627,6 +7627,13 @@ cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
 EOF
 fi
 
+if [ -n "$QT_LIBINFIX" ]; then
+cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
+#define QT_LIBINFIX "$QT_LIBINFIX"
+
+EOF
+fi
+
 # avoid unecessary rebuilds by copying only if qconfig.h has changed
 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
     rm -f "$outpath/src/corelib/global/qconfig.h.new"
diff --git a/mkspecs/features/symbian/def_files.prf b/mkspecs/features/symbian/def_files.prf
index bae9d2d..f243878 100644
--- a/mkspecs/features/symbian/def_files.prf
+++ b/mkspecs/features/symbian/def_files.prf
@@ -3,6 +3,10 @@
 
 CONFIG -= def_files_disabled
 
+# We need a target name without the INFIX'ed part, since DEF files are not infixed.
+equals(QMAKE_TARGET_PRODUCT, Qt4):clean_TARGET = $$replace(TARGET, "$${QT_LIBINFIX}$", "")
+else:clean_TARGET = $$TARGET
+
 symbian-abld|symbian-sbsv2 {
     # Firstly, if the MMP_RULES already contain a defBlock variable, don't generate another one
     # (this bit is slightly magic, because it depends upon everyone creating their DEFFILE statements
@@ -17,25 +21,25 @@ symbian-abld|symbian-sbsv2 {
             !isEmpty(DEF_FILE) {
                 defBlock = \
                 "$${LITERAL_HASH}ifdef WINSCW" \
-                "DEFFILE $$DEF_FILE/bwins/$${TARGET}.def" \
+                "DEFFILE $$DEF_FILE/bwins/$${clean_TARGET}.def" \
                 "$${LITERAL_HASH}elif defined EABI" \
-                "DEFFILE $$DEF_FILE/eabi/$${TARGET}.def" \
+                "DEFFILE $$DEF_FILE/eabi/$${clean_TARGET}.def" \
                 "$${LITERAL_HASH}endif"
             } else:!isEmpty(defFilePath) {
                 defBlock = \
                 "$${LITERAL_HASH}ifdef WINSCW" \
-                "DEFFILE $$defFilePath/bwins/$${TARGET}.def" \
+                "DEFFILE $$defFilePath/bwins/$${clean_TARGET}.def" \
                 "$${LITERAL_HASH}elif defined EABI" \
-                "DEFFILE $$defFilePath/eabi/$${TARGET}.def" \
+                "DEFFILE $$defFilePath/eabi/$${clean_TARGET}.def" \
                 "$${LITERAL_HASH}endif"
             } else {
                 # If defFilePath is not defined, then put the folders containing the DEF files at the
                 # same level as the .pro (and generated MMP) file(s)
                 defBlock = \
                 "$${LITERAL_HASH}ifdef WINSCW" \
-                "DEFFILE ./bwins/$${TARGET}.def" \
+                "DEFFILE ./bwins/$${clean_TARGET}.def" \
                 "$${LITERAL_HASH}elif defined EABI" \
-                "DEFFILE ./eabi/$${TARGET}.def" \
+                "DEFFILE ./eabi/$${clean_TARGET}.def" \
                 "$${LITERAL_HASH}endif"
             }
             MMP_RULES += defBlock
@@ -52,7 +56,7 @@ symbian-abld|symbian-sbsv2 {
         !exists("$$_PRO_FILE_PWD_/$$defFile/eabi") {
             system("$$QMAKE_MKDIR $$_PRO_FILE_PWD_/$$defFile/eabi")
         }
-        elf2e32FileToAdd = $$_PRO_FILE_PWD_/$$defFile/eabi/$$basename(TARGET)u.def
+        elf2e32FileToAdd = $$_PRO_FILE_PWD_/$$defFile/eabi/$$basename(clean_TARGET)u.def
     } else {
         elf2e32FileToAdd = $$_PRO_FILE_PWD_/$$defFile
     }
diff --git a/mkspecs/features/symbian/symbian_building.prf b/mkspecs/features/symbian/symbian_building.prf
index c4088ca..ce124ec 100644
--- a/mkspecs/features/symbian/symbian_building.prf
+++ b/mkspecs/features/symbian/symbian_building.prf
@@ -1,7 +1,11 @@
+# We need a target name without the INFIX'ed part, since flags are not infixed.
+equals(QMAKE_TARGET_PRODUCT, Qt4):clean_TARGET = $$replace(TARGET, "$${QT_LIBINFIX}$", "")
+else:clean_TARGET = $$TARGET
+
 # we have some module specific options (defined in qt.prf) lets add them
-!contains(TARGET, ".*[ -/].*"):eval(TMPVAR = \$\$QMAKE_$${TARGET}_CXXFLAGS)
+!contains(clean_TARGET, ".*[ -/].*"):eval(TMPVAR = \$\$QMAKE_$${clean_TARGET}_CXXFLAGS)
 !isEmpty(TMPVAR):QMAKE_CXXFLAGS += $$TMPVAR
-!contains(TARGET, ".*[ -/].*"):eval(TMPVAR = \$\$QMAKE_$${TARGET}_LFLAGS)
+!contains(clean_TARGET, ".*[ -/].*"):eval(TMPVAR = \$\$QMAKE_$${clean_TARGET}_LFLAGS)
 !isEmpty(TMPVAR) {
     QMAKE_LFLAGS += $$TMPVAR
 } else :linux-gcce {  # lets provide a simple default. Without elf2e32 complains
diff --git a/src/corelib/corelib.pro b/src/corelib/corelib.pro
index e39d326..dba2a42 100644
--- a/src/corelib/corelib.pro
+++ b/src/corelib/corelib.pro
@@ -48,7 +48,7 @@ symbian: {
     pu_header = "; Partial upgrade package for testing QtCore changes without reinstalling everything" \
                 "$${LITERAL_HASH}{\"Qt corelib\"}, (0x2001E61C), $${QT_MAJOR_VERSION},$${QT_MINOR_VERSION},$${QT_PATCH_VERSION}, TYPE=PU"
     partial_upgrade.pkg_prerules = pu_header vendorinfo
-    partial_upgrade.sources = $$QMAKE_LIBDIR_QT/QtCore.dll
+    partial_upgrade.sources = $$QMAKE_LIBDIR_QT/QtCore$${QT_LIBINFIX}.dll
     partial_upgrade.path = c:/sys/bin
     DEPLOYMENT = partial_upgrade $$DEPLOYMENT
 }
diff --git a/src/gui/gui.pro b/src/gui/gui.pro
index 7f1cb78..dede9d0 100644
--- a/src/gui/gui.pro
+++ b/src/gui/gui.pro
@@ -72,7 +72,7 @@ symbian {
     pu_header = "; Partial upgrade package for testing QtGui changes without reinstalling everything" \
                 "$${LITERAL_HASH}{\"Qt gui\"}, (0x2001E61C), $${QT_MAJOR_VERSION},$${QT_MINOR_VERSION},$${QT_PATCH_VERSION}, TYPE=PU"
     partial_upgrade.pkg_prerules = pu_header vendorinfo
-    partial_upgrade.sources = $$QMAKE_LIBDIR_QT/QtGui.dll
+    partial_upgrade.sources = $$QMAKE_LIBDIR_QT/QtGui$${QT_LIBINFIX}.dll
     partial_upgrade.path = c:/sys/bin
     DEPLOYMENT = partial_upgrade $$DEPLOYMENT
 }
-- 
cgit v0.12


From 01da612438d988108acfb3aa688226ee56a9bd22 Mon Sep 17 00:00:00 2001
From: axis <qt-info@nokia.com>
Date: Thu, 1 Jul 2010 17:10:50 +0200
Subject: Fixed Qt symbian/linux-armcc mkspec when configured with -qtlibinfix.

Task:     QTBUG-11396
RevBy:    Simon Hausmann
---
 src/3rdparty/webkit/WebKit/qt/declarative/declarative.pro | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/3rdparty/webkit/WebKit/qt/declarative/declarative.pro b/src/3rdparty/webkit/WebKit/qt/declarative/declarative.pro
index 75268f3..526cf06 100644
--- a/src/3rdparty/webkit/WebKit/qt/declarative/declarative.pro
+++ b/src/3rdparty/webkit/WebKit/qt/declarative/declarative.pro
@@ -30,6 +30,7 @@ symbian: {
     TARGET.EPOCALLOWDLLDATA=1
     TARGET.CAPABILITY = All -Tcb
     load(armcc_warnings)
+    TARGET = $$TARGET$${QT_LIBINFIX}
 }
 
 include(../../../WebKit.pri)
-- 
cgit v0.12


From e943add9960ca5708a46938d0dc9fc7cc67bf008 Mon Sep 17 00:00:00 2001
From: axis <qt-info@nokia.com>
Date: Fri, 2 Jul 2010 10:49:05 +0200
Subject: Hide some more files from git-status.

---
 demos/.gitignore              | 2 ++
 demos/spectrum/app/.gitignore | 2 ++
 2 files changed, 4 insertions(+)
 create mode 100644 demos/.gitignore
 create mode 100644 demos/spectrum/app/.gitignore

diff --git a/demos/.gitignore b/demos/.gitignore
new file mode 100644
index 0000000..bc54bd5
--- /dev/null
+++ b/demos/.gitignore
@@ -0,0 +1,2 @@
+*.dll
+*.dso
diff --git a/demos/spectrum/app/.gitignore b/demos/spectrum/app/.gitignore
new file mode 100644
index 0000000..82cf2a2
--- /dev/null
+++ b/demos/spectrum/app/.gitignore
@@ -0,0 +1,2 @@
+spectrum
+spectrum.exe
-- 
cgit v0.12

