diff -r f75922b9e380 -r 4c11ecddf6b2 taskswitcherapp/tsdevicedialogplugin/src/tsdevicedialogplugin.cpp --- a/taskswitcherapp/tsdevicedialogplugin/src/tsdevicedialogplugin.cpp Fri Jun 11 16:23:43 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,177 +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 -#include -#include -#include - -#include "tsdevicedialogplugin.h" -#include "tsdevicedialog.h" -#include "tstasksgrid.h" -#include "tstasksgriditem.h" -#include "tsdocumentloader.h" -#include "tsmodel.h" -#include - -/*! - \class TsDeviceDialogPlugin - \ingroup group_tsdevicedialogplugin - \brief TaskSwitcher Device Dialog Plug-in. - */ - -const QString KTsDialogType = "com.nokia.taskswitcher.tsdevicedialogplugin/1.0"; - -/*! - Constructor. - */ -TsDeviceDialogPlugin::TsDeviceDialogPlugin() : mError(0), mModel(0), mStorage(CaService::instance()), mLongPressed(false) -{ -} - -TsDeviceDialogPlugin::~TsDeviceDialogPlugin() -{ - delete mModel; -} -/*! - \reimp - */ -bool TsDeviceDialogPlugin::accessAllowed(const QString &deviceDialogType, const QVariantMap ¶meters, const QVariantMap &securityInfo) const -{ - Q_UNUSED(deviceDialogType) - Q_UNUSED(parameters) - Q_UNUSED(securityInfo) - - // This plugin doesn't perform operations that may compromise security. - // All clients are allowed to use. - return true; -} - -/*! - \reimp - */ -HbDeviceDialogInterface *TsDeviceDialogPlugin::createDeviceDialog(const QString &deviceDialogType, const QVariantMap ¶meters) -{ - Q_UNUSED(parameters) - TsDeviceDialog *dialog(0); - if (deviceDialogType == KTsDialogType) { - if (0 == mModel) { - QtMobility::QServiceManager serviceManager; - QObject *objPtr(serviceManager.loadInterface("com.nokia.qt.activities.ActivityManager")); - if (objPtr) { - objPtr->setParent(this);//make it autodestucted - } else { - objPtr = this;//activity plugin is not present. provide invalid instance because its not critical functionality. - //QMetaObject::invokeMethod is safe to use in such a case. - } - mModel = new TsModel(*mStorage, *objPtr); - } - - mLoader.reset(); - bool ok(true); - mLoader.load(":/xml/resource/layout.docml", &ok); - Q_ASSERT(ok); - - dialog = qobject_cast(mLoader.findWidget("tsdevicedialog")); - TsTasksGrid *grid = qobject_cast(mLoader.findWidget("taskgrid")); - Q_ASSERT(dialog); - Q_ASSERT(grid); - - dialog->changeOrientation(dialog->mainWindow()->orientation()); - - grid->setItemPrototype(new TsTasksGridItem()); - grid->setModel(mModel); - - static_cast(mModel)->updateModel(); - - // connect the grid and model - qRegisterMetaType("QModelIndex"); - - disconnect(grid, SIGNAL(activated(QModelIndex)), this, SLOT(activated(QModelIndex))); - disconnect(grid, SIGNAL(pressed(QModelIndex)), this, SLOT(pressed())); - disconnect(grid, SIGNAL(longPressed(HbAbstractViewItem *, QPointF)), this, SLOT(longPressed())); - disconnect(this, SIGNAL(activate(QModelIndex)), mModel, SLOT(openApplication(QModelIndex))); - disconnect(this, SIGNAL(activate(QModelIndex)), dialog, SLOT(close())); - disconnect(grid, SIGNAL(deleteButtonClicked(QModelIndex)), mModel, SLOT(closeApplication(QModelIndex))); - - connect(grid, SIGNAL(activated(QModelIndex)), this, SLOT(activated(QModelIndex))); - connect(grid, SIGNAL(pressed(QModelIndex)), this, SLOT(pressed())); - connect(grid, SIGNAL(longPressed(HbAbstractViewItem *, QPointF)), this, SLOT(longPressed())); - connect(this, SIGNAL(activate(QModelIndex)), mModel, SLOT(openApplication(QModelIndex))); - connect(this, SIGNAL(activate(QModelIndex)), dialog, SLOT(close())); - connect(grid, SIGNAL(deleteButtonClicked(QModelIndex)), mModel, SLOT(closeApplication(QModelIndex)), Qt::QueuedConnection); - } - return dialog; -} - -/*! - \reimp - */ -bool TsDeviceDialogPlugin::deviceDialogInfo(const QString &deviceDialogType, const QVariantMap ¶meters, DeviceDialogInfo *info) const -{ - Q_UNUSED(parameters) - Q_UNUSED(deviceDialogType) - - info->group = GenericDeviceDialogGroup; - info->flags = NoDeviceDialogFlags; - info->priority = DefaultPriority; - - return true; -} - -/*! - \reimp - */ -QStringList TsDeviceDialogPlugin::deviceDialogTypes() const -{ - return QStringList(KTsDialogType); -} - -/*! - \reimp - */ -HbDeviceDialogPlugin::PluginFlags TsDeviceDialogPlugin::pluginFlags() const -{ - return PluginFlags(PreloadPlugin | KeepPluginLoaded); -} - -/*! - \reimp - */ -int TsDeviceDialogPlugin::error() const -{ - return mError; -} - -void TsDeviceDialogPlugin::activated(QModelIndex index) -{ - if (!mLongPressed) { - emit activate(index); - } -} - -void TsDeviceDialogPlugin::pressed() -{ - mLongPressed = false; -} - -void TsDeviceDialogPlugin::longPressed() -{ - mLongPressed = true; -} - -Q_EXPORT_PLUGIN2(tsdevicedialogplugin, TsDeviceDialogPlugin)