homescreenapp/hsapplication/src/hsstatemachine.cpp
changeset 96 458d8c8d9580
parent 92 6727c5d0afc7
--- a/homescreenapp/hsapplication/src/hsstatemachine.cpp	Fri Sep 17 08:27:54 2010 +0300
+++ b/homescreenapp/hsapplication/src/hsstatemachine.cpp	Mon Oct 04 00:07:25 2010 +0300
@@ -46,13 +46,6 @@
 #include "hstest_global.h"
 #include "hswidgetpositioningonwidgetmove.h"
 
-#ifdef Q_OS_SYMBIAN
-#include <xqappmgr.h>
-#include <xqcallinfo.h>
-#include <logsservices.h>
-#include <xqrequestinfo.h>
-#endif // Q_OS_SYMBIAN
-
 QTM_USE_NAMESPACE
 #define hbApp qobject_cast<HbApplication*>(qApp)
 
@@ -87,7 +80,6 @@
       mHomeScreenActive(false),
       mIdleStateActive(false),
       mEndKeyCaptured(false),
-      mSendKeyCaptured(false),
       mPublisher(NULL)
 #ifdef Q_OS_SYMBIAN
 	  ,keyCapture()
@@ -110,14 +102,13 @@
             
     HsWidgetPositioningOnOrientationChange::setInstance(
         new HsAdvancedWidgetPositioningOnOrientationChange);
-#ifdef HSWIDGETORGANIZER_ALGORITHM
-    HsWidgetPositioningOnWidgetAdd::setInstance(
-        new HsWidgetOrganizer);
-#else
-    HsWidgetPositioningOnWidgetAdd::setInstance(
-        new HsAnchorPointInBottomRight);
-#endif
-
+        
+    HsWidgetPositioningOnWidgetAdd *widgetOrganizer =
+        new HsWidgetOrganizer(HSCONFIGURATION_GET(snapGap),
+                              HSCONFIGURATION_GET(widgetOrganizerSearchSequence));
+        
+    HsWidgetPositioningOnWidgetAdd::setInstance(widgetOrganizer);
+        
     HsWidgetPositioningOnWidgetMove::setInstance(
         new HsSnapToLines);
 
@@ -178,83 +169,14 @@
     }
         
     bool result =  QStateMachine::eventFilter(watched, event);    
-
+  
     if (event->type() == QEvent::KeyPress ) {
-        QKeyEvent* ke = static_cast<QKeyEvent *>(event);
-        int key = ke->key();
-
-        if (key == Qt::Key_Home ) {
-            result = true;
-        }
-        else if (key == Qt::Key_Yes ) {
-            result = true;
-            if (mSendKeyCaptured == false && mHomeScreenActive == true) {
-                mSendKeyCaptured = true;
-                startDialer();                
-            }
-        }
+        QKeyEvent* ke = static_cast<QKeyEvent *>(event);                 
+        result = (ke->key() == Qt::Key_Home);
     }
     return result;
 }
 
-#ifdef COVERAGE_MEASUREMENT
-#pragma CTC SKIP
-#endif //COVERAGE_MEASUREMENT
-/*!
-    \fn void HsStateMachine::startDialer()
-    Starts Dialer application
-*/
-void HsStateMachine::startDialer()
-    {
-    // copy-paste code from dialer widget
-#ifdef Q_OS_SYMBIAN
-    qDebug("HsStateMachine::startDialer()");
-            
-    QList<CallInfo> calls;
-    QScopedPointer<XQCallInfo> callInfo(XQCallInfo::create());
-    callInfo->getCalls(calls);
-    QList<QVariant> args;
-    QString service;
-    QString interface;
-    QString operation;
-
-    if (0 < calls.count()) {
-        qDebug("HS: call ongoing, bring Telephone to foreground");
-        service = "phoneui";
-        interface = "com.nokia.symbian.IStart";
-        operation = "start(int)";
-        int openDialer(0);
-        args << openDialer;
-    } else {
-        qDebug("HS: no calls, open Dialer");
-        service = "logs";
-        interface = "com.nokia.symbian.ILogsView";
-        operation = "show(QVariantMap)";
-        QVariantMap map;
-        map.insert("view_index", QVariant(int(LogsServices::ViewAll)));
-        map.insert("show_dialpad", QVariant(true));
-        map.insert("dialpad_text", QVariant(QString()));
-        args.append(QVariant(map));
-    }
-
-    XQApplicationManager appManager;
-    QScopedPointer<XQAiwRequest> request(appManager.create(service, interface, operation, false));
-    if (request == NULL) {
-        return;
-    }
-    request->setArguments(args);
-    XQRequestInfo info;
-    info.setForeground(true);
-    request->setInfo(info);
-    bool ret = request->send();
-    qDebug("HS: request sent successfully:", ret);
-#endif
-}
-
-#ifdef COVERAGE_MEASUREMENT
-#pragma CTC ENDSKIP
-#endif //COVERAGE_MEASUREMENT
-
 /*!
     Registers framework animations.
 */
@@ -420,6 +342,13 @@
                                       idleState, collectionStates[0]);
         idleState->addTransition(idleToCollectionTransition);
     }
+	// show after install is opened from applibrary via idlestate
+	if (collectionStates.count()) {
+        HsMenuEventTransition *idleToCollectionTransition =
+            new HsMenuEventTransition(HsMenuEvent::OpenCollectionFromAppLibrary,
+                                      idleState, collectionStates[0]);
+        idleState->addTransition(idleToCollectionTransition);
+    }
 
     guiRootState->setInitialState(loadSceneState);
     setInitialState(guiRootState);
@@ -454,7 +383,6 @@
         mPublisher->setValue(HsStatePSKeySubPath, EHomeScreenApplicationBackground | EHomeScreenApplicationLibraryViewActive);
         captureEndKey(false);
     }
-    mSendKeyCaptured = false;
 }
 
 /*!
@@ -499,9 +427,16 @@
 void HsStateMachine::activityRequested(const QString &name) 
 {
     if (name == Hs::groupAppLibRecentView) {
-        this->postEvent(
-            HsMenuEventFactory::createOpenCollectionEvent(0,
-            Hs::collectionDownloadedTypeName));
+        if (mHomeScreenActive) {
+            this->postEvent(
+                HsMenuEventFactory::createOpenCollectionEvent(0,
+                Hs::collectionDownloadedTypeName));
+        }
+        else {
+            this->postEvent(
+                HsMenuEventFactory::createOpenCollectionFromAppLibraryEvent(0,
+                Hs::collectionDownloadedTypeName));
+        }
     } else if (name == Hs::activityHsIdleView) {
         emit event_toIdle();
     } else if (name == Hs::activityAppLibMainView) {