summaryrefslogtreecommitdiffstats
path: root/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Prevent crash when connecting signal in splitviewSami Merila2011-03-231-9/+12
| | | | | | | | | If there is no focusitem when connecting a signal, splitview crashes. This is caused by null pointer use. Prevent the crash by checking the pointer. Task-number: QTBUG-16572 Reviewed-by: Guoqing Zhang
* GraphicsViews: Focused widget is not visible after orientation changeSami Merila2011-03-231-12/+14
| | | | | | | Clean up previous fix a little bit, by merging if-statements. Task-number: QTBUG-17576 Reviewed-by: Guoqing Zhang
* GraphicsViews: Focused widget is not visible after orientation changeSami Merila2011-03-231-0/+15
| | | | | | | | | | | | | | | | If there is a graphicsview with input widget focused and splitview is open, and we rotate the device from Portrait to Landscape (or vice versa), the input widget is no longer visible in the splitview rect. This only happens if there are scrollbars visible in the view. Reason is that the input widget is tried to ensure visibility for before window surface is valid. In these cases, make the input widget visibility re-location happen after window server indicates that the view is now visible. Task-number: QTBUG-17576 Reviewed-by: Guoqing Zhang
* Prevent null pointer crash when closing splitviewSami Merila2011-03-151-1/+2
| | | | | | | | Prevents crash when focus item is not set and splitview is closed. This is partial fix to QTBUG-17045. Task-number: QTBUG-17045 Reviewed-by: Guoqing Zhang
* Background app visible after split view closedSami Merila2011-03-101-3/+3
| | | | | | | | | | | | | When using an app with graphicsview + vertical scrollbar that has previously opened the splitview, when closing the keyboard, the application is not reset to the original geometry correctly. This is caused by invalid operation in the resetSplitView() method that does not resize the graphics view back to original size AND might even leave it with incorrect window state. Task-number: QTBUG-17937 Reviewed-by: Guoqing Zhang
* Polish splitview implementationSami Merila2011-03-101-50/+40
| | | | | | | | Remove calls to unnecessary methods. Remove unnecessary checks. Fix whitespace. Reviewed-by: Laszlo Agocs
* QML app: text input field is not visible when split view is openedSami Merila2011-03-101-1/+1
| | | | | | | | | | | | | When using a maximized QML application and user taps to a input widget, opened splitview does not show the focused input widget. The root cause of the problem is that when we move to splitview, we set the window state to fullscreen. Unfortunately, there we were trying to fullscreen the input widget and not the window that where the input widget is. Task-number: QTBUG-17984 Reviewed-by: Guoqing Zhang
* Visible flashing on QML app when split view is opened and closedSami Merila2011-03-101-20/+0
| | | | | | | | | The root cause is that input widget is re-positioned twice; once when keyboard opens and second time when window becomes visible. This causes flicker. Task-number: QTBUG-17979 Reviewed-by: Laszlo Agocs
* Support partial input modeSami Merila2011-03-081-9/+271
| | | | | | | | | | | | | | | | | | | | | | | | By default Symbian devices use fullscreen editing mode. However, in the latest AVKON releases a partial virtual keyboard is supported. Support the non-fullscreen editing mode from QCoeFepInputContext. The non-fullscreen editing mode is only supported for Symbian^3 and only for graphicsview-based solutions (QGraphicsView, QGraphicsWebView, QDeclarativeView, ...). When native side indicates that the keyboard opens, the graphicsview is possibly translated so that the text cursor position is ensured to be visible. When keyboard closes, the translation is removed. If the graphicsview contains vertical scrollbar, the whole view is resized to the area above the keyboard, since translating it, would move the upper part of the scrollbar out of screen area. There is a new exported private API to control when partial vkb is used. Task-number: QTBUG-16572 Reviewed-by: axis Reviewed-by: Mrudul Pendharkar Reviewed-by: Laszlo Agocs
* Fix one character displacement for cursor in line editsMiikka Heikkinen2011-01-171-0/+2
| | | | | | | | | | The variable m_inlinePosition was not updated when m_preeditString was cleared in QCoeFepInputContext. This resulted in cursor displaying up one character beyond where it logically should have been when using HW Qwerty keyboard on E7 and similar devices. Task-number: QTBUG-16238 Reviewed-by: axis
* Update copyright year to 2011.Jason McDonald2011-01-101-1/+1
| | | | Reviewed-by: Trust Me
* Merge branch '4.7-upstream' into 4.7-waterThierry Bastian2010-12-141-0/+8
|\
| * Fixed a bug in the input methods on S60 with QGraphicsWebView.axis2010-12-141-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The bug happened because we did not expect to receive a call to CancelFepInlineEdit() when the widget had not previously been given any preedit text by S60. However, this can happen, and if it happens at the same time that there is a temporarily visible character in the widget (because it will be obscured as a password a second later), then the temporary character would be discarded. Fixed by checking in the beginning of CancelFepInlineEdit() whether we currently have any temporary preedit text or not, and if we do, we don't clear the contents, since it is the input context itself that generated the preedit text, not S60. Also made sure that the temporary preedit text is committed if we receive a call to UpdateFepInlineTextL(), which may sometimes happen without a call to StartFepInlineEditL(). Task: QT-4314 AutoTest: Included RevBy: Shane Kearns
* | Symbian specific input methods should use 'Text' mode as default caseSami Merila2010-12-131-1/+1
|/ | | | | | | | Currently default case is 'lower'. It makes more sense to set the default as 'Text', as it is natural default case for most text entries. Task-number: QTBUG-10311 Reviewed-by: Miikka Heikkinen
* Fixed regression when typing in QTextControl based widgets on Symbianaxis2010-09-271-2/+4
| | | | | | | | | The bug was that when querying for the maximum text length, the case where an invalid QVariant was returned (which is allowed) was not handled properly. This would lead to input being blocked by the input context when it shouldn't. RevBy: Sami Merila
* Fixed crash in input methods when using symbols menu and numbers onlyaxis2010-09-101-4/+7
| | | | | | | | | | | | | When inputting only numbers, the symbol menu should not do anything. However in the old code the resource id of the symbol table was still being set, so the symbol key on N97 would look up a table that was not valid for the current input mode and crash. Fixed by setting the symbol table id to zero under those conditions. RevBy: Sami Merila Task: QTBUG-13472 AutoTest: Included
* Fixed a few warnings.axis2010-09-021-3/+1
|
* Fixed a bug where passwords would not be committed when confirming.axis2010-09-021-0/+13
| | | | | | | | | | | | | | | The bug happened when you were typing a password and pressing "Done" softkey very quickly. Because of the temporarily visible character, the widget would not contain the full string at the time of softkey triggering, only the *** part. Fixed by having the input context listen for softkey (command) events and commit the temporary character before the softkey action is triggered. AutoTest: Included Task: QTBUG-12949 RevBy: Miikka Heikkinen
* Fixed input context trying to squeeze content into a full widget.axis2010-09-011-0/+7
| | | | | | | | | | | Problem was reproduced on N97. If the FEP detects that the widget is full while still editing text, it will try to send those events as key events instead. Since this screws up the content in the widget, we stop those events from reaching the widget in the input context. AutoTest: Passed Task: QTBUG-12949 RevBy: Miikka Heikkinen
* Cleaned up position tracking in the Symbian input methods.axis2010-09-011-9/+10
| | | | | | | | | | | | | | | | | | | | | This fixed a case where using password mode would lead to Qt believing that the cursor was one step to the left of where it really was. This would have the effect of replacing the last character instead of appending to it, and even crashing if the cursor was all the way to the left. The code is also much cleaner this way, but it meant that QTBUG-9867 had to be solved differently this time. We do this by assuming that and empty FEP update means "erase last character", which seems to work well in practice. Also added a long overdue autotest for the FEP input methods. Most tests pass, but some don't, which I will try to fix later. Task: QTBUG-9867 Task: QTBUG-12949 RevBy: Miikka Heikkinen AutoTest: Included
* Revert "Long-press shortcuts for symbols on QWERTY keyboard don't work"axis2010-09-011-14/+1
| | | | | | | | | This reverts commit 05eacd9ad40f8adb5aaa12a8b90113a73b43f642. Conflicts: src/gui/inputmethod/qcoefepinputcontext_p.h src/gui/inputmethod/qcoefepinputcontext_s60.cpp
* Merge remote branch 'origin/4.6' into qt-4.7-from-4.6Thiago Macieira2010-08-111-17/+32
|\ | | | | | | | | | | | | | | Conflicts: src/gui/kernel/qt_s60_p.h src/opengl/qglextensions.cpp src/opengl/qglshaderprogram.cpp tests/auto/mediaobject/tst_mediaobject.cpp
| * Fixes for combining multiple Qt::ImhXXXOnly with S60 FEPShane Kearns2010-08-061-22/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When one restriction is a superset of another (e.g. ImhDigitsOnly | ImhDialableCharactersOnly), the less restrictive one is used When two restrictions are incompatible (e.g. ImhDialableCharactersOnly | ImhFormattedNumbersOnly), fall back to allowing all symbols Note for some combinations additional characters not in the union can be entered, this is a limitation of the API to AVKON FEP. Before this change, some characters in the union could not be entered at all, which is worse. Tested on I8510 (3.2), 5800XM (5.0), N8(symbian^3) Task Number: QTBUG-12726 Reviewed-by: Alessandro Portale
| * fix compile errorShane Kearns2010-08-061-1/+1
| | | | | | | | | | Task-number: QT-3681 Reviewed-by: Trust Me
| * Make input methods work correctly with Symbian^3 FEP in numeric modeShane Kearns2010-08-061-6/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | Enable alphanumeric modes to use EAknEditorFlagUseSCTNumericCharmap flag so that all symbols are shown when you press the * key when the FEP is in portrait mode (traditional 4x3 mobile phone keypad emulation) Enable text input mode as well as numeric input mode for ImhFormattedNumbersOnly or ImhDialableCharactersOnly, as the '*' key on the virtual keypad does not work to launch the symbols menu otherwise. Task-number: QT-3681 Reviewed-by: Jason Barron
* | Merge remote branch 'origin/4.6' into qt-4.7-from-4.6Thiago Macieira2010-07-151-0/+4
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: bin/syncqt src/3rdparty/webkit/VERSION src/3rdparty/webkit/WebCore/ChangeLog src/3rdparty/webkit/WebCore/bridge/qt/qt_instance.cpp src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.h src/3rdparty/webkit/WebCore/page/FrameView.cpp src/3rdparty/webkit/WebCore/page/FrameView.h src/3rdparty/webkit/WebCore/platform/ScrollView.cpp src/3rdparty/webkit/WebCore/platform/ScrollView.h src/corelib/plugin/quuid.cpp src/gui/dialogs/qfontdialog.cpp src/multimedia/audio/qaudiodevicefactory.cpp src/opengl/qgl.cpp src/openvg/qpaintengine_vg.cpp tests/auto/qxmlquery/tst_qxmlquery.cpp
| * Fix last character being overwritten in password fieldShane Kearns2010-07-131-0/+4
| | | | | | | | | | | | | | | | | | | | The temporary cursor position was not being updated after committing the input (changing the cleartext into a *), as a result of which, the next keypress was mistaken for a multitap input which should replace the last character. Task-number: QTBUG-11673 Reviewed-by: axis
* | Ensure text color set by S60 input method works for QML ItemsMartin Jones2010-06-011-8/+33
|/ | | | | | | | | | and QGraphicsWidgets. For QGraphicsWidgets use palette as per QWidget. For QML items leave the color unset so that the default pen is used. Task-number: QTBUG-10997 Reviewed-by: Sami Merila
* QLineEdit / QDateEdit - white font on white backgroundSami Merila2010-05-061-3/+4
| | | | | | | | | | | | | | | | | | Currently QCoeFepInputContext uses default QLineEdit palette when setting up text format before passing the formatted text to native side (which uses it, for example, to show T9 suggested words). The above way is incorrect due to two reasons: - custom widget might not be anything like QLineEdit and might have really different palette from it - it ignores stylesheets (or modifications to the QLineEdit's palette) Therefore, the color for text format is picked up from focusWidget, if it is available (in most cases it should be). If the focusWidget is not available, then QLineEdit default palette is used. Task-number: QTBUG-9480 Reviewed-by: Janne Koskinen
* Support 'Text' mode in Symbian specific input methodsSami Merila2010-04-291-1/+1
| | | | | | | | | | | | The default values for QCoeFepInputContext are set so that lower ('ab') and upper cases ('AB') are supported. Without any input method hints, input mode widgets cannot get into text mode ('Ab') at all. Changed the implementation so that default value is 'Text' like in native S60 devices. Task-number: QTBUG-10006 Reviewed-by: Janne Koskinen
* '#' gets inserted to editor when changing FEP modesSami Merila2010-04-151-1/+0
| | | | | | | | | This is regression in QCoeFepInputContext::commitCurrentString. Recent member variable removal broke the existing functionality. Fixed by removing the orphaned return-statement. Task-number: QTBUG-9867 Reviewed-by: Alessandro Portale
* Not possible to show selected text in virtual keyboardSami Merila2010-04-131-2/+13
| | | | | | | | | | In Sym^3 when virtual keyboard is opened, text selection is not carried over from editor-like widget to the VKB. This is due that new implementation of AVKON FEP manager requires that clients indicate with editor flags that they can handle text selection. Task-number: QT-3277 Reviewed-by: Janne Anttila
* Fixed FEP crash when selected text was replaced with a a new T9 text.Janne Anttila2010-03-021-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | In T9 input mode StartFepInlineEditL gets called with empty initial text. In case there was text selected in editor when editing started, the selected text did not get removed since the logic in editors to detect input is as follows: bool isGettingInput = !event->commitString().isEmpty() || event->preeditString() != preeditAreaText() || event->replacementLength() > 0; This means that empty preeditString did not trigger selection removal, but the selected text was removed when non-empty inline text was provided by UpdateFepInlineTextL. However, the S60 FEP assumes that StartFepInlineEditL removes the selected text, i.e GetCursorSelectionForFep after StartFepInlineEditL must return empty selection. The above issue was fixed by removing the selected text explicitly in StartFepInlineEditL if aInitialInlineText is empty. Task-number: QTBUG-6363 Reviewed-by: Axis
* Virtual keyboard can't be closed anymore after tapping the text areaSami Merila2010-02-191-1/+4
| | | | | | | | | | | | | | On Symbian^3, the virtual keyboard cannot be closed anymore when the editor area where the text is displayed is tapped and autocompletion is suggesting a word currently. This is caused by the fragile native FEP manager which assumes that client must report certain event (EAknCursorPositionChanged), after user interaction with the editor area. Otherwise the native FEP manager is in dead-lock, until somebody reports this event to it. Task-number: QTBUG-7828 Reviewed-by: axis
* Fixed a bug where text would disappear in password fields.axis2010-02-051-8/+9
| | | | | | | | | | | | | | | | | | | | | | | There were two bugs: - First, we need to avoid triggering the CancelTransaction call when committing the temporary preedit text, because otherwise FEP starts sending us spurious backspace events. Since the "triggeredBySymbian" variable is no longer descriptive for that use case, I renamed it in the process and that changed the negation of the flag. Notice the absense of a change inside commitTemporaryPreeditString(). That is because we want that one to avoid the transaction cancel, and therefore wee keep the old negation. - Second, m_cursorPos needs to be kept in sync with the widget state when we send the temporary preedit string, because the input context cannot separate between types of preedit text when it hits the first block in commitCurrentString() (types being either our temporary text, or FEP's text), and we have to avoid the longPress code path. RevBy: Janne Koskinen
* Fixed sendEvent call.axis2010-02-051-1/+1
| | | | | | | The documentation states we should use the local sendEvent. Not sure if it makes a difference, but better to be consistent. RevBy: Trust me
* Removed useless member variable and replaced with var on the stack.axis2010-02-051-4/+5
| | | | RevBy: Trust me
* Avoided the loss of preedit text when losing focus on Symbian.axis2010-01-281-6/+2
| | | | | | | | | | | | It's annoying to lose preedit (e.g. underlined) text everytime a focus switch occurs, especially because it can sometimes happen while inside the FEP menus, such as "Insert symbol". Fixed by committing the text in reset() implementation, rather than discarding it. Task: QTBUG-7439 RevBy: Sami Merila
* Made characters in a password field briefly visible while typing.axis2010-01-251-2/+48
| | | | | | | | | | | This was done by intercepting key events with text in them, and temporarily submit them as preedit text instead of real input text. Currently it does not work in WebKit, but that is because WebKit hides preedit text as well, which is a bug of its own. RevBy: Simon Hausmann Autotest: Manual testing went fine
* Update copyright year to 2010Jason McDonald2010-01-061-1/+1
| | | | Reviewed-by: Trust Me
* Fixed QCoeFepInputContext::widgetDestroyedMiikka Heikkinen2009-12-171-2/+1
| | | | | | | | Calling SetFocus twice here was obsolete and caused intermittent panics. Replaced them with proper queueInputCapabilitiesChanged call. Task-number: QTBUG-6519 Reviewed-by: axis
* FEP returns the wrong foreground color in GetFormatOfFepInlineTextSami Merilä2009-12-071-0/+4
| | | | | | | | | | When using T9, FEP is always using black text color. This is due to that we use default parameters for TFontPresentation. If we change the text color according to style, before calling GetFormatOfFepInlineText, it uses color value from style. Task-number: QTBUG-4072 Reviewed-by: axis
* Merge commit upstream/4.6 into oslo-staging-2/4.6Olivier Goffart2009-11-131-1/+1
|\
| * Fix typo in license headerAlessandro Portale2009-11-121-1/+1
| | | | | | | | | | | | The word 'module' was missing. Reviewed-By: TrustMe
* | Made the select button commit the T9 word rather than exit widget.axis2009-11-121-8/+20
| | | | | | | | | | Task: QTBUG-5661 RevBy: Janne Koskinen
* | Removed unused variable.axis2009-11-121-7/+0
| | | | | | | | RevBy: Trust me
* | Add edit menu support for phones with a 'pencil' key.Jason Barron2009-11-111-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The native FEP handles the 'pencil' key on some platforms by opening an edit menu on the screen that contains things like 'Insert Symbol' and 'Writing Language' for text input widgets. This was previously not working in the Qt input method implementation because in order for the FEP system to open the menu, it must be able to access the menu bar (CBA). This is done my using the object provider mechanism (MOP) and an implementation of the MopNext() function was missing. Adding this and also setting the AppUi as the MOP parent for top level widgets allowed the FEP framework to find it's way to the menubar and thus open a menu. Task-number: QTBUG-5606 Reviewed-by: axis <qt-info@nokia.com> Reviewed-by: mread <qt-info@nokia.com>
* | Fixed indentation.axis2009-11-101-6/+6
| |
* | Long-press shortcuts for symbols on QWERTY keyboard don't workJouni Hiltunen2009-11-101-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Qt key event was not handled properly in the case of long key press. With long key press, QCoeFepInputContext::commitCurrentString gets called 3 times("q", "", "1"). (Normal key press is causing one call). This is how aknfep works, so commitCurrentString was modified to replace first character if long key press event detected. E.g. "q" is replaced with "1". qlinecontrol modified to keep cursor position correct. Signed-off-by: axis <qt-info@nokia.com>
* | Made it possible to bring up the FEP symbols menu using star key.axis2009-11-091-1/+9
|/ | | | | Task: QT-1141 RevBy: mread