a69086a7359b3de9db0823ce58d9aab8b5c369be RCL_3
authorEckhart Koeppen <eckhart.koppen@nokia.com>
Wed, 21 Apr 2010 12:15:23 +0300
branchRCL_3
changeset 12 cc75c76972ee
parent 11 25a739ee40f4
child 13 c0432d11811c
a69086a7359b3de9db0823ce58d9aab8b5c369be
VERSION.SHA1
src/gui/kernel/qapplication_s60.cpp
src/gui/kernel/qsoftkeymanager_s60.cpp
src/gui/kernel/qt_s60_p.h
src/gui/kernel/qwidget_s60.cpp
src/gui/s60framework/qs60mainappui.cpp
--- a/VERSION.SHA1	Wed Apr 21 11:15:19 2010 +0300
+++ b/VERSION.SHA1	Wed Apr 21 12:15:23 2010 +0300
@@ -1,1 +1,1 @@
-3a438a6e0b41f1ef657ef0e648d352db636204aa
+a69086a7359b3de9db0823ce58d9aab8b5c369be
--- a/src/gui/kernel/qapplication_s60.cpp	Wed Apr 21 11:15:19 2010 +0300
+++ b/src/gui/kernel/qapplication_s60.cpp	Wed Apr 21 12:15:23 2010 +0300
@@ -73,7 +73,6 @@
 # endif
 # include <private/qs60mainapplication_p.h>
 # include <centralrepository.h>
-# include "qs60mainappui.h"
 #endif
 
 #include "private/qstylesheetstyle_p.h"
@@ -535,14 +534,6 @@
     sendMouseEvent(receiver, type, globalPos, button, modifiers);
 }
 
-#ifdef Q_WS_S60
-void QSymbianControl::HandleStatusPaneSizeChange()
-{
-    QS60MainAppUi *s60AppUi = static_cast<QS60MainAppUi *>(S60->appUi());
-    s60AppUi->HandleStatusPaneSizeChange();
-}
-#endif
-
 void QSymbianControl::sendMouseEvent(
         QWidget *receiver,
         QEvent::Type type,
--- a/src/gui/kernel/qsoftkeymanager_s60.cpp	Wed Apr 21 11:15:19 2010 +0300
+++ b/src/gui/kernel/qsoftkeymanager_s60.cpp	Wed Apr 21 12:15:23 2010 +0300
@@ -78,8 +78,6 @@
     // Note: Cannot use IsDisplayingMenuOrDialog since CBA update can be triggered before
     // menu/dialog CBA is actually displayed i.e. it is being costructed.
     CEikButtonGroupContainer *appUiCba = S60->buttonGroupContainer();
-    if (!appUiCba)
-        return true;
     // CEikButtonGroupContainer::Current returns 0 if CBA is not visible at all
     CEikButtonGroupContainer *currentCba = CEikButtonGroupContainer::Current();
     // Check if softkey need to be update even they are not visible
--- a/src/gui/kernel/qt_s60_p.h	Wed Apr 21 11:15:19 2010 +0300
+++ b/src/gui/kernel/qt_s60_p.h	Wed Apr 21 12:15:23 2010 +0300
@@ -154,7 +154,7 @@
 
 class QSymbianControl : public CCoeControl, public QAbstractLongTapObserver
 #ifdef Q_WS_S60
-, public MAknFadedComponent, public MEikStatusPaneObserver
+, public MAknFadedComponent
 #endif
 {
 public:
@@ -182,7 +182,6 @@
 
 #ifdef Q_WS_S60
     void FadeBehindPopup(bool fade){ popupFader.FadeBehindPopup( this, this, fade); }
-    void HandleStatusPaneSizeChange();
 
 protected: // from MAknFadedComponent
     TInt CountFadedComponents() {return 1;}
--- a/src/gui/kernel/qwidget_s60.cpp	Wed Apr 21 11:15:19 2010 +0300
+++ b/src/gui/kernel/qwidget_s60.cpp	Wed Apr 21 12:15:23 2010 +0300
@@ -479,47 +479,6 @@
 
          QSymbianControl *id = static_cast<QSymbianControl *>(q->internalWinId());
 
-#ifdef Q_WS_S60
-        // Lazily initialize the S60 screen furniture when the first window is shown.
-        if (!QApplication::testAttribute(Qt::AA_S60DontConstructApplicationPanes)
-                && !S60->buttonGroupContainer() && !S60->statusPane()) {
-
-            bool isFullscreen = q->windowState() & Qt::WindowFullScreen;
-            bool cbaRequested = q->windowFlags() & Qt::WindowSoftkeysVisibleHint;
-
-            // If the window is fullscreen and has not explicitly requested that the CBA be visible
-            // we delay the creation even more.
-            if ((!isFullscreen || cbaRequested) && !q->testAttribute(Qt::WA_DontShowOnScreen)) {
-
-                // Create the status pane and CBA here
-                CEikAppUi *ui = static_cast<CEikAppUi *>(S60->appUi());
-                MEikAppUiFactory *factory = CEikonEnv::Static()->AppUiFactory();
-                TRAP_IGNORE(factory->ReadAppInfoResourceL(0, ui));
-                if (S60->buttonGroupContainer())
-                    S60->buttonGroupContainer()->SetCommandSetL(R_AVKON_SOFTKEYS_EMPTY_WITH_IDS);
-
-                if (S60->statusPane()) {
-                    // Use QDesktopWidget as the status pane observer to proxy for the AppUi.
-                    // Can't use AppUi directly because it privately inherits from MEikStatusPaneObserver.
-                    QSymbianControl *desktopControl = static_cast<QSymbianControl *>(QApplication::desktop()->winId());
-                    S60->statusPane()->SetObserver(desktopControl);
-
-                    // Hide the status pane if fullscreen OR
-                    // Fill client area if maximized OR
-                    // Put window below status pane unless the window has an explicit position.
-                    if (isFullscreen) {
-                        S60->statusPane()->MakeVisible(false);
-                    } else if (q->windowState() & Qt::WindowMaximized) {
-                        TRect r = static_cast<CEikAppUi*>(S60->appUi())->ClientRect();
-                        id->SetExtent(r.iTl, r.Size());
-                    } else if (!q->testAttribute(Qt::WA_Moved)) {
-                        id->SetPosition(static_cast<CEikAppUi*>(S60->appUi())->ClientRect().iTl);
-                    }
-                }
-            }
-        }
-#endif
-
         id->MakeVisible(true);
 
         if(q->isWindow())
--- a/src/gui/s60framework/qs60mainappui.cpp	Wed Apr 21 11:15:19 2010 +0300
+++ b/src/gui/s60framework/qs60mainappui.cpp	Wed Apr 21 12:15:23 2010 +0300
@@ -112,10 +112,16 @@
     // 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 = CAknAppUi::EAknEnableSkin;
+    if (QApplication::testAttribute(Qt::AA_S60DontConstructApplicationPanes)) {
+        flags |= CAknAppUi::ENoScreenFurniture | CAknAppUi::ENonStandardResourceFile;
+    }
     BaseConstructL(flags);
+
+    if (!QApplication::testAttribute(Qt::AA_S60DontConstructApplicationPanes)) {
+        CEikButtonGroupContainer* nativeContainer = Cba();
+        nativeContainer->SetCommandSetL(R_AVKON_SOFTKEYS_EMPTY_WITH_IDS);
+    }
 }
 
 /*!