--- a/src/hbplugins/inputmethods/touchinput/hbinputprediction12keythaihandler.cpp Thu May 27 13:10:59 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,205 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (developer.feedback@nokia.com)
-**
-** This file is part of the HbPlugins module of the UI Extensions for Mobile.
-**
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at developer.feedback@nokia.com.
-**
-****************************************************************************/
-#include <QTimer>
-
-#include <hbinputsettingproxy.h>
-#include <hbinputkeymapfactory.h>
-#include <hbinputpredictionengine.h>
-#include <hbinputbutton.h>
-
-#include "virtual12key.h"
-
-#include "hbinputprediction12keyhandler_p.h"
-#include "hbinputprediction12keythaihandler.h"
-
-class HbInputPrediction12KeyThaiHandlerPrivate: public HbInputPrediction12KeyHandlerPrivate
-{
- Q_DECLARE_PUBLIC(HbInputPrediction12KeyThaiHandler)
-
-public:
- HbInputPrediction12KeyThaiHandlerPrivate();
- ~HbInputPrediction12KeyThaiHandlerPrivate();
-
- bool buttonReleased(const QKeyEvent *keyEvent);
- bool buttonPressed(const QKeyEvent *keyEvent);
-};
-
-HbInputPrediction12KeyThaiHandlerPrivate::HbInputPrediction12KeyThaiHandlerPrivate()
-{
-}
-
-HbInputPrediction12KeyThaiHandlerPrivate::~HbInputPrediction12KeyThaiHandlerPrivate()
-{
-
-}
-
-bool HbInputPrediction12KeyThaiHandlerPrivate::buttonPressed(const QKeyEvent *keyEvent)
-{
- Q_Q(HbInputPrediction12KeyThaiHandler);
-
- mLongPressHappened = false;
- HbInputFocusObject *focusObject = 0;
- focusObject = mInputMethod->focusObject();
- if (!focusObject) {
- return false;
- }
-
- int buttonId = keyEvent->key();
-
- if (keyEvent->isAutoRepeat() && mLastKey == buttonId) {
- if (buttonId == Qt::Key_0) {
- q->actionHandler(HbInputModeHandler::HbInputModeActionCommit);
- q->commitFirstMappedNumber(buttonId, mInputMethod->currentKeyboardType());
- mLongPressHappened = true;
- } else if (buttonId != HbInputButton::ButtonKeyCodeAsterisk) {
- return HbInputPrediction12KeyHandlerPrivate::buttonPressed(keyEvent);
- }
- if (mLongPressHappened) {
- mLastKey = 0;
- return true;
- }
- }
-
- //Pass the event to base class except Shift key
- if (buttonId == Qt::Key_Shift) {
- mLastKey = buttonId;
- mButtonDown = true;
- } else {
- return HbInputPrediction12KeyHandlerPrivate::buttonPressed(keyEvent);
- }
- return false;
-}
-
-/*!
-Handles the key release events from the VKB. Launches the SCT with key release event of
-asterisk.
-*/
-bool HbInputPrediction12KeyThaiHandlerPrivate::buttonReleased(const QKeyEvent *keyEvent)
-{
- Q_Q(HbInputPrediction12KeyHandler);
-
- if(!mButtonDown || mLongPressHappened){
- mLongPressHappened = false;
- return false;
- }
-
- int buttonId = keyEvent->key();
-
- if (buttonId == HbInputButton::ButtonKeyCodeAsterisk && !mInputMethod->isSctModeActive()) {
- //Handle if key Asterisk pressed and SCT is not launched or else pass it to base handlers
- if (q->HbInputPredictionHandler::filterEvent(keyEvent)) {
- mButtonDown = false;
- return true;
- }
- } else if ( buttonId == HbInputButton::ButtonKeyCodeShift ) {
- //As we can't map charatcers to Shift key in keymapping, making use of "#" key i.e. Qt::Key_NumberSign
- //in keymapping and manipulating event to Qt::Key_NumberSign when shift key is pressed
- const QKeyEvent *event = new QKeyEvent(QEvent::KeyPress, Qt::Key_NumberSign, Qt::NoModifier);
- if (q->HbInputPredictionHandler::filterEvent(event)) {
- mButtonDown = false;
- return true;
- }
- } else {
- HbInputPrediction12KeyHandlerPrivate::buttonReleased(keyEvent);
- }
- return false;
-}
-
-
-HbInputPrediction12KeyThaiHandler::HbInputPrediction12KeyThaiHandler(HbInputAbstractMethod *inputMethod)
- :HbInputPrediction12KeyHandler(* new HbInputPrediction12KeyThaiHandlerPrivate, inputMethod)
-{
- Q_D(HbInputPrediction12KeyThaiHandler);
- d->q_ptr = this;
-}
-
-HbInputPrediction12KeyThaiHandler::~HbInputPrediction12KeyThaiHandler()
-{
-}
-/*!
- filterEvent to handler keypress/release events.
-*/
-
-bool HbInputPrediction12KeyThaiHandler::filterEvent(const QKeyEvent * event)
-{
- Q_D(HbInputPrediction12KeyThaiHandler);
- HbInputFocusObject *focusObject = 0;
- focusObject = d->mInputMethod->focusObject();
-
- //If there was a handling for empty candidate-list, i.e. the engine did not predict
- //any meaningful word for the input sequence.
-
- if(!d->mCanContinuePrediction) {
- int eventKey = event->key();
- //let's us return If engine did not predict any meaningful word for the input sequence
- //for Shift,Asterisk and Control
- if(eventKey == Qt::Key_Control || eventKey == Qt::Key_0) {
- if(d->mCandidates->size() && focusObject ) {
- //Remove the "?" mark
- (*d->mCandidates)[d->mBestGuessLocation].chop(1);
- d->updateEditor();
- d->mCanContinuePrediction = true;
- }
- } else if (eventKey != Qt::Key_Shift && eventKey != Qt::Key_Asterisk){
- // For Shift key and Asterisk key Will handle it in button release Since we have character mapped to Shift and Asterisk
- // or else pass it to Prediction12KeyHandler handler
- HbInputPrediction12KeyHandler::filterEvent(event);
- }
- }
-
- // If the word is in inline edit First tap of Qt::Key_0 should commit the word in the editor
- // For successive tap prediction mode can't handle Qt::Key_0, so we will emit a passFilterEvent
- // this signal must be connected to by the plugin to a modehandler.
- // which can handle it.
-
- if (event->key() == Qt::Key_0 && d->mEngine->inputLength() >= 1 ) {
- if(event->type() == QEvent::KeyPress) {
- d->mButtonDown = true;
- } else if(event->type() == QEvent::KeyRelease) {
- d->mTimer->stop();
- d->mButtonDown = false;
- actionHandler(HbInputModeHandler::HbInputModeActionCommit);
- }
- d->mLastKey = Qt::Key_0;
- return true;
- } else if (event->key() == Qt::Key_0) {
- emit passFilterEvent(event);
- d->mLastKey = Qt::Key_0;
- return true;
- } else {
- if (d->mLastKey == Qt::Key_0) {
- emit passActionHandler(HbInputModeActionCommit);
- }
- if (event->type() == QEvent::KeyRelease) {
- return d->buttonReleased(event);
- } else {
- return d->buttonPressed(event);
- }
- }
-}
-
-
-//EOF
-