--- a/src/hbplugins/inputmethods/touchinput/virtualqwerty.cpp Fri Jun 11 13:58:22 2010 +0300
+++ b/src/hbplugins/inputmethods/touchinput/virtualqwerty.cpp Wed Jun 23 18:33:25 2010 +0300
@@ -86,6 +86,12 @@
connect(this, SIGNAL(autoCompletionPopupClosed(QString, int)), mBasicModeHandler, SLOT(autoCompletionPopupClosed(QString, int)));
connect(HbInputSettingProxy::instance(), SIGNAL(predictiveInputStateChanged(HbKeyboardSettingFlags,bool)), this, SLOT(predictiveInputStateChanged(HbKeyboardSettingFlags,bool)));
+ connect(HbInputSettingProxy::instance(), SIGNAL(primaryCandidateModeChanged(HbPrimaryCandidateMode)), this, SLOT(primaryCandidateModeChanged(HbPrimaryCandidateMode)));
+ connect(HbInputSettingProxy::instance(), SIGNAL(autocompletionStateChanged(HbKeyboardSettingFlags,bool)), this, SLOT(autocompletionStateChanged(HbKeyboardSettingFlags,bool)));
+ connect(HbInputSettingProxy::instance(), SIGNAL(typingCorrectionLevelChanged(HbTypingCorrectionLevel)), this, SLOT(typingCorrectionLevelChanged(HbTypingCorrectionLevel)));
+ mPredictionModeHandler->setPrimaryCandidateMode(HbInputSettingProxy::instance()->primaryCandidateMode());
+ mPredictionModeHandler->setAutocompletionStatus(HbInputSettingProxy::instance()->isAutocompletionEnabled(HbKeyboardSettingQwerty));
+ mPredictionModeHandler->setTypingCorrectionLevel(HbInputSettingProxy::instance()->typingCorrectionLevel());
}
// ---------------------------------------------------------------------------
@@ -218,6 +224,7 @@
disconnect(&(focusObject()->editorInterface()), SIGNAL(cursorPositionChanged(int, int)), mActiveModeHandler, SLOT(cursorPositionChanged(int, int)));
}
+ closeExactWordPopup();
if (!focusSwitch) {
if (mVkbHost && mVkbHost->keypadStatus() != HbVkbHost::HbVkbStatusClosed) {
// Context switch has happened but the keypad is still open.
@@ -242,7 +249,7 @@
void HbVirtualQwerty::openKeypad(HbInputVkbWidget * keypadToOpen,bool inMinimizedMode )
{
// if null is sent, just return.
- if(!keypadToOpen) {
+ if(!keypadToOpen || !focusObject()) {
return;
}
bool disableAnimation = false;
@@ -279,7 +286,10 @@
mVkbHost->openKeypad(mCurrentKeypad, this, !disableAnimation);
}
- connect(&(focusObject()->editorInterface()), SIGNAL(cursorPositionChanged(int, int)), mVkbHost, SLOT(ensureCursorVisibility()));
+ if (focusObject()) {
+ connect(&(focusObject()->editorInterface()), SIGNAL(cursorPositionChanged(int, int)),
+ mVkbHost, SLOT(ensureCursorVisibility()));
+ }
}
}
@@ -335,8 +345,8 @@
if (mOrientationAboutToChange) {
mOrientationAboutToChange = false;
}
- if (mExactWordPopup && mExactWordPopup->isVisible()) {
- mExactWordPopup->hide();
+ if (mVkbHost->keypadStatus() == HbVkbHost::HbVkbStatusMinimized) {
+ closeExactWordPopup();
}
}
@@ -367,17 +377,14 @@
// load the new key keymappings for newLanguage to all keypads and all mode handlers
loadKeymap(aNewLanguage);
- if (mCurrentKeypad && mCurrentKeypad != mQwertyAlphaKeypad
- && mCurrentKeypad != mQwertyNumericKeypad) {
- mCurrentKeypad->animKeyboardChange();
- openKeypad(mQwertyAlphaKeypad);
- }
-
- mPredictionModeHandler->actionHandler(HbInputModeHandler::HbInputModeActionPrimaryLanguageChanged);
- if (mCurrentKeypad){
+ if (focusObject() && mCurrentKeypad) {
+ if (mCurrentKeypad != mQwertyAlphaKeypad && mCurrentKeypad != mQwertyNumericKeypad) {
+ mCurrentKeypad->animKeyboardChange();
+ openKeypad(mQwertyAlphaKeypad);
+ }
mCurrentKeypad->animKeyboardChange();
}
-
+ mPredictionModeHandler->actionHandler(HbInputModeHandler::HbInputModeActionPrimaryLanguageChanged);
}
void HbVirtualQwerty::inputStateActivated(const HbInputState& newState)
@@ -437,7 +444,7 @@
void HbVirtualQwerty::loadKeymap(const HbInputLanguage &newLanguage)
{
// inform all the mode handler about the language change.
- //dont try to get the keymappings if we ( mKeyData) already have keymappings for newLanguage
+ //don't try to get the keymappings if we ( mKeyData) already have keymappings for newLanguage
if (!mKeymap || mKeymap->language() != newLanguage) {
const HbKeymap* keymap = HbKeymapFactory::instance()->keymap(newLanguage);
@@ -683,6 +690,22 @@
}
}
+void HbVirtualQwerty::primaryCandidateModeChanged(HbPrimaryCandidateMode mode)
+{
+ mPredictionModeHandler->setPrimaryCandidateMode(mode);
+}
+
+void HbVirtualQwerty::autocompletionStateChanged(HbKeyboardSettingFlags keyboardType, bool newState)
+{
+ if (keyboardType & HbKeyboardSettingQwerty) {
+ mPredictionModeHandler->setAutocompletionStatus(newState);
+ }
+}
+
+void HbVirtualQwerty::typingCorrectionLevelChanged(HbTypingCorrectionLevel correctionLevel)
+{
+ mPredictionModeHandler->setTypingCorrectionLevel(correctionLevel);
+}
/*!
this function is called whenever there is a hardware keypress Or virtual keypad button is pressed.
*/
@@ -703,7 +726,7 @@
{
if (!mExactWordPopup) {
mExactWordPopup = HbExactWordPopup::instance();
- connect(mExactWordPopup, SIGNAL(exactWordSelected()), mPredictionModeHandler, SLOT(exactWordPopupClosed()));
+ connect(mExactWordPopup, SIGNAL(exactWordSelected()), mPredictionModeHandler, SLOT(exactWordSelected()));
}
mExactWordPopup->setText(exactWord);
mExactWordPopup->showText(getCursorCoordinatePosition());