diff -r 7d48bed6ce0c -r 987c9837762f telutils/dialpad/src/dialpademergencycalleventfilter.cpp --- a/telutils/dialpad/src/dialpademergencycalleventfilter.cpp Tue Aug 31 15:45:17 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,114 +0,0 @@ -/* -* 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 -#include -#include -#include "dialpademergencycalleventfilter.h" -#include "dialpad.h" -#include "qtphonesrvlog.h" - -#ifdef Q_OS_SYMBIAN -#include -#include -#endif //Q_OS_SYMBIAN - - -DialpadEmergencyCallEventFilter::DialpadEmergencyCallEventFilter(Dialpad* dialpad, QObject* parent) : - QObject(parent), mDialpad(dialpad), mEmergency(0) -{ - PHONE_TRACE; -#ifdef Q_OS_SYMBIAN - TRAP_IGNORE(mEmergency = CPhCltEmergencyCall::NewL( NULL )); -#endif // Q_OS_SYMBIAN - mDialpad->setCallButtonEnabled(false); - connect(&mDialpad->editor(),SIGNAL(contentsChanged()), - this,SLOT(editorTextChanged())); -} - -DialpadEmergencyCallEventFilter::~DialpadEmergencyCallEventFilter() -{ -} - -bool DialpadEmergencyCallEventFilter::eventFilter(QObject *watched, QEvent *event) -{ - PHONE_TRACE; - Q_UNUSED(watched) - - bool eventFiltered = false; -#ifdef Q_OS_SYMBIAN - - const int eventType = event->type(); - - if (eventType == QEvent::KeyPress) { - QKeyEvent *keyEvent = static_cast(event); - const int keyCode = keyEvent->key(); - if (keyCode == Qt::Key_Yes || - keyCode == Qt::Key_Enter) { - if (isEmergencyNumber(editorText())) { - createCall(editorText()); - eventFiltered = true; - } - } - } -#else - Q_UNUSED(event) -#endif // Q_OS_SYMBIAN - - return eventFiltered; -} - -bool DialpadEmergencyCallEventFilter::isEmergencyNumber(QString string) -{ - PHONE_TRACE; - bool ret = false; -#ifdef Q_OS_SYMBIAN - if (KPhCltTelephoneNumberLength >= string.length()) { - TBool emergency; - TPhCltTelephoneNumber number(reinterpret_cast(string.utf16())); - if (mEmergency && - KErrNone == mEmergency->IsEmergencyPhoneNumber(number, emergency)) { - ret = emergency; - } - } -#else - Q_UNUSED(string) -#endif // Q_OS_SYMBIAN - return ret; -} - -QString DialpadEmergencyCallEventFilter::editorText() -{ - PHONE_TRACE; - return HbStringUtil::convertDigitsTo( - mDialpad->editor().text(), WesternDigit); -} - -void DialpadEmergencyCallEventFilter::createCall(const QString &phoneNumber) -{ - PHONE_TRACE2("phoneNumber:", phoneNumber); -#ifdef Q_OS_SYMBIAN - TPtrC number (static_cast(phoneNumber.utf16()), - phoneNumber.length()); - TRAP_IGNORE(mEmergency->DialEmergencyCallL(number)); -#endif // Q_OS_SYMBIAN -} - -void DialpadEmergencyCallEventFilter::editorTextChanged() -{ - mDialpad->setCallButtonEnabled(isEmergencyNumber(editorText())); -} -