diff -r 0ba996a9b75d -r 613943a21004 bluetoothengine/btindicator/src/btindicator.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bluetoothengine/btindicator/src/btindicator.cpp Tue Aug 31 15:25:10 2010 +0300 @@ -0,0 +1,195 @@ +/* + * Copyright (c) 2010 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 "btindicator.h" +#include +//#include +//#include +#include "btindicatorconstants.h" +//#include +//#include +//#include +#define LOC_BLUETOOTH hbTrId("txt_bt_dblist_bluetooth") +#define LOC_BLUETOOTH_OFF hbTrId("txt_bt_dblist_bluetooth_val_off") +#define LOC_BLUETOOTH_ON_VISIBLE hbTrId("txt_bt_dblist_bluetooth_val_on_and_visible") +#define LOC_BLUETOOTH_VISIBLE_CONNECTED hbTrId("txt_bt_dblist_bluetooth_val_visible_and_connected") +#define LOC_BLUETOOTH_ON_HIDDEN hbTrId("txt_bt_dblist_bluetooth_val_on_and_hidden") +#define LOC_BLUETOOTH_HIDDEN_CONNECTED hbTrId("txt_bt_dblist_bluetooth_val_hidden_and_connected") + +struct BTIndicatorInfo + { + QString icon; + QString secondaryText; + }; + +static const int BTIndicatorCount = 5; + + +static const BTIndicatorInfo IndicatorInfo[BTIndicatorCount] = { + { "qtg_large_bluetooth_off", "LOC_BLUETOOTH_OFF" }, + { "qtg_large_bluetooth", "LOC_BLUETOOTH_ON_VISIBLE" }, + { "qtg_large_bluetooth_hide","LOC_BLUETOOTH_ON_HIDDEN" }, + { "qtg_large_bluetooth_active_connection", "LOC_BT_VISIBLE_CONNECT" }, + { "qtg_large_bluetooth_hide_connection","LOC_BT_HIDDEN_CONNECT" } + }; + + +// ---------------------------------------------------------------------------- +// BTIndicator::BTIndicator +// ---------------------------------------------------------------------------- +BTIndicator::BTIndicator(const QString &indicatorType) : +HbIndicatorInterface(indicatorType, + HbIndicatorInterface::SettingCategory , + InteractionActivated) + { + mIndicatorStatus = 0; + } + +// ---------------------------------------------------------------------------- +// BTIndicator::~BTIndicator +// ---------------------------------------------------------------------------- +BTIndicator::~BTIndicator() + { + } + + +// ---------------------------------------------------------------------------- +// BTIndicator::handleInteraction +// ---------------------------------------------------------------------------- +bool BTIndicator::handleInteraction(InteractionType type) + { + // bool handled = false; + if (type == InteractionActivated) + { + //@TODO need to code for launching the BT Control Panel Plugin is available + + // launchBTCpSettingView(); + } + return true; + } + +// ---------------------------------------------------------------------------- +// BTIndicator::indicatorData +// returns the data and icon that needs to be displayed in the universal pop up and indicator menu +// ---------------------------------------------------------------------------- +QVariant BTIndicator::indicatorData(int role) const +{ + switch(role) + { + case PrimaryTextRole: + { + QString text(LOC_BLUETOOTH); + return text; + } + case SecondaryTextRole: + { + return IndicatorInfo[mIndicatorStatus].secondaryText;//mSecDisplayName; + } + case DecorationNameRole: + { + //QString iconName("qtg_large_bluetooth"); + return IndicatorInfo[mIndicatorStatus].icon;//iconName; + } + case MonoDecorationNameRole : + { + // QString iconName("qtg_large_bluetooth"); + return IndicatorInfo[mIndicatorStatus].icon;//iconName; + } + + default: + return QVariant(); + } +} + +// ---------------------------------------------------------------------------- +// BTIndicator::handleClientRequest +// handles client's activate and deactivate request +// ---------------------------------------------------------------------------- +bool BTIndicator::handleClientRequest( RequestType type, + const QVariant ¶meter) + { + bool handled(false); + switch (type) { + case RequestActivate: + { + mSecDisplayName.clear(); +/* if(parameter.toInt() == EBTIndicatorOff) + mSecDisplayName.append("LOC_BLUETOOTH_OFF"); + else if(parameter.toInt() == EBTIndicatorOnVisible) + mSecDisplayName.append("LOC_BLUETOOTH_ON_VISIBLE"); + else if(parameter.toInt() == EBTIndicatorOnHidden) + mSecDisplayName.append("LOC_BLUETOOTH_ON_HIDDEN"); + else if(parameter.toInt() == EBTIndicatorVisibleConnected) + mSecDisplayName.append("LOC_BT_VISIBLE_CONNECT"); + else if(parameter.toInt() == EBTIndicatorHiddenConnected) + mSecDisplayName.append("LOC_BT_HIDDEN_CONNECT");*/ + mIndicatorStatus = parameter.toInt(); + emit dataChanged(); + handled = true; + } + break; + default: + { + mSecDisplayName.clear(); + emit deactivate(); + } + break; + } + return handled; + } + + +/*void BTIndicator::launchBTCpSettingView() + { + XQAiwRequest *request = mAppMgr.create("obexhighway","com.nokia.symbian.IFileShare","send(QVariant)",true); + + if (!request) + { + qDebug("BTIndicator request returned with NULL"); + return; + } + else + { + connect(request, SIGNAL(requestOk(QVariant)), SLOT(handleReturnValue(QVariant))); + connect(request, SIGNAL(requestError(int,QString)), SLOT(handleError(int,QString))); + } + // Set arguments for request + QList args; + //c:\resource\qt\plugins\controlpanel\nfccpplugin.qtplugin + args << QVariant( "c:\\two.jpg" );//btcpplugin.dll +// args << QVariant ( "c:\\two.jpg" ); + request->setArguments(args); + + // Make the request + if (!request->send()) + { + //report error + qDebug("BTIndicator::launchBTCpSettingView request not sent"); + } + + delete request; + + }*/ + + +/*void BTIndicator::handleReturnValue(const QVariant &returnValue) +{ +} + +void BTIndicator::handleError(int errorCode,const QString &errorMessage) + { + Q_UNUSED(errorCode); + }*/