taskswitcherapp/tsapplication/src/tstaskswitcher.cpp
changeset 39 4e8ebe173323
parent 36 cdae8c6c3876
child 42 517f4fb5ec74
child 46 23b5d6a29cce
--- 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(); 
-        }        
-    }
-}