--- a/taskswitcherapp/tsapplication/src/tstaskswitcher.cpp Fri Apr 16 14:54:01 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-#include "tstaskswitcher.h"
-
-#include <QStateMachine>
-#include <QEventLoop>
-
-#include <qservicemanager.h>
-
-QTM_USE_NAMESPACE
-
-TsTaskSwitcher::TsTaskSwitcher(QObject* aParent) : QObject(aParent)
-{
- // FIXME: we're leaking service manager to prevent crash caused by QServiceManager deletion
- QServiceManager *serviceManager = new QServiceManager;
-
- // FIXME: temporary workaround for bug in QtSF database - this process have to add services
- QList<QServiceInterfaceDescriptor> tsServiceInterfaces = serviceManager->findInterfaces("TaskSwitcher");
- QStringList requiredInterfaces;
- requiredInterfaces << "com.nokia.taskswitcher.itemprovider";
- requiredInterfaces << "com.nokia.taskswitcher.activation";
- requiredInterfaces << "com.nokia.taskswitcher.deactivation";
- requiredInterfaces << "com.nokia.taskswitcher.presentation";
- requiredInterfaces << "com.nokia.taskswitcher.runtime.defaultruntime";
-
- foreach (const QServiceInterfaceDescriptor &interface, tsServiceInterfaces) {
- QString interfaceName = interface.interfaceName();
- if (requiredInterfaces.contains(interfaceName)) {
- requiredInterfaces.removeAll(interfaceName);
- }
- }
-
- if (!requiredInterfaces.isEmpty()) {
- // clean old entries
- serviceManager->removeService("TaskSwitcher");
-
- bool servicesAdded = serviceManager->addService(":/tsserviceplugin.xml");
- Q_ASSERT_X(servicesAdded, "Adding Ts Services", qPrintable(QString("addService returned false, error %1").arg(serviceManager->error())));
-
- bool runtimeAdded = serviceManager->addService(":/tsdefaultruntimeplugin.xml");
- Q_ASSERT_X(runtimeAdded, "Adding Ts Runtime", qPrintable(QString("addService returned false, error %1").arg(serviceManager->error())));
- }
- // FIXME
-
- mRuntime = serviceManager->loadLocalTypedInterface<QStateMachine>("com.nokia.taskswitcher.runtime.defaultruntime");
- if (mRuntime) {
- mRuntime->setParent(this);
- connect(mRuntime, SIGNAL(stopped()), this, SIGNAL(exit()));
- } else {
- qCritical("Failed to create runtime");
- }
-}
-
-void TsTaskSwitcher::start()
-{
- if (mRuntime) {
- mRuntime->start();
- } else {
- emit exit();
- }
-}
-
-void TsTaskSwitcher::stop()
-{
- if (mRuntime) {
- if (mRuntime->isRunning()) {
- QEventLoop eventLoop;
- connect(mRuntime, SIGNAL(finished()), &eventLoop, SLOT(quit()));
- QMetaObject::invokeMethod(mRuntime, "event_exit", Qt::QueuedConnection);
- eventLoop.exec();
- }
- }
-}