author | hgs |
Fri, 15 Oct 2010 13:21:28 +0300 | |
changeset 53 | 25b8d29b7c59 |
parent 51 | 12bc758d6a02 |
permissions | -rw-r--r-- |
13
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1 |
/* |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2 |
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
3 |
* All rights reserved. |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
4 |
* This component and the accompanying materials are made available |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
5 |
* under the terms of "Eclipse Public License v1.0" |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
6 |
* which accompanies this distribution, and is available |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
7 |
* at the URL "http://www.eclipse.org/legal/epl-v10.html". |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
8 |
* |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
9 |
* Initial Contributors: |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
10 |
* Nokia Corporation - initial contribution. |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
11 |
* |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
12 |
* Contributors: |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
13 |
* |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
14 |
* Description: |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
15 |
* |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
16 |
*/ |
32
1f002146abb4
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
27
diff
changeset
|
17 |
#include <QTimer> |
1f002146abb4
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
27
diff
changeset
|
18 |
#include <QKeyEvent> |
13
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
19 |
#include <hblineedit.h> |
51 | 20 |
#include <btxqserviceapi.h> |
13
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
21 |
#include "dialpadbluetootheventfilter.h" |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
22 |
#include "dialpad.h" |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
23 |
#include "qtphonesrvlog.h" |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
24 |
|
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
25 |
#ifdef Q_OS_SYMBIAN |
51 | 26 |
#include <xqappmgr.h> |
13
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
27 |
#endif //Q_OS_SYMBIAN |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
28 |
|
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
29 |
const int DialpadLongKeyPressTimeOut(1000); |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
30 |
const QString BluetoothCharacter("*"); |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
31 |
|
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
32 |
DialpadBluetoothEventFilter::DialpadBluetoothEventFilter(Dialpad* dialpad, QObject* parent) : |
53 | 33 |
QObject(parent), mDialpad(dialpad), mRequest(0) |
13
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
34 |
{ |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
35 |
PHONE_TRACE; |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
36 |
mLongPressTimer = new QTimer(this); |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
37 |
mLongPressTimer->setSingleShot(true); |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
38 |
connect(mLongPressTimer,SIGNAL(timeout()), this, SLOT(toggleBluetooth())); |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
39 |
} |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
40 |
|
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
41 |
DialpadBluetoothEventFilter::~DialpadBluetoothEventFilter() |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
42 |
{ |
53 | 43 |
delete mRequest; |
44 |
mRequest = 0; |
|
13
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
45 |
} |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
46 |
|
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
47 |
bool DialpadBluetoothEventFilter::eventFilter(QObject *watched, QEvent *event) |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
48 |
{ |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
49 |
Q_UNUSED(watched) |
33 | 50 |
|
51 |
if (event->type() == QEvent::KeyPress) { |
|
52 |
QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event); |
|
53 |
if (keyEvent->key() == Qt::Key_Asterisk && |
|
54 |
!(mDialpad->editor().text().length() >= 1)) { |
|
13
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
55 |
//Check that there is only one item in dialpad, if there is more than one |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
56 |
//do not handle long key press. |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
57 |
mLongPressTimer->stop(); |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
58 |
mLongPressTimer->start(DialpadLongKeyPressTimeOut); |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
59 |
} |
33 | 60 |
} else if (event->type() == QEvent::KeyRelease) { |
13
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
61 |
mLongPressTimer->stop(); |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
62 |
} |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
63 |
|
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
64 |
// Don't consume the key |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
65 |
return false; |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
66 |
} |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
67 |
|
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
68 |
void DialpadBluetoothEventFilter::toggleBluetooth() |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
69 |
{ |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
70 |
PHONE_TRACE; |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
71 |
mDialpad->editor().setText(QString("")); |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
72 |
#ifdef Q_OS_SYMBIAN |
53 | 73 |
if(mRequest == NULL) { |
74 |
XQApplicationManager appManager; |
|
75 |
mRequest = appManager.create(BluetoothServiceName, BluetoothInterfaceTogglePower, |
|
76 |
BluetoothTogglePower, false); |
|
77 |
} |
|
78 |
||
79 |
if (mRequest == NULL) { |
|
51 | 80 |
return; |
53 | 81 |
} else { |
82 |
connect(mRequest, SIGNAL(requestOk(const QVariant&)), this, SLOT(requestOk(const QVariant&))); |
|
83 |
connect(mRequest, SIGNAL(requestError(int, const QString&)), this, SLOT(requestError(int, const QString&))); |
|
51 | 84 |
} |
53 | 85 |
|
86 |
mRequest->setSynchronous(false); |
|
87 |
mRequest->send(); |
|
13
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
88 |
#endif // Q_OS_SYMBIAN |
e32024264ebb
Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
89 |
} |
53 | 90 |
|
91 |
void DialpadBluetoothEventFilter::requestOk(const QVariant& value) |
|
92 |
{ |
|
93 |
PHONE_TRACE; |
|
94 |
Q_UNUSED(value); |
|
95 |
delete mRequest; |
|
96 |
mRequest = 0; |
|
97 |
} |
|
98 |
||
99 |
void DialpadBluetoothEventFilter::requestError(int errorCode, const QString& errorMessage) |
|
100 |
{ |
|
101 |
Q_UNUSED(errorCode); |
|
102 |
Q_UNUSED(errorMessage); |
|
103 |
PHONE_DEBUG2("DialpadBluetoothEventFilter::requestError - errorCode: ", errorCode); |
|
104 |
PHONE_DEBUG2("DialpadBluetoothEventFilter::requestError - errorMessage: ", errorMessage); |
|
105 |
delete mRequest; |
|
106 |
mRequest = 0; |
|
107 |
} |
|
108 |