diff -r 341166945d65 -r 52b0f64eeb51 homescreenapp/hsapplication/src/hshomescreen.cpp --- a/homescreenapp/hsapplication/src/hshomescreen.cpp Fri Jun 25 19:19:22 2010 +0300 +++ b/homescreenapp/hsapplication/src/hshomescreen.cpp Fri Jul 09 14:36:01 2010 +0300 @@ -26,6 +26,7 @@ #include "hshomescreen.h" #include "hstest_global.h" +#include "hsstatemachine.h" #ifdef Q_OS_SYMBIAN #include "hshomescreenclientserviceprovider.h" #endif @@ -35,8 +36,7 @@ \class HsHomeScreen \ingroup group_hsapplication \brief Homescreen application main class. - Loads a runtime from a runtime provider plugin. Manages - the state machine execution. + Manages the state machine execution. */ /*! @@ -52,34 +52,17 @@ { HSTEST_FUNC_ENTRY("HS::HsHomeScreen::HsHomeScreen"); - QServiceManager serviceManager; - - registerServicePlugins(serviceManager); + registerServicePlugins(); - QServiceFilter filter("com.nokia.symbian.IHomeScreenRuntime"); - QList interfaces = serviceManager.findInterfaces(filter); - - if (interfaces.isEmpty()) { - emit exit(); - return; - } + mRuntime = new HsStateMachine(this); - QObject *object = serviceManager.loadInterface(interfaces.first().interfaceName()); - mRuntime = qobject_cast(object); - - if (mRuntime) { - mRuntime->setParent(this); - connect(mRuntime, SIGNAL(started()), SLOT(onRuntimeStarted())); - connect(mRuntime, SIGNAL(stopped()), SLOT(onRuntimeStopped())); - hbInstance->allMainWindows().first()->installEventFilter(this); + connect(mRuntime, SIGNAL(started()), SLOT(onRuntimeStarted())); + connect(mRuntime, SIGNAL(stopped()), SLOT(onRuntimeStopped())); + hbInstance->allMainWindows().first()->installEventFilter(this); #ifdef Q_OS_SYMBIAN - mHomeScreenClientServiceProvider = new HsHomeScreenClientServiceProvider; - mHomeScreenClientServiceProvider->setParent(this); + mHomeScreenClientServiceProvider = new HsHomeScreenClientServiceProvider; + mHomeScreenClientServiceProvider->setParent(this); #endif - } else { - delete object; - emit exit(); - } HSTEST_FUNC_EXIT("HS::HsHomeScreen::HsHomeScreen"); } @@ -97,26 +80,21 @@ */ /*! - Starts the runtime. + Starts the state machine. */ void HsHomeScreen::start() { HSTEST_FUNC_ENTRY("HS::HsHomeScreen::start"); - if (mRuntime) { - mRuntime->start(); - } else { - HSTEST_FUNC_EXIT("HS::HsHomeScreen::start, mRuntime not created, exit application"); - emit exit(); - } + mRuntime->start(); HSTEST_FUNC_EXIT("HS::HsHomeScreen::start"); } /*! - Stops the runtime. + Stops the state machine. */ void HsHomeScreen::stop() { - if (mRuntime && mRuntime->isRunning()) { + if (mRuntime->isRunning()) { QEventLoop eventLoop; connect(mRuntime, SIGNAL(finished()), &eventLoop, SLOT(quit())); QMetaObject::invokeMethod(mRuntime, "event_exit", Qt::QueuedConnection); @@ -137,14 +115,14 @@ } /*! - Called after the runtime has started. + Called after the state machine has started. */ void HsHomeScreen::onRuntimeStarted() { } /*! - Called after the runtime has stopped. + Called after the state machine has stopped. */ void HsHomeScreen::onRuntimeStopped() { @@ -154,9 +132,12 @@ /*! Registers service plugins pre-installed on the device. */ -void HsHomeScreen::registerServicePlugins(QServiceManager &serviceManager) -{ +void HsHomeScreen::registerServicePlugins() +{ HSTEST_FUNC_ENTRY("HS::HsHomeScreen::registerServicePlugins()"); + + QServiceManager serviceManager; + QStringList pluginPaths; pluginPaths << "private/20022F35";