bluetoothengine/btindicator/src/btindicator.cpp
author hgs
Mon, 12 Jul 2010 18:51:05 +0300
changeset 42 b72428996822
child 70 f5508c13dfe0
permissions -rw-r--r--
201025
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
42
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
 * All rights reserved.
hgs
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
 *
hgs
parents:
diff changeset
     9
 * Initial Contributors:
hgs
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
 *
hgs
parents:
diff changeset
    12
 * Contributors:
hgs
parents:
diff changeset
    13
 *
hgs
parents:
diff changeset
    14
 * Description:
hgs
parents:
diff changeset
    15
 *
hgs
parents:
diff changeset
    16
 */
hgs
parents:
diff changeset
    17
#include "btindicator.h" 
hgs
parents:
diff changeset
    18
#include <QVariant.h>
hgs
parents:
diff changeset
    19
//#include <hbmessagebox.h>
hgs
parents:
diff changeset
    20
//#include <xqaiwrequest.h>
hgs
parents:
diff changeset
    21
#include "btindicatorconstants.h"
hgs
parents:
diff changeset
    22
//#include <XQServiceRequest.h>
hgs
parents:
diff changeset
    23
//#include <cpbasesettingview.h>
hgs
parents:
diff changeset
    24
//#include <cppluginlauncher.h>
hgs
parents:
diff changeset
    25
#define LOC_BLUETOOTH hbTrId("txt_bt_dblist_bluetooth")
hgs
parents:
diff changeset
    26
#define LOC_BLUETOOTH_OFF hbTrId("txt_bt_dblist_bluetooth_val_off")
hgs
parents:
diff changeset
    27
#define LOC_BLUETOOTH_ON_VISIBLE hbTrId("txt_bt_dblist_bluetooth_val_on_and_visible")
hgs
parents:
diff changeset
    28
#define LOC_BLUETOOTH_VISIBLE_CONNECTED hbTrId("txt_bt_dblist_bluetooth_val_visible_and_connected")
hgs
parents:
diff changeset
    29
#define LOC_BLUETOOTH_ON_HIDDEN hbTrId("txt_bt_dblist_bluetooth_val_on_and_hidden")
hgs
parents:
diff changeset
    30
#define LOC_BLUETOOTH_HIDDEN_CONNECTED hbTrId("txt_bt_dblist_bluetooth_val_hidden_and_connected")
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
struct BTIndicatorInfo
hgs
parents:
diff changeset
    33
    {
hgs
parents:
diff changeset
    34
     QString icon;
hgs
parents:
diff changeset
    35
     QString secondaryText;
hgs
parents:
diff changeset
    36
    };
hgs
parents:
diff changeset
    37
hgs
parents:
diff changeset
    38
static const int BTIndicatorCount = 5;
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
hgs
parents:
diff changeset
    41
static const BTIndicatorInfo IndicatorInfo[BTIndicatorCount] = { 
hgs
parents:
diff changeset
    42
     { "qtg_large_bluetooth_off", "LOC_BLUETOOTH_OFF" }, 
hgs
parents:
diff changeset
    43
     { "qtg_large_bluetooth", "LOC_BLUETOOTH_ON_VISIBLE" }, 
hgs
parents:
diff changeset
    44
     { "qtg_large_bluetooth_hide","LOC_BLUETOOTH_ON_HIDDEN" },
hgs
parents:
diff changeset
    45
     { "qtg_large_bluetooth_active_connection", "LOC_BT_VISIBLE_CONNECT" }, 
hgs
parents:
diff changeset
    46
     { "qtg_large_bluetooth_hide_connection","LOC_BT_HIDDEN_CONNECT"  }
hgs
parents:
diff changeset
    47
 };
hgs
parents:
diff changeset
    48
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
    51
// BTIndicator::BTIndicator
hgs
parents:
diff changeset
    52
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
    53
BTIndicator::BTIndicator(const QString &indicatorType) :
hgs
parents:
diff changeset
    54
HbIndicatorInterface(indicatorType,
hgs
parents:
diff changeset
    55
        HbIndicatorInterface::SettingCategory ,
hgs
parents:
diff changeset
    56
        InteractionActivated)
hgs
parents:
diff changeset
    57
    {
hgs
parents:
diff changeset
    58
    mIndicatorStatus = 0;
hgs
parents:
diff changeset
    59
    }
hgs
parents:
diff changeset
    60
hgs
parents:
diff changeset
    61
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
    62
// BTIndicator::~BTIndicator
hgs
parents:
diff changeset
    63
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
    64
BTIndicator::~BTIndicator()
hgs
parents:
diff changeset
    65
    {
hgs
parents:
diff changeset
    66
    }
hgs
parents:
diff changeset
    67
hgs
parents:
diff changeset
    68
hgs
parents:
diff changeset
    69
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
    70
// BTIndicator::handleInteraction
hgs
parents:
diff changeset
    71
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
    72
bool BTIndicator::handleInteraction(InteractionType type)
hgs
parents:
diff changeset
    73
    {
hgs
parents:
diff changeset
    74
  //  bool handled = false;
hgs
parents:
diff changeset
    75
    if (type == InteractionActivated) 
hgs
parents:
diff changeset
    76
        {
hgs
parents:
diff changeset
    77
    //@TODO need to code for launching the BT Control Panel Plugin is available
hgs
parents:
diff changeset
    78
hgs
parents:
diff changeset
    79
 //       launchBTCpSettingView();
hgs
parents:
diff changeset
    80
        }
hgs
parents:
diff changeset
    81
    return true;
hgs
parents:
diff changeset
    82
    }
hgs
parents:
diff changeset
    83
hgs
parents:
diff changeset
    84
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
    85
// BTIndicator::indicatorData
hgs
parents:
diff changeset
    86
// returns the data and icon that needs to be displayed in the universal pop up and indicator menu 
hgs
parents:
diff changeset
    87
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
    88
QVariant BTIndicator::indicatorData(int role) const
hgs
parents:
diff changeset
    89
{
hgs
parents:
diff changeset
    90
    switch(role)
hgs
parents:
diff changeset
    91
    {
hgs
parents:
diff changeset
    92
    case PrimaryTextRole: 
hgs
parents:
diff changeset
    93
        {
hgs
parents:
diff changeset
    94
        QString text(LOC_BLUETOOTH);
hgs
parents:
diff changeset
    95
        return text;
hgs
parents:
diff changeset
    96
        }
hgs
parents:
diff changeset
    97
    case SecondaryTextRole:
hgs
parents:
diff changeset
    98
        {
hgs
parents:
diff changeset
    99
        return IndicatorInfo[mIndicatorStatus].secondaryText;//mSecDisplayName;
hgs
parents:
diff changeset
   100
        }
hgs
parents:
diff changeset
   101
    case DecorationNameRole:
hgs
parents:
diff changeset
   102
        {
hgs
parents:
diff changeset
   103
        //QString iconName("qtg_large_bluetooth");
hgs
parents:
diff changeset
   104
        return IndicatorInfo[mIndicatorStatus].icon;//iconName;
hgs
parents:
diff changeset
   105
        }
hgs
parents:
diff changeset
   106
    case MonoDecorationNameRole :
hgs
parents:
diff changeset
   107
        {
hgs
parents:
diff changeset
   108
       // QString iconName("qtg_large_bluetooth");
hgs
parents:
diff changeset
   109
        return IndicatorInfo[mIndicatorStatus].icon;//iconName;
hgs
parents:
diff changeset
   110
        }
hgs
parents:
diff changeset
   111
hgs
parents:
diff changeset
   112
    default: 
hgs
parents:
diff changeset
   113
        return QVariant();      
hgs
parents:
diff changeset
   114
     }
hgs
parents:
diff changeset
   115
}
hgs
parents:
diff changeset
   116
hgs
parents:
diff changeset
   117
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   118
// BTIndicator::handleClientRequest
hgs
parents:
diff changeset
   119
// handles client's activate and deactivate request
hgs
parents:
diff changeset
   120
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   121
bool BTIndicator::handleClientRequest( RequestType type, 
hgs
parents:
diff changeset
   122
        const QVariant &parameter)
hgs
parents:
diff changeset
   123
    {
hgs
parents:
diff changeset
   124
    bool handled(false);
hgs
parents:
diff changeset
   125
    switch (type) {
hgs
parents:
diff changeset
   126
        case RequestActivate:
hgs
parents:
diff changeset
   127
            {
hgs
parents:
diff changeset
   128
            mSecDisplayName.clear();
hgs
parents:
diff changeset
   129
/*            if(parameter.toInt() == EBTIndicatorOff)
hgs
parents:
diff changeset
   130
                mSecDisplayName.append("LOC_BLUETOOTH_OFF");
hgs
parents:
diff changeset
   131
            else if(parameter.toInt() == EBTIndicatorOnVisible)
hgs
parents:
diff changeset
   132
                mSecDisplayName.append("LOC_BLUETOOTH_ON_VISIBLE");
hgs
parents:
diff changeset
   133
            else if(parameter.toInt() == EBTIndicatorOnHidden)
hgs
parents:
diff changeset
   134
                mSecDisplayName.append("LOC_BLUETOOTH_ON_HIDDEN");
hgs
parents:
diff changeset
   135
            else if(parameter.toInt() == EBTIndicatorVisibleConnected)
hgs
parents:
diff changeset
   136
                mSecDisplayName.append("LOC_BT_VISIBLE_CONNECT");
hgs
parents:
diff changeset
   137
            else if(parameter.toInt() == EBTIndicatorHiddenConnected)
hgs
parents:
diff changeset
   138
                mSecDisplayName.append("LOC_BT_HIDDEN_CONNECT");*/
hgs
parents:
diff changeset
   139
            mIndicatorStatus = parameter.toInt();
hgs
parents:
diff changeset
   140
            emit dataChanged();
hgs
parents:
diff changeset
   141
            handled =  true;
hgs
parents:
diff changeset
   142
            }
hgs
parents:
diff changeset
   143
            break;
hgs
parents:
diff changeset
   144
        default:
hgs
parents:
diff changeset
   145
            {
hgs
parents:
diff changeset
   146
            mSecDisplayName.clear();
hgs
parents:
diff changeset
   147
            emit deactivate();
hgs
parents:
diff changeset
   148
            }
hgs
parents:
diff changeset
   149
            break;
hgs
parents:
diff changeset
   150
    }
hgs
parents:
diff changeset
   151
    return handled;
hgs
parents:
diff changeset
   152
    }
hgs
parents:
diff changeset
   153
hgs
parents:
diff changeset
   154
hgs
parents:
diff changeset
   155
/*void BTIndicator::launchBTCpSettingView()
hgs
parents:
diff changeset
   156
    {
hgs
parents:
diff changeset
   157
    XQAiwRequest *request = mAppMgr.create("obexhighway","com.nokia.symbian.IFileShare","send(QVariant)",true);
hgs
parents:
diff changeset
   158
hgs
parents:
diff changeset
   159
    if (!request)
hgs
parents:
diff changeset
   160
    {
hgs
parents:
diff changeset
   161
       qDebug("BTIndicator request returned with NULL");
hgs
parents:
diff changeset
   162
        return;
hgs
parents:
diff changeset
   163
    }
hgs
parents:
diff changeset
   164
    else
hgs
parents:
diff changeset
   165
    {
hgs
parents:
diff changeset
   166
        connect(request, SIGNAL(requestOk(QVariant)), SLOT(handleReturnValue(QVariant)));
hgs
parents:
diff changeset
   167
        connect(request, SIGNAL(requestError(int,QString)), SLOT(handleError(int,QString)));
hgs
parents:
diff changeset
   168
    }
hgs
parents:
diff changeset
   169
    // Set arguments for request 
hgs
parents:
diff changeset
   170
    QList<QVariant> args;
hgs
parents:
diff changeset
   171
    //c:\resource\qt\plugins\controlpanel\nfccpplugin.qtplugin
hgs
parents:
diff changeset
   172
    args << QVariant( "c:\\two.jpg" );//btcpplugin.dll
hgs
parents:
diff changeset
   173
//    args << QVariant ( "c:\\two.jpg" );
hgs
parents:
diff changeset
   174
    request->setArguments(args);
hgs
parents:
diff changeset
   175
hgs
parents:
diff changeset
   176
    // Make the request
hgs
parents:
diff changeset
   177
    if (!request->send())
hgs
parents:
diff changeset
   178
    {
hgs
parents:
diff changeset
   179
        //report error  
hgs
parents:
diff changeset
   180
        qDebug("BTIndicator::launchBTCpSettingView request not sent");
hgs
parents:
diff changeset
   181
    }
hgs
parents:
diff changeset
   182
    
hgs
parents:
diff changeset
   183
    delete request;
hgs
parents:
diff changeset
   184
    
hgs
parents:
diff changeset
   185
    }*/
hgs
parents:
diff changeset
   186
hgs
parents:
diff changeset
   187
hgs
parents:
diff changeset
   188
/*void BTIndicator::handleReturnValue(const QVariant &returnValue)
hgs
parents:
diff changeset
   189
{
hgs
parents:
diff changeset
   190
}
hgs
parents:
diff changeset
   191
hgs
parents:
diff changeset
   192
void BTIndicator::handleError(int errorCode,const QString &errorMessage)
hgs
parents:
diff changeset
   193
    {
hgs
parents:
diff changeset
   194
    Q_UNUSED(errorCode);
hgs
parents:
diff changeset
   195
    }*/