--- a/src/hbinput/inputwidgets/hbinputvkbwidget.cpp Fri Sep 17 08:32:10 2010 +0300
+++ b/src/hbinput/inputwidgets/hbinputvkbwidget.cpp Mon Oct 04 00:38:12 2010 +0300
@@ -45,18 +45,15 @@
#include <hbeffect.h>
#include <hbframedrawer.h>
#include <hbevent.h>
-#include <hbdataform.h>
#include <hbinputregioncollector_p.h>
#include <hbfeedbackmanager.h>
-#include <hbpushbutton.h>
#include <hbinputmethod.h>
#include <hbinputsettingproxy.h>
#include <hbinpututils.h>
#include <hbinputdef.h>
#include <hbinputvkbhost.h>
#include <hbinputvkbhostbridge.h>
-#include <hbinputsettingwidget.h>
#include <hbinputcommondialogs.h>
#include <hbinputkeymap.h>
#include <hbinputkeymapfactory.h>
@@ -73,14 +70,13 @@
#include "hbinputmodeindicator.h"
#include "hbinputsmileypicker.h"
#include "hbinputscreenshotwidget.h"
+#include "hbinputsettingpopup.h"
const int HB_DIGIT_LATIN_START_VALUE = 0x0030;
const int HB_DIGIT_ARABIC_INDIC_START_VALUE = 0x0660;
const int HB_DIGIT_EASTERN_ARABIC_START_VALUE = 0x06F0;
const int HB_DIGIT_DEVANAGARI_START_VALUE = 0x0966;
-const int HbTitlePaneHeight = 20;
-
const qreal HbPortraitSmileyPickerHeightInUnits = 43.7;
const qreal HbPortraitSmileyPickerWidthInUnits = 47.8;
const qreal HbLandscapeSmileyPickerHeightInUnits = 31.9;
@@ -89,7 +85,7 @@
/*!
-@proto
+@stable
@hbinput
\class HbInputVkbWidget
\brief A base class for touch keypads.
@@ -97,7 +93,7 @@
This class implements default mechanisms for opening and closing touch keypads.
It know how to operate in landscape and in portait modes and it know how
implement split view -mechasnism for S60 QT UI's Hb library. It also implements
-closing mechansim, where used is able to close the touch keypad by sliding it downwards
+closing mechanism, where used is able to close the touch keypad by sliding it downwards
with a finger. This class also implements background drawing for touch keypads.
*/
@@ -141,7 +137,6 @@
mCloseHandleHeight(0),
mCloseHandle(0),
mKeyboardDimmed(false),
- mSettingView(0),
mSettingPopup(0)
{
mScreenshotTimeLine.setUpdateInterval(16);
@@ -151,7 +146,6 @@
HbInputVkbWidgetPrivate::~HbInputVkbWidgetPrivate()
{
delete mSettingList;
- delete mSettingPopup;
delete mBackgroundDrawer;
delete mIconDrawer;
delete mSmileyPicker;
@@ -425,8 +419,18 @@
if (!descriptor.isEmpty() && mOwner) {
// Set as active input method.
HbInputSettingProxy::instance()->setPreferredInputMethod(q->mainWindow()->orientation(), descriptor, customData);
- // Activate immediately.
- mOwner->activateInputMethod(descriptor);
+ if (HbInputSettingProxy::instance()->globalInputLanguage().language() == QLocale::Chinese &&
+ q->mainWindow()->orientation() == Qt::Vertical) {
+ HbInputLanguage primaryInputLanguage = HbInputSettingProxy::instance()->globalInputLanguage();
+ mOwner->activateState(HbInputState(HbInputModeDefault,
+ HbTextCaseAutomatic,
+ HbKeyboardTouchPortrait,
+ primaryInputLanguage));
+ HbInputMethod::activeInputMethod()->activateInputMethod(descriptor);
+ } else {
+ // Activate immediately.
+ mOwner->activateInputMethod(descriptor);
+ }
}
}
@@ -786,7 +790,7 @@
}
if (focusObject->editorInterface().isPredictionAllowed() &&
- predFactory->predictionEngineForLanguage(HbInputSettingProxy::instance()->globalInputLanguage())) {
+ predFactory->predictionEngineForLanguage(d->mOwner->inputState().language())) {
d->mSettingList->setPredictionSelectionEnabled(true);
} else {
d->mSettingList->setPredictionSelectionEnabled(false);
@@ -855,34 +859,9 @@
d->mSettingsDialogsOpen++;
closeSettingList();
- d->mSettingPopup = new HbDialog();
-
- HbPushButton *button = new HbPushButton();
- HbIcon backIcon = HbIcon("qtg_mono_back");
- button->setIcon(backIcon);
- button->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
- connect(button, SIGNAL(clicked()), this, SLOT(closeSettingsView()));
- d->mSettingView = new HbView();
- QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical);
- HbDataForm *dataForm = new HbDataForm();
- HbInputSettingWidget *settingWidget = new HbInputSettingWidget(dataForm, d->mSettingView);
- settingWidget->initializeWidget();
+ d->mSettingPopup = new HbInputSettingPopup();
- layout->addItem(button);
- layout->setAlignment(button, Qt::AlignRight);
- layout->addItem(dataForm);
- d->mSettingView->setLayout(layout);
- HbInputRegionCollector::instance()->attach(d->mSettingView);
-
- d->mSettingPopup->setContentWidget(d->mSettingView);
- d->mSettingPopup->setModal(true);
- d->mSettingPopup->setPreferredPos(QPoint(0,HbTitlePaneHeight));
- d->mSettingPopup->setPreferredSize(QSize(mainWindow()->width(), mainWindow()->height()-HbTitlePaneHeight));
- QSizeF popupSize = static_cast<QSizeF>(HbDeviceProfile::profile(mainWindow()).logicalSize());
-
- d->mSettingPopup->setPreferredSize(popupSize);
- d->mSettingPopup->setDismissPolicy(HbPopup::NoDismiss);
- d->mSettingPopup->setTimeout(HbPopup::NoTimeout);
+ connect(d->mSettingPopup, SIGNAL(dialogClosed()), this, SLOT(closeSettingsView()));
d->mSettingPopup->show();
}
@@ -892,8 +871,6 @@
void HbInputVkbWidget::closeSettingsView()
{
Q_D(HbInputVkbWidget);
- HbInputRegionCollector::instance()->detach(d->mSettingView);
- d->mSettingPopup->close();
d->mSettingPopup->deleteLater();
d->mSettingPopup = 0;
d->mSettingsDialogsOpen--;
@@ -1043,6 +1020,10 @@
if (!smileys.isEmpty()) {
d->mSmileyPicker = new HbInputSmileyPicker(rows, columns, 0, smileys);
+ // workaround start
+ QEvent event(QEvent::Polish);
+ QApplication::sendEvent(d->mSmileyPicker, &event);
+ // workaround end
d->mSmileyPicker->setObjectName("vkbwidget_smiley_picker");
connect(d->mSmileyPicker, SIGNAL(selected(QString)), this, SIGNAL(smileySelected(QString)));
}
@@ -1243,10 +1224,10 @@
if (HbSwipeGesture *gesture = qobject_cast<HbSwipeGesture *>(event->gesture(Qt::SwipeGesture))) {
if (gesture->state() == Qt::GestureFinished) {
- HbWidgetFeedback::triggered(this, Hb::InstantFlicked);
// vertical swipes
if (gesture->sceneVerticalDirection() == QSwipeGesture::Down) {
d->mFlickDirection = HbFlickDirectionDown;
+ HbWidgetFeedback::triggered(this, Hb::InstantFlicked);
emit flickEvent(d->mFlickDirection);
emit keypadCloseEventDetected(HbVkbCloseMethodCloseGesture);
} else if (gesture->sceneVerticalDirection() != QSwipeGesture::Up) {