--- /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 <QVariant.h>
+//#include <hbmessagebox.h>
+//#include <xqaiwrequest.h>
+#include "btindicatorconstants.h"
+//#include <XQServiceRequest.h>
+//#include <cpbasesettingview.h>
+//#include <cppluginlauncher.h>
+#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<QVariant> 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);
+ }*/