--- a/telutils/dialpad/src/dialpadmultitaphandler.cpp Tue Aug 31 15:45:17 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,121 +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: Dialpad multitap handler
-*
-*/
-
-#include <QKeyEvent>
-#include <hbapplication.h>
-#include <hblineedit.h>
-#include "dialpadmultitaphandler.h"
-
-static const int DialpadMaxMultitapTime = 800; // ms
-static const int DialpadAsteriskMultitapCount = 4;
-static const int DialpadAsteriskMultitapChars[DialpadAsteriskMultitapCount] =
- {Qt::Key_Asterisk, Qt::Key_Plus, Qt::Key_P, Qt::Key_W};
-
-
-DialpadMultitapHandler::DialpadMultitapHandler(
- HbLineEdit& editor,
- QObject* parent) :
- QObject(parent),
- mEditor(editor),
- mAsteriskMultitapIndex(0),
- mGeneratedAsterisk(false)
-{
- // extra characters
- mExtraChar.insert(Qt::Key_Asterisk, '*');
- mExtraChar.insert(Qt::Key_Plus, '+');
- mExtraChar.insert(Qt::Key_P, 'p');
- mExtraChar.insert(Qt::Key_W, 'w');
-}
-
-DialpadMultitapHandler::~DialpadMultitapHandler()
-{
-}
-
-bool DialpadMultitapHandler::eventFilter(QObject *watched, QEvent *event)
-{
- if (watched!=&mEditor) {
- return false;
- }
-
- int type = event->type();
-
- if (type==QEvent::KeyPress) {
- QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
- if (isNumericKey(keyEvent->key()) &&
- keyEvent->text().isEmpty() ) {
- return true;
- }
- }
-
- bool keyEventEaten = false;
-
- if (type==QEvent::KeyPress) {
- QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
-
- if (keyEvent->key()==Qt::Key_Asterisk) {
- if ((mMultitapTimer.elapsed() <= DialpadMaxMultitapTime) &&
- !mGeneratedAsterisk) {
- // remove the last char by generated backspace
- QKeyEvent backspaceEvent(QEvent::KeyPress,
- Qt::Key_Backspace,
- Qt::NoModifier, "");
- HbApplication::sendEvent(&mEditor,&backspaceEvent);
-
- // generate +,p,w,* character
- mAsteriskMultitapIndex =
- ++mAsteriskMultitapIndex % DialpadAsteriskMultitapCount;
-
- int key = DialpadAsteriskMultitapChars[mAsteriskMultitapIndex];
-
- // Allow + character only as a first char in editor
- int cursorPosition = mEditor.cursorPosition();
- if(cursorPosition != 0 && key == Qt::Key_Plus) {
- mAsteriskMultitapIndex = ++mAsteriskMultitapIndex;
- Q_ASSERT(mAsteriskMultitapIndex < DialpadAsteriskMultitapCount);
- key = DialpadAsteriskMultitapChars[mAsteriskMultitapIndex];
- }
-
- QKeyEvent generatedEvent(QEvent::KeyPress, key,
- Qt::KeypadModifier,
- mExtraChar.value(key));
- if (key==Qt::Key_Asterisk) {
- mGeneratedAsterisk = true;
- }
-
- HbApplication::sendEvent(&mEditor,&generatedEvent);
- keyEventEaten = true;
- mMultitapTimer.start();
- } else {
- mMultitapTimer.start();
- mAsteriskMultitapIndex = 0;
- }
-
- mGeneratedAsterisk = false;
- }
- }
-
- return keyEventEaten;
-}
-
-bool DialpadMultitapHandler::isNumericKey(int key)
-{
- if (key==Qt::Key_Yes || key==Qt::Key_Backspace) {
- return false;
- } else {
- return true;
- }
-}