diff -r 23b5d6a29cce -r 4785f57bf3d4 homescreenapp/runtimeplugins/hsdefaultruntimeplugin/src/hsdefaultruntime.cpp --- a/homescreenapp/runtimeplugins/hsdefaultruntimeplugin/src/hsdefaultruntime.cpp Fri May 14 15:43:04 2010 +0300 +++ b/homescreenapp/runtimeplugins/hsdefaultruntimeplugin/src/hsdefaultruntime.cpp Thu May 27 12:46:08 2010 +0300 @@ -17,6 +17,7 @@ #include #include +#include #include #include #include @@ -26,10 +27,13 @@ #include #include +#include +#include #include #include #include +#include "hsmenueventfactory.h" #include "homescreendomainpskeys.h" #include "hsdefaultruntime.h" #include "hsdatabase.h" @@ -39,12 +43,10 @@ #include "hswidgetpositioningonorientationchange.h" #include "hswidgetpositioningonwidgetadd.h" #include "hstest_global.h" -#ifdef Q_OS_SYMBIAN -#include "hsbackuprestoreobserver.h" -#endif +#include "hsconfiguration.h" QTM_USE_NAMESPACE - +#define hbApp qobject_cast(qApp) #ifdef Q_OS_SYMBIAN const static Qt::Key applicationKey = Qt::Key_Menu; @@ -54,10 +56,12 @@ namespace { + const char KHsRootStateInterface[] = "com.nokia.homescreen.state.HsRootState"; const char KHsLoadSceneStateInterface[] = "com.nokia.homescreen.state.HsLoadSceneState"; const char KHsIdleStateInterface[] = "com.nokia.homescreen.state.HsIdleState"; const char KHsAppLibraryStateInterface[] = "com.nokia.homescreen.state.HsAppLibraryState"; const char KHsMenuWorkerStateInterface[] = "com.nokia.homescreen.state.HsMenuWorkerState"; + const char KHsBacupRestoreStateInterface[] = "com.nokia.homescreen.state.HsBackupRestoreState"; } @@ -83,7 +87,6 @@ mPublisher(NULL) #ifdef Q_OS_SYMBIAN ,keyCapture() - ,mBRObserver(NULL) #endif { HSTEST_FUNC_ENTRY("HS::HsDefaultRuntime::HsDefaultRuntime"); @@ -98,16 +101,13 @@ db->open(); HsDatabase::setInstance(db); + HsConfiguration::loadConfiguration(); + HsWidgetPositioningOnOrientationChange::setInstance( new HsAdvancedWidgetPositioningOnOrientationChange); HsWidgetPositioningOnWidgetAdd::setInstance( new HsAnchorPointInBottomRight); - -#ifdef Q_OS_SYMBIAN - mBRObserver = CHsBackupRestoreObserver::NewL(); -#endif - registerAnimations(); createStatePublisher(); createContentServiceParts(); @@ -115,7 +115,12 @@ assignServices(); QCoreApplication::instance()->installEventFilter(this); - HSTEST_FUNC_EXIT("HS::HsDefaultRuntime::HsDefaultRuntime"); + + if (hbApp) { // Qt test framework uses QApplication. + connect(hbApp->activityManager(), SIGNAL(activityRequested(QString)), + this, SLOT(activityRequested(QString))); + } + HSTEST_FUNC_EXIT("HS::HsDefaultRuntime::HsDefaultRuntime"); } /*! @@ -125,9 +130,6 @@ { HsWidgetPositioningOnOrientationChange::setInstance(0); delete mPublisher; -#ifdef Q_OS_SYMBIAN - delete mBRObserver; -#endif } /*! @@ -174,15 +176,6 @@ } /*! - Registers framework animations. -*/ -void HsDefaultRuntime::registerAnimations() -{ - HbIconAnimationManager *manager = HbIconAnimationManager::global(); - manager->addDefinitionFile(QLatin1String(":/resource/tapandhold.axml")); -} - -/*! Creates Home screen state publisher. */ void HsDefaultRuntime::createStatePublisher() @@ -232,19 +225,22 @@ loadSceneState->setParent(guiRootState); loadSceneState->setObjectName(KHsLoadSceneStateInterface); + QObject *rootStateObj = manager.loadInterface(KHsRootStateInterface); + QState *rootState = qobject_cast(rootStateObj); + rootState->setParent(guiRootState); + rootState->setObjectName(KHsRootStateInterface); + QObject *idleStateObj = manager.loadInterface(KHsIdleStateInterface); QState *idleState = qobject_cast(idleStateObj); - idleState->setParent(guiRootState); + idleState->setParent(rootState); idleState->setObjectName(KHsIdleStateInterface); connect(idleState, SIGNAL(entered()), SLOT(onIdleStateEntered())); connect(idleState, SIGNAL(exited()), SLOT(onIdleStateExited())); - loadSceneState->addTransition( - loadSceneState, SIGNAL(event_idle()), idleState); //menu state QState *menuParallelState = new QState( - QState::ParallelStates, guiRootState); + QState::ParallelStates, rootState); QState *menuRootState = new QState(menuParallelState); QObject *appLibraryStateObj = manager.loadInterface(KHsAppLibraryStateInterface); @@ -253,15 +249,31 @@ appLibraryState->setObjectName(KHsAppLibraryStateInterface); menuRootState->setInitialState(appLibraryState); + QHistoryState *historyState = new QHistoryState(rootState); + historyState->setDefaultState(idleState); + + loadSceneState->addTransition( + loadSceneState, SIGNAL(event_history()), historyState); + QObject *menuWorkerStateObj = manager.loadInterface(KHsMenuWorkerStateInterface); QState *menuWorkerState = qobject_cast(menuWorkerStateObj); menuWorkerState->setParent(menuParallelState); menuWorkerState->setObjectName(KHsMenuWorkerStateInterface); + connect(appLibraryState, SIGNAL(collectionEntered()), + menuWorkerState, SIGNAL(reset())); + //Backup/Restore state + QObject *backupRestoreStateObj = manager.loadInterface(KHsBacupRestoreStateInterface); + QState *backupRestoreState = qobject_cast(backupRestoreStateObj); + backupRestoreState->setParent(guiRootState); + backupRestoreState->setObjectName(KHsBacupRestoreStateInterface); + backupRestoreState->addTransition( + backupRestoreState, SIGNAL(event_loadScene()), loadSceneState); // root state transitions idleState->addTransition(idleState, SIGNAL(event_applicationLibrary()), menuRootState); appLibraryState->addTransition( appLibraryState, SIGNAL(toHomescreenState()), idleState); + rootState->addTransition(rootState, SIGNAL(event_backupRestore()), backupRestoreState); // opening shortcut to Application Library HsMenuEventTransition *idleToAppLibTransition = new HsMenuEventTransition(HsMenuEvent::OpenApplicationLibrary, @@ -387,3 +399,14 @@ mIdleStateActive = false; updatePSKeys(); } + +/*! + Activity requested by another client +*/ +void HsDefaultRuntime::activityRequested(const QString &name) +{ + if (name == groupAppLibRecentView()){ + this->postEvent(HsMenuEventFactory::createOpenCollectionEvent(0, + collectionDownloadedTypeName())); + } +}