2004-09-10 YamaKen <yamaken@bp.iij4u.or.jp> * changes.immodule - Describe a bugfix 2004-09-10 YamaKen <yamaken@bp.iij4u.or.jp> * src/inputmethod/qinputcontextinterface_p.h - Update UUID of QInputContextFactory in accordance with API change of QInputContext to avoid loading old invalid plugins 2004-09-10 YamaKen <yamaken@bp.iij4u.or.jp> * README.immodule - Add 'About this release' section - Update version information - Update to follow the change of configure options - Modify some English expressions * changes.immodule - Move release information to README.immodule - Add differences from previous release - Add description about incremental change indication * ChangeLog.immodule - Update 2004-09-09 YamaKen <yamaken@bp.iij4u.or.jp> * src/kernel/qapplication.cpp - (removePostedEvents): * Fix infinite loop condition * delete receiver->postedEvents if the list has been empty 2004-09-09 YamaKen <yamaken@bp.iij4u.or.jp> * This commit backports some code fragments from Qt4 branch to make input method plugins source compatible with Qt4. * src/kernel/qinputcontext.cpp - (QInputContext): Add 'parent' arg * src/kernel/qinputcontext.h - Exclude qptrlist.h when compile with Qt4 - (struct QInputContextMenu): Exclude member variables when compile with Qt4 - (QInputContext): Add 'parent' arg - (addActionsTo): New function for Qt4 2004-09-08 YamaKen <yamaken@bp.iij4u.or.jp> * This commit renames input method module from 'input' to 'inputmehod' because the name 'input' is too generic to indicate its function * configure - Replace configuration options '-im' and '-im-ext' with '-inputmethod' and '-inputmethod-ext' to be consistent with the name of input method module subdirectory 'inputmethod' - Rename the module name 'input' with 'inputmethod' * src/qt.pro - Rename the module name 'input' with 'inputmethod' - Rename some variable names inaccordance with the renaming of the module - Replace 'qt_input.pri' with 'qt_inputmethod.pri' in accordance with the renaming of the file * src/inputmethod/qt_input.pri - Rename to qt_inputmethod.pri * src/inputmethod/qt_input.pri - Renamed from qt_input.pri - Replace module names - Rename some variable names inaccordance with the renaming of the module 2004-09-08 YamaKen <yamaken@bp.iij4u.or.jp> * Rename input module subdirectory from "input" to "inputmethod" 2004-09-08 YamaKen <yamaken@bp.iij4u.or.jp> * This commit contains following issues - An API change. Return type of QInputContext::identifierName and QInputContext::language has been changed from QCString which is deprecated in Qt4 to QString to make plugins source compatible with Qt4. - Other backports from Qt4 branch - Fix event receiving order inversion between QKeyEvent and QIMEvent. The code is implemented based on Cougar's and Kazuki's. Thank you the efforts. See following discussion for further information. http://freedesktop.org/pipermail/immodule-qt/2004-September/000447.html http://freedesktop.org/pipermail/immodule-qt/2004-September/000497.html * src/kernel/qinputcontext.h - (identifierName, language): Change return type from QCString to QString - (addMenusTo): Make Qt3 specific * src/kernel/qinputcontext.cpp - (identifierName): * Change return type from QCString to QString * Modify the function description comment - (language): Change return type from QCString to QString * src/kernel/qwidget.cpp - (clearFocus): Enclose immodule specific code by #if defined(Q_WS_X11) * src/kernel/qapplication.h - Add 'class QIMEvent' declaration - (removePostedEvents): New overriding function * src/kernel/qapplication_x11.cpp - Remove redundant 'class QInputContext' declaration - (postIMEvent): Fix the event receiving order inversion problem - (x11_apply_settings): Replace QString::find() which is deprecated in Qt4 with QString::startsWith() - (postEvent): Fix invalid QIMEvent compression that ignores IMStart boundary - (removePostedEvents): Original version of the function. Replace the implementation with 2-args version. The behavior is not changed - (removePostedEvents): New overriding function. This function only removes events that has specified event type. The implementation is copied from original version of the function and modified to accept event_type. This function is required by postIMEvent() - (setActiveWindow): Enclose immodule specific code by #if defined(Q_WS_X11) * src/input/qinputcontextinterface_p.h - Modify a coding style to follow Trolltech's one for Qt3 * src/input/qinputcontextplugin.h - Fix typos in comment * src/input/qinputcontextplugin.cpp - (keys, QInputContextPlugin, ~QInputContextPlugin): Modify the function description comment * src/input/qinputcontextfactory.h - Remove #include "qinputcontext.h" to reduce compilation dependency - Add 'class QWidget' declaration - Remove inappropriate #ifndef QT_NO_STRINGLIST. QStringList is now required feature for immodule. See also changes of qfeatures.h * src/input/qinputcontextfactory.cpp - Add #include "qinputcontext.h" - Remove unnecessary #include "qpopupmenu.h" - Remove inappropriate #ifndef QT_NO_STRINGLIST. QStringList is now required feature for immodule. See also changes of qfeatures.h * src/tools/qfeatures.h - Define QT_NO_IM if QT_NO_STRINGLIST is defined - Define QT_NO_IM_EXTENSIONS if QT_NO_IM or QT_NO_STRINGLIST is defined * plugins/src/inputmethods/inputmethods.pro - Rename conditional configuration symbol from "im" to "inputmethod" inaccordance with chanege of configure script * plugins/src/inputmethods/simple/qsimpleinputcontext.h * plugins/src/inputmethods/simple/qsimpleinputcontext.cpp * plugins/src/inputmethods/imsw-multi/qmultiinputcontext.h - (identifierName, language): Change return type from QCString to QString * plugins/src/inputmethods/imsw-multi/qmultiinputcontext.cpp - (identifierName, language): Change return type from QCString to QString - (createImSelPopup): Replace QString::find() which is deprecated in Qt4 with QString::startsWith() * plugins/src/inputmethods/imsw-none/qnoneinputcontextplugin.cpp - (create): Replace QString::find() which is deprecated in Qt4 with QString::startsWith() * plugins/src/inputmethods/xim/qximinputcontext.h - (language): Change return type from QCString to QString - (identifierName): * Change return type from QCString to QString * Move inline implementation to qximinputcontext_x11.cpp * plugins/src/inputmethods/xim/qximinputcontext_x11.cpp - (language): Change return type from QCString to QString - (identifierName): * Change return type from QCString to QString * Move implementation from qximinputcontext.h - (language): Replace QString::find() which is deprecated in Qt4 with QString::startsWith() 2004-08-19 YamaKen <yamaken@bp.iij4u.or.jp> * src/input/qinputcontextfactory.cpp - (keys): Modify the function description comment 2004-08-18 YamaKen <yamaken@bp.iij4u.or.jp> * src/input/qinputcontextfactory.cpp - (create_manager): Fix plugin directory from "/input" to "/inputmethods" 2004-08-18 YamaKen <yamaken@bp.iij4u.or.jp> * src/kernel/qapplication_x11.cpp - (KeyTbl): Add translations for Japanese and Korean alias keys 2004-08-18 YamaKen <yamaken@bp.iij4u.or.jp> * This commit disables default IM configuration feature using qtrc and qtconfig in BC mode. See following discussion for further information. http://freedesktop.org/pipermail/immodule-qt/2004-August/000416.html * src/kernel/qapplication_x11.cpp - (x11_apply_settings): * Move immodule handling into #ifndef QT_NO_IM rather than QT_NO_XIM * Move qtrc handling into #ifndef QT_NO_IM_EXTENSIONS * src/inputmethods/imsw-multi/qmultiinputcontext.cpp - (QMultiInputContext): Move qtrc handling into #ifndef QT_NO_IM_EXTENSIONS * tools/qtconfig/mainwindow.cpp - (MainWindow): Move qtrc handling into #ifndef QT_NO_IM_EXTENSIONS * src/kernel/qt_x11.pri - Remove unnecessary configuration 2004-08-18 YamaKen <yamaken@bp.iij4u.or.jp> Merge differences between qt-x11-free-3.3.2 and qt-x11-free-3.3.3 2004-08-18 YamaKen <yamaken@bp.iij4u.or.jp> * plugins/src/inputmethods/imsw-multi/imsw-multi.pro * plugins/src/inputmethods/simple/simple.pro * plugins/src/inputmethods/imsw-none/imsw-none.pro * plugins/src/inputmethods/xim/xim.pro - Remove inappropriate 'thread' from CONFIG. Thanks to Takumi Asaki for reporting 2004-08-18 YamaKen <yamaken@bp.iij4u.or.jp> * tools/qtconfig/mainwindow.cpp - (MainWindow): Modify a comment - (fileSave): Fix inappropriate /qt/DefaultInputMethodSwitcher overwriting. Thanks Takumi Asaki for the reporting 2004-08-17 YamaKen <yamaken@bp.iij4u.or.jp> * plugins/src/inputmethods/imsw-multi/imsw-multi.pro * plugins/src/inputmethods/simple/simple.pro * plugins/src/inputmethods/imsw-none/imsw-none.pro * plugins/src/inputmethods/xim/xim.pro - Change plugin directory from $QTDIR/plugins/input/ to $QTDIR/plugins/inputmethods/ * changes.immodule - Add a description for the change of plugin directory 2004-08-17 YamaKen <yamaken@bp.iij4u.or.jp> * src/kernel/qnamespace.h - (Qt::Key) Add a comment about Korean-specific keyboard support based on the information from Choe Hwanjin. Thanks for the information. See following discussion for further information http://freedesktop.org/pipermail/immodule-qt/2004-August/000402.html - (Qt::Key) Comment out some Korean-specific keys that has an equivalent generic key 2004-08-14 YamaKen <yamaken@bp.iij4u.or.jp> * This is preparation for qt-x11-immodule-unified-qt3.3.2-20040814 * ChangeLog.immodule - Update 2004-08-14 YamaKen <yamaken@bp.iij4u.or.jp> * changes.immodule - Add and modify some descriptions * configure - Rewrite some codes to avoid patch rejection against Qt 3.3.3. Logically equivalent. * src/widgets/qtextedit.cpp - Rewrite some codes to avoid patch rejection against Qt 3.3.3. Logically equivalent. * src/widgets/qlineedit.cpp - Rewrite some codes to avoid patch rejection against Qt 3.3.3. Logically equivalent. 2004-08-13 LiuCougar <liucougar@gmail.com> cleanup: get rid of some warnings 2004-08-12 YamaKen <yamaken@bp.iij4u.or.jp> * changes.immodule - New file. This file has been written for both users and developers to inform important changes 2004-08-12 YamaKen <yamaken@bp.iij4u.or.jp> * This is preparation for qt-x11-immodule-unified-qt3.3.2-20040812 * ChangeLog.immodule - Update 2004-08-12 YamaKen <yamaken@bp.iij4u.or.jp> * src/kernel/qwidget_x11.cpp - (changeInputContext, createInputContext): Fix qic location - (destroyInputContext): Add safety check 2004-08-12 YamaKen <yamaken@bp.iij4u.or.jp> * configure - Fix incomplete qconfig configuratoin about QT_NO_IM and QT_NO_IM_EXTENSIONS * src/kernel/qwidget_x11.cpp - (changeInputContext, createInputContext, destroyInputContext): Fix invalid pointer reference 2004-08-12 LiuCougar <liucougar@gmail.com> fixed a compile issue in my gentoo box (gcc 3.3.3, glibc 2.3.3 2004-08-12 YamaKen <yamaken@bp.iij4u.or.jp> * configure - Fix option consistency handling between '-im' and '-im-ext' * README.immodule - Fix a typo 2004-08-11 YamaKen <yamaken@bp.iij4u.or.jp> * README.immodule - Modify a little 2004-08-11 YamaKen <yamaken@bp.iij4u.or.jp> * README.immodule - New file. Some explanation has been described * ChangeLog.immodule - New file 2004-08-11 YamaKen <yamaken@bp.iij4u.or.jp> * plugins/src/inputmethods/xim/qximinputcontext_x11.cpp - (language): Remove QLocale dependency to be compiled on Qt 3.2.x or earlier 2004-08-11 YamaKen <yamaken@bp.iij4u.or.jp> * This commit merges 'Binary Compatible branch' into the trunk to reduce maintenance cost. Now binary compatibility is configurable. Binary incompatible features are surrounded by #ifndef QT_NO_IM_EXTENSIONS * configure - Add '-im' option to enable immodule feature (default yes). - Add '-im-ext' option to enable more immodule extensions (default no). Specify this option 'no' to keep binary compatibility with standard Qt3 * src/kernel/qt_x11.pri - Add conditional QT_NO_IM and QT_NO_IM_EXTENSIONS definition in accordance with '-im' and '-im-ext' options * src/kernel/qwidget.h - (icHolderWidget): New function for QT_NO_IM_EXTENSIONS - (ic): Add #ifndef QT_NO_IM_EXTENSIONS for binary incompatible variable - (xic): Add #ifdef QT_NO_IM_EXTENSIONS for binary compatible variable * src/kernel/qwidget_x11.cpp - (create): Add #ifndef QT_NO_IM_EXTENSIONS - (destroy): Make some codes QT_NO_IM_EXTENSIONS independent - (createTLSysExtra): Add a code fragment for QT_NO_IM_EXTENSIONS - (deleteTLSysExtra): Modify a comment - (getInputContext, changeInputContext, createInputContext, destroyInputContext): Merge code fragments for QT_NO_IM_EXTENSIONS - (deleteExtra): Merge a comment for QT_NO_IM_EXTENSIONS * src/kernel/qapplication.h - (locateICHolderWidget, icHolderWidgets, create_xim, close_xim): New functions for QT_NO_IM_EXTENSIONS * src/kernel/qapplication_x11.cpp - (create_im, close_im): Add #ifndef QT_NO_IM_EXTENSIONS - (create_xim, close_xim): Merge functions for QT_NO_IM_EXTENSIONS - (qt_init_internal, qt_cleanup): Merge code fragments for QT_NO_IM_EXTENSIONS * plugins/src/inputmethods/inputmethods.pro - Make plugin compilations configurable with '-im' option 2004-08-11 YamaKen <yamaken@bp.iij4u.or.jp> * plugins/src/inputmethods/xim/qximinputcontext.h - Replace QXIMINPUTCONTEXT_P_H with QXIMINPUTCONTEXT_H * src/widgets/qlineedit.cpp - (QLineEditPrivate::updateMicroFocusHint): Modify the comment a little 2004-08-11 YamaKen <yamaken@bp.iij4u.or.jp> * This commit is participating with recent 'keyword static of C++' discussion. See http://freedesktop.org/pipermail/immodule-qt/2004-August/000344.html for further information * src/kernel/qapplication_x11.cpp - (QETWidget::translateKeyEventInternal): Prevent interwidget key state transition about RTL extensions. This code had been written by Daisuke Kameda in qt-x11-immodule-all-qt3.3.1-20040316.diff * src/widgets/qlineedit.cpp - (QLineEditPrivate::updateMicroFocusHint): Add a comment that explains that old rect variable is intentionally static 2004-08-11 YamaKen <yamaken@bp.iij4u.or.jp> * This commit turns the argument of QInputContext::filterEvent() into const. See http://freedesktop.org/pipermail/immodule-qt/2004-August/000335.html for further information * src/kernel/qinputcontext.h - (filterEvent): Follow the API change * src/kernel/qinputcontext.cpp - (filterEvent): Follow the API change * plugins/src/inputmethods/simple/qsimpleinputcontext.h - (filterEvent): Follow the API change * plugins/src/inputmethods/simple/qsimpleinputcontext.cpp - (filterEvent): Follow the API change * plugins/src/inputmethods/imsw-multi/qmultiinputcontext.h - (filterEvent): Follow the API change * plugins/src/inputmethods/imsw-multi/qmultiinputcontext.cpp - (filterEvent): Follow the API change 2004-08-10 YamaKen <yamaken@bp.iij4u.or.jp> * plugins/src/inputmethods/simple/xcompose2q.rb - Update to accept Compose flie of X.org's X11R6.7.0 - Accept 'XCOMM' as comment sign to accept raw source file - Accept both " " and "\"" as valid RHS * plugins/src/inputmethods/simple/composetable.cpp - Update Compose table from XFree86 4.3.0 to X.org's X11R6.7.0 2004-08-10 YamaKen <yamaken@bp.iij4u.or.jp> * This commit replaces the invalid header words 'This file is part of the kernel module' of following files with 'This file is part of the input method module' * plugins/src/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp * plugins/src/inputmethods/imsw-multi/qmultiinputcontext.cpp * plugins/src/inputmethods/imsw-multi/qmultiinputcontextplugin.h * plugins/src/inputmethods/imsw-multi/qmultiinputcontext.h * plugins/src/inputmethods/simple/qsimpleinputcontextplugin.cpp * plugins/src/inputmethods/simple/qsimpleinputcontext.cpp * plugins/src/inputmethods/simple/qsimpleinputcontextplugin.h * plugins/src/inputmethods/simple/qsimpleinputcontext.h * plugins/src/inputmethods/simple/composetable.cpp * plugins/src/inputmethods/imsw-none/qnoneinputcontextplugin.cpp * plugins/src/inputmethods/imsw-none/qnoneinputcontextplugin.h * plugins/src/inputmethods/xim/qximinputcontextplugin.cpp * plugins/src/inputmethods/xim/qximinputcontextplugin.h * plugins/src/inputmethods/xim/qximinputcontext.h * plugins/src/inputmethods/xim/qximinputcontext_x11.cpp 2004-08-10 YamaKen <yamaken@bp.iij4u.or.jp> * plugins/src/inputmethods/simple/xcompose2q.rb - Fix broken translation entries for most ASCII characters * plugins/src/inputmethods/simple/composetable.cpp - Translate again with fixed xcompose2q.rb. This fixes many translation entries involving ascii character such as "<Multi_key> <space> <minus>" 2004-08-10 YamaKen <yamaken@bp.iij4u.or.jp> * plugins/src/inputmethods/simple/xcompose2q.rb - New file. This script is used for translating X's Compose table into QSimpleInputContext's table - Some bugs included - Although I had released previous versions of this script under GPL, I have released this version under another license. See header 2004-08-10 YamaKen <yamaken@bp.iij4u.or.jp> * plugins/src/inputmethods/simple/qsimpleinputcontext.h - Follow Trolltech's coding style for Qt3 - Remove unnecessary headers - (UNITIZE): Moved from qsimpleinputcontext.cpp. QT_ prefix is not required since a macro does not pollute symbol space - (struct _ComposeTableElement): Rename to QComposeTableElement - (struct QComposeTableElement): Renamed from _ComposeTableElement - (struct _ComposeTable): Rename to QComposeTable - (struct QComposeTable): Renamed from _ComposeTable - (isPreeditRelocationEnabled): Remove unnecessary overloading function - (isPreeditPreservationEnabled): Remove unnecessary function - (checkComposeTable): Follow the renaming of the types of args - (defaultComposeTable): New static member variable * plugins/src/inputmethods/simple/qsimpleinputcontext.cpp - Separate composing table definition to composetable.cpp - Remove unnecessary headers - Replace 'true' and 'false' with 'TRUE' and 'FALSE' to follow Trolltech's coding style for Qt3 - Replace _ComposeTableElement with QComposeTableElement to follow the renaming - Replace ComposeTable with QComposeTable to follow the renaming - (UNITIZE): Move to qsimpleinputcontext.h - (defaultTable): Move to composetable.cpp - (qtComposeTable): Move to composetable.cpp as defaultComposeTable - (filterEvent): * Clean up * Add a comment about key compression * replace qtComposeTable with defaultComposeTable to follow the renaming - (unsetFocus): Remove unnecessary isPreeditPreservationEnabled() check - (identifierName): Remove 'FIXME' comment - (isPreeditRelocationEnabled): Remove unnecessary overloading function - (isPreeditPreservationEnabled): Remove unnecessary function * plugins/src/inputmethods/simple/composetable.cpp - New file. This file has been separated from qsimpleinputcontext.cpp to achieve following issues * increase table maintenance ability * ease editing code part of QSimpleInputContext * ease development log tracking * ease copyright tracking * enclose UTF-8 comments into this file only - Add original header from Compose file of XFree86 4.3.0 - (defaultTable) Moved from qsimpleinputcontext.cpp - (defaultComposeTable): New variable definition * plugins/src/inputmethods/simple/simple.pro - Add composetable.cpp to SOURCES * plugins/src/inputmethods/simple/qsimpleinputcontextplugin.cpp - (displayName, description): Modify the descriptions appropriately 2004-08-10 YamaKen <yamaken@bp.iij4u.or.jp> * plugins/src/inputmethods/xim/qximinputcontext_x11.cpp - Replace #include "qximinputcontext_p.h" with "qximinputcontext.h". XIM plugin is now working properly 2004-08-10 YamaKen <yamaken@bp.iij4u.or.jp> * This commit changes the XIM input method into plugin. A little modification is still required to work. See next commit information * src/input/qinputcontextfactory.cpp - Remove XIM dependency - (create, keys): Remove XIM dependent codes * src/input/qt_input.pri - Remove QXIMInputContext entries * src/input/qximinputcontext_p.h - Moved to plugins/src/inputmethods/xim/qximinputcontext.h * src/input/qximinputcontext_x11.cpp - Moved to plugins/src/inputmethods/xim/qximinputcontext_x11.cpp * plugins/src/inputmethods/inputmethods.pro - Add xim to SUBDIRS * plugins/src/inputmethods/xim - New directory * plugins/src/inputmethods/xim/xim.pro - New file * plugins/src/inputmethods/xim/qximinputcontextplugin.h - New file - (class QXIMInputContextPlugin): New class - (QXIMInputContextPlugin, ~QXIMInputContextPlugin, keys, create, languages, displayName, description): New function * plugins/src/inputmethods/xim/qximinputcontextplugin.cpp - New file * plugins/src/inputmethods/xim/qximinputcontext.h - Moved from src/input/qximinputcontext_p.h. No code changes have been applied. A little modification is required to work. See next commit information * plugins/src/inputmethods/xim/qximinputcontext_x11.cpp - Moved from src/input/qximinputcontext_x11.cpp. No code changes have been applied 2004-08-10 YamaKen <yamaken@bp.iij4u.or.jp> * src/input/qximinputcontext_p.h - (QXIMInputContext): Remove the arg 'widget' to conform to standard QInputContext API * src/input/qximinputcontext_x11.cpp - (QXIMInputContext): Remove the arg 'widget' to conform to standard QInputContext API - (setHolderWidget): Add QInputContext::setHolderWidget() to fix inproper overriding * src/input/qinputcontextfactory.cpp - (create): Remove the arg from QXIMInputContext() 2004-08-10 YamaKen <yamaken@bp.iij4u.or.jp> * src/input/qximinputcontext_p.h - (setHolderWidget): New override function * src/input/qximinputcontext_x11.cpp - (QXIMInputContext): Split most part of the initialization code into setHolderWidget() to allow null widget. This is required to make imsw-none working properly - (setHolderWidget): New function 2004-08-10 YamaKen <yamaken@bp.iij4u.or.jp> * src/kernel/qapplication_x11.cpp - (x11_apply_settings): Restrict defaultIM to be an IM-switcher. An IM-switcher has a 'imsw-' prefix 2004-08-10 YamaKen <yamaken@bp.iij4u.or.jp> * This commit adds imsw-none IM-switcher plugin according to following discussion with Takumi Asaki. Thanks for the opinion. http://freedesktop.org/pipermail/immodule-qt/2004-August/000320.html * plugins/src/inputmethods/inputmethods.pro - Add imsw-none to SUBDIRS * plugins/src/inputmethods/imsw-none/imsw-none.pro - New file * plugins/src/inputmethods/imsw-none/qnoneinputcontextplugin.h - New file - (class QNoneInputContextPlugin): New class * plugins/src/inputmethods/imsw-none/qnoneinputcontextplugin.cpp - New file - (QNoneInputContextPlugin, ~QNoneInputContextPlugin, keys, languages, displayName, description): New function - (create): New function. Read key from QT_IM_MODULE or /qt/DefaultInputMethod of qtrc and creates input context with the key 2004-08-10 YamaKen <yamaken@bp.iij4u.or.jp> * Rename input method plugin names to accord with other plugin names * plugins/src/inputmethods/imsw-multi/imsw-multi.pro - Rename plugin name to qimsw-multi from qmultiinputcontextplugin * plugins/src/inputmethods/simple/simple.pro - Rename plugin name to qsimple from qsimpleinputcontextplugin 2004-08-10 YamaKen <yamaken@bp.iij4u.or.jp> * plugins/src/inputmethods/imsw-multi/multi.pro - Move to imsw-multi.pro * plugins/src/inputmethods/imsw-multi/imsw-multi.pro - Move from multi.pro 2004-08-10 YamaKen <yamaken@bp.iij4u.or.jp> * plugins/src/inputmethods/multi - Move to imsw-multi * plugins/src/inputmethods/imsw-multi - Move from multi * plugins/src/inputmethods/inputmethods.pro - Replace 'multi' with 'imsw-multi' in SUBDIRS 2004-08-10 Kazuki Ohta <mover@hct.zaq.ne.jp> * plugins/src/inputmethods/simple/qsimpleinputcontext.cpp - add full dead/multi key entries - fix some bugs 2004-08-10 YamaKen <yamaken@bp.iij4u.or.jp> * This commit changes pluggable popup menu API in accordance with following discussion with Lars Knoll. Thanks for the advice. http://freedesktop.org/pipermail/immodule-qt/2004-August/000300.html * src/kernel/qinputcontext.cpp - (actions): New function - (exportMenusInto): Remove to rename to addMenusTo() - (addMenusTo): * New function. Renamed from exportMenusInto() * Follow introduction of enum QInputContextMenu::Action * Add an explanation for this utility function to the function description * src/kernel/qinputcontext.h - (QInputContextMenu::Action): New enum - (menus): Restrict to use with Qt3 only - (qt4menus): Remove to replace with actions() - (actions): New function for Qt4 * src/widgets/qtextedit.cpp - (createPopupMenu): Replace exportMenusInto() with addMenusTo() * src/widgets/qlineedit.cpp - (createPopupMenu): Replace exportMenusInto() with addMenusTo() 2004-08-10 YamaKen <yamaken@bp.iij4u.or.jp> * This commit changes the two input methods into plugin * src/input/qt_input.pri - Remove QSimpleInputContext and QMultiInputContext entries * src/input/qmultiinputcontext.h - Moved to plugins/src/inputmethods/multi/qmultiinputcontext.h * src/input/qmultiinputcontext.cpp - Moved to plugins/src/inputmethods/multi/qmultiinputcontext.cpp * src/input/qsimpleinputcontext.h - Moved to plugins/src/inputmethods/simple/qsimpleinputcontext.h * src/input/qsimpleinputcontext.cpp - Moved to plugins/src/inputmethods/simple/qsimpleinputcontext.cpp * plugins/src/src.pro - Add 'inputmethods' to SUBDIRS. The directory name 'inputmethods' is intended to be compatible with Qt/Embedded. Install directory name is still kept as 'input' for backward compatibility * plugins/src/inputmethods/inputmethods.pro - New file * plugins/src/inputmethods/multi/multi.pro - New file * plugins/src/inputmethods/multi/qmultiinputcontextplugin.h - New file * plugins/src/inputmethods/multi/qmultiinputcontextplugin.cpp - New file * plugins/src/inputmethods/multi/qmultiinputcontext.h - Moved from src/input/qmultiinputcontext.h. No code changes have been applied * plugins/src/inputmethods/multi/qmultiinputcontext.cpp - Moved from src/input/qmultiinputcontext.cpp. No code changes have been applied * plugins/src/inputmethods/simple/simple.pro - New file * plugins/src/inputmethods/simple/qsimpleinputcontextplugin.h - New file * plugins/src/inputmethods/simple/qsimpleinputcontextplugin.cpp - New file * plugins/src/inputmethods/simple/qsimpleinputcontext.h - Moved from src/input/qsimpleinputcontext.h. No code changes have been applied * plugins/src/inputmethods/simple/qsimpleinputcontext.cpp - Moved from src/input/qsimpleinputcontext.cpp. No code changes have been applied * src/input/qinputcontextfactory.cpp - (create): Remove dedicated instantiation handling for QSimpleInputContext and QMultiInputContext * tools/qtconfig/mainwindow.h - (inputMethodIdentifiers): New member variable * tools/qtconfig/mainwindow.cpp - (MainWindow): * Replace identifier name of input methods with displaynames * Add filtering out process for IM-switchers that has "imsw-" prefix * Disable sorting for input method names * Modify some comments * Simplify setCurrentItem() handling for inputMethodCombo widget * Add recorded input method name to the display name of unknown input method * Save recorded input method name even if unknown input method - (fileSave): * Save /qt/DefaultInputMethodSwitcher with default value "imsw-multi" * Save identifier name of the input method rather than display name * src/kernel/qinputcontext.cpp - (class QInputContext): Update the class description comment * src/input/qinputcontextplugin.cpp - (class QInputContextPlugin): Update the class description comment - (keys): Update the function description comment - (languages, displayName, description): Add the function description comment 2004-08-05 YamaKen <yamaken@bp.iij4u.or.jp> * This commit adds generic pluggable popup menu feature. See http://freedesktop.org/pipermail/immodule-qt/2004-August/000266.html for further information. The implementation may be altered in accordance with discussion in the list. * src/kernel/qinputcontext.h - (struct QInputContextMenu): New struct - (qt4menus): New function. Just a placeholder for now - (menus): New function - (exportMenusInto): New function * src/kernel/qinputcontext.cpp - (class QInputContext): Add 'Text widget implementor's guide' section to the class description comment - (menus): New function - (exportMenusInto): New function * src/input/qmultiinputcontext.h - (qt4menus): New function. Just a placeholder for now - (menus): New function * src/input/qmultiinputcontext.cpp - (menus): * New function to follow new API. The function merges slave menus and QMultiInputContext's own 'Select Input Method' menu * The functionality is ported from QLineEdit::createPopupMenu() * An accelerator has been added as 'Select Input &Method' * src/widgets/qtextedit.cpp - Remove QMultiInputContext dependency - (createPopupMenu): Replace QMultiInputContext dependent submenu handling with the pluggable popup menu * src/widgets/qlineedit.cpp - Remove QMultiInputContext dependency - (createPopupMenu): Replace QMultiInputContext dependent submenu handling with the pluggable popup menu * src/kernel/qwidget.h - Remove #include "qinputcontext.h" to reduce compile time when we hacked qinputcontext.h 2004-08-04 Kazuki Ohta <mover@hct.zaq.ne.jp> * src/input/qmultiinputcontext.cpp - use QInputContextFactory::description and set whatsthis help 2004-08-03 YamaKen <yamaken@bp.iij4u.or.jp> * This commit adds QInputContextFactory::description() feature * src/input/qinputcontextinterface_p.h - Update the UUID because the interface has been changed - (description): New function * src/input/qinputcontextplugin.h - (description): New function * src/input/qinputcontextfactory.h - (description): New function - (QInputContextPluginPrivate::description): New function * src/input/qinputcontextfactory.cpp - (description): New function - (displayName): Replace fallback value with empty string instead of null 2004-08-03 YamaKen <yamaken@bp.iij4u.or.jp> * This commit alters the configuration convention about IM-switcher. See http://freedesktop.org/pipermail/immodule-qt/2004-August/000232.html for further information. The implementation may be altered in accordance with discussion in the list. * src/kernel/qapplication_x11.cpp - (defaultIM): Replace "xim" with "imsw-multi" - (x11_apply_settings): * Replace the environment variable name QT_IM_MODULE with QT_IM_SWITCHER * Replace the qtrc variable name /qt/DefaultInputMethod with /qt/DefaultInputMethodSwitcher * Replace "xim" with "imsw-multi" for default plugin * src/input/qmultiinputcontext.h - (lastCreatedIMKey): Remove to rename to currentIMKey - (currentIMKey): New member variable. Renamed from lastCreatedIMKey because the semantics of the variable has been changed by introduction of QT_IM_SWITCHER * src/input/qmultiinputcontext.cpp - Replace lastCreatedIMKey with currentIMKey - (QMultiInputContext): Add default input method specification feature using QT_IM_MODULE and /qt/DefaultInputMethod - (createImSelPopup): * Add IM-switcher plugin elimination feature using "imsw-" prefix * Add dispName.isNull() checking * Apply some rewriting without altering logic for human readability * src/input/qinputcontextfactory.cpp - (create): Replace the identifier name "multi" with "imsw-multi" 2004-08-03 Kazuki Ohta <mover@hct.zaq.ne.jp> * This commit implements table searching suite - QKeyEvent::text() is restricted to only one character, so qsimpleic use QChar::unicode() value in case keys are pressed otherwise composing keys are pressed. - Composing Table is temporally deleted for testing. Need to prepare proper entries. Now qsimpleic can deal with capital letter more cleaner way * Next, I introduce X's composing parser to qsimpleic 2004-08-02 YamaKen <yamaken@bp.iij4u.or.jp> * src/kernel/qapplication_x11.cpp - (x11_apply_settings): Merge the comment about defaultIM overwritten by r52 from r45 2004-07-31 LiuCougar <liucougar@gmail.com> new environment variable QT_IM_MODULE to overwrite the default inputmethod plugin 2004-07-31 LiuCougar <liucougar@gmail.com> "deleteLater" is safer then "delete" QObject directly 2004-07-30 YamaKen <yamaken@bp.iij4u.or.jp> * src/kernel/qnamespace.h - (Qt::Key): * Replace dead key values with new one to avoid keycode conflict * Add a comment about the latin 1 keycodes * Add some comments about the offset for keycode from X keycode * src/kernel/qevent.cpp - (key): Add a comment about latin 1 keycodes to the function description. * src/kernel/qapplication_x11.cpp - Define define XK_XKB_KEYS to include dead key definitions from keysymdef.h - Remove XK_dead_ keys definition 2004-07-29 Kazuki Ohta <mover@hct.zaq.ne.jp> * Change to use displayName() in IM-Switch Popupmenu * src/input/qmultiinputcontext.h - (keyDict): new variable * src/input/qmultiinputcontext.cpp - (createImSelPopup): use displanName() on popup and store key in keyDict - (changeInputMethodWithMenuId): find key from using keyDict * Problem * - if key=="XIM", displayName(key) is QString::null * Wish * - add "virtual QString description( const QString &key ) = 0;" for showing the description of IM on PopupMenu as a whatsthis help 2004-07-28 YamaKen <yamaken@bp.iij4u.or.jp> * src/input/qinputcontextinterface_p.h - Update the UUID because the interface has been changed - (languages): New function - (displayName): New function * src/input/qinputcontextplugin.h - (languages): New function - (displayName): New function * src/input/qinputcontextplugin.cpp - (QInputContextPluginPrivate::languages): New function - (QInputContextPluginPrivate::displayName): New function * src/input/qinputcontextfactory.h - (languages): New function - (displayName): New function * src/input/qinputcontextfactory.cpp - (languages): New function - (displayName): New function 2004-07-27 YamaKen <yamaken@bp.iij4u.or.jp> * src/kernel/qinputcontext.h - (deletionRequested): New signal. Added for fatal error handling * src/kernel/qinputcontext.cpp - (deletionRequested): Add the function description comment * src/kernel/qwidget.h - (destroyInputContext): Change ordinary function to slot to receive the signal QInputContext::deletionRequested() * src/kernel/qwidget_x11.cpp - (changeInputContext, createInputContext): * Connect deletionRequested() signal of qic to destroyInputContext() * Follow renaming of QApplication::imEventReceived() to postIMEvent() - (destroyInputContext): Modify the function description comment * src/input/qximinputcontext_p.h - (close): New function * src/input/qximinputcontext_x11.cpp - (close_xim): * Remove invalid QApplication::close_im() invocation * Add proper finalization using deletionRequested() signal - (close): New function * src/kernel/qapplication.h - (imEventReceived): Remove this inappropriate name to rename to postIMEvent() - (postIMEvent): New slot. Renamed from imEventReceived() * src/kernel/qapplication_x11.cpp - (imEventReceived): Remove this inappropriate name to rename to postIMEvent() - (postIMEvent): New slot. Renamed from imEventReceived() - (close_im): Remove unused commented out code. The code had already been moved to qximinputcontext.cpp * src/input/qmultiinputcontext.h - (destroyInputContext): New slot - (imEventReceived): Remove this inappropriate name to rename to postIMEvent() - (postIMEvent): New slot. Renamed from imEventReceived() * src/input/qmultiinputcontext.cpp - (QT_NO_IM_QMULTIINPUTCONTEXT_IMINDEX): New macro. Defined as default - (filterEvent): Insert #ifdef QT_NO_IM_QMULTIINPUTCONTEXT_IMINDEX - (destroyInputContext): New slot. Processes deletionRequested from slave - (imEventReceived): Remove this inappropriate name to rename to postIMEvent() - (postIMEvent): New slot. Renamed from imEventReceived() - (slave): * Add proper instanciation code for popup menu mode * Insert #ifdef QT_NO_IM_QMULTIINPUTCONTEXT_IMINDEX - (changeInputMethod(int)): * Add error handling for no available input methods * Insert #ifdef QT_NO_IM_QMULTIINPUTCONTEXT_IMINDEX - (changeInputMethod(QString)): * Add error handling for no available input methods * Add default selection for null key * Connect deletionRequested() signal * Fix debug message * src/widgets/qtextedit.cpp - (createPopupMenu): * Add NULL check for input context * Replace the label "SelectInputMethod" with "Select Input Method" * src/widgets/qlineedit.cpp - (createPopupMenu): * Add NULL check for input context * Replace the label "SelectInputMethod" with "Select Input Method" 2004-07-27 YamaKen <yamaken@bp.iij4u.or.jp> * src/kernel/qwidget_x11.cpp - (changeInputContext): * Remove unnecessary createInputContext() * Reorder the code fragments to reduce temporal memory consumption 2004-07-27 YamaKen <yamaken@bp.iij4u.or.jp> * This commit is a comment and variable name update. No actual code is modified. * src/kernel/qinputcontext.cpp - (class QInputContext): Modify the class description comment - (filterEvent): Mark the argument as /* const */ to make it const in future - (reset): Add a requirement to the function description comment for reimplementation * src/kernel/qapplication_x11.cpp - (locateICHolderWidget, icHolderWidgets, changeAllInputContext): Modify the function description comment * src/kernel/qwidget_x11.cpp - (changeInputContext): * Rename 'name' with 'identifierName' to eliminate the ambiguity * Modify the function description comment * Modify a comment * Follow Trolltech's coding style - (createInputContext): * Modify the function description comment * Modify a comment - (resetInputContext): Modify the function description comment * src/kernel/qapplication_x11.cpp - (defaultIM): Modify the comment - (changeAllInputContext): * Rename 'name' with 'identifierName' to eliminate the ambiguity * Follow Trolltech's coding style - (defaultInputMethod): Modify the function description comment - (x11_apply_settings): Modify a comment * src/input/qinputcontextplugin.cpp - (class QInputContextPlugin): Modify the class description comment - (create): Modify the function description comment * src/input/qinputcontextfactory.cpp - (create): Modify the function description comment 2004-07-24 YamaKen <yamaken@bp.iij4u.or.jp> * src/kernel/qinputcontext.cpp - Add #if defined(Q_WS_X11) around X11 platform specific functions. these functions cannot be moved to qinputcontext_x11.cpp at now since the QInputContextPrivate is defined in qinputcontext.cpp. This will be fixed in porting to Qt4. - (filterEvent): Add the function description comment according with the Simplified API (filtering precedence, key compression) * src/kernel/qapplication_x11.cpp - (locateICHolderWidget, icHolderWidgets, changeAllInputContext): Modify the function description comment 2004-07-24 YamaKen <yamaken@bp.iij4u.or.jp> * This commit is a comment update. No code is modified. * src/kernel/qinputcontext.cpp - (class QInputContext): Add the class description comment according with the Simplified API (preedit relocation is done, not entirely completed yet) 2004-07-24 YamaKen <yamaken@bp.iij4u.or.jp> * This commit contains the fixes in response to Lars Knoll's advice. Thanks for the advice. * src/kernel/qapplication_x11.cpp - (x11_apply_settings): Remove trUtf8() from "xim" to specify the default input method * src/kernel/qapplication_x11.cpp, src/input/qximinputcontext_x11.cpp - (ximServer, xim_preferred_style, composingKeycode, input_mapper): Add qt_ prefix to avoid symbol space pollution - (qt_ximServer, qt_xim_preferred_style, qt_ximComposingKeycode, qt_input_mapper): Renamed from above one 2004-07-24 YamaKen <yamaken@bp.iij4u.or.jp> * This commit is a comment update. No code is modified. * src/kernel/qinputcontext.cpp - (class QInputContext): Modify several expressions 2004-07-23 YamaKen <yamaken@bp.iij4u.or.jp> * This commit is a comment update. No code is modified. * src/kernel/qinputcontext.cpp - (class QInputContext): Add the class description comment according with the Simplified API (preedit preservation is done, not entirely completed yet) - (QInputContext, focusWidget, setFocusWidget, isComposing, setFocus, unsetFocus): Modify a typo in the function description comment 2004-07-23 YamaKen <yamaken@bp.iij4u.or.jp> * src/input/qsimpleinputcontext.cpp - Modify the file header description * src/input/qmultiinputcontext.cpp - Modify the file header description * src/input/qsimpleinputcontext.h - Modify the file header description * src/input/qmultiinputcontext.h - Modify the file header description 2004-07-23 YamaKen <yamaken@bp.iij4u.or.jp> * src/input/qsimpleinputcontext.h - Add a copyright and license header * src/input/qsimpleinputcontext.cpp - Add a copyright and license header 2004-07-23 YamaKen <yamaken@bp.iij4u.or.jp> * This commit is a comment update. No code is modified. * src/kernel/qinputcontext.cpp - (class QInputContext): Add the class description comment according with the Simplified API (not completed yet) - (QInputContext): Modify a expression in the function description comment - (sendIMEventInternal, font): Modify a typo in the function description comment 2004-07-23 Kazuki Ohta <mover@hct.zaq.ne.jp> * src/input/qsimpleinputcontext.cpp - OOps. fix typo. 2004-07-23 Kazuki Ohta <mover@hct.zaq.ne.jp> * src/input/qsimpleinputcontext.cpp - follow Qt coding rule - more valid capitalize case 2004-07-23 Kazuki Ohta <mover@hct.zaq.ne.jp> * src/input/qinputcontextfactory.cpp - enable QSimpleInputContext by specifying in qtrc "DefaultInputMethod=simple" 2004-07-23 Kazuki Ohta <mover@hct.zaq.ne.jp> * This commit add simple table based InputContext for dead/multi key support * src/input/qsimpleinputcontext.h, src/input/qsimpleinputcontext.cpp - simple table based InputContext 2004-07-22 Kazuki Ohta <mover@hct.zaq.ne.jp> * kernel/qapplication_x11.cpp, kernel/qnamespace.h - add dead key entries 2004-07-22 YamaKen <yamaken@bp.iij4u.or.jp> * This commit is a comment update. No code is modified. * src/kernel/qinputcontext.cpp - (holderWidget, setHolderWidget, focusWidget, setFocusWidget, releaseComposingWidget, isPreeditRelocationEnabled, isComposing, sendIMEventInternal, sendIMEvent): Add the function description comment according with the Simplified API - (QInputContext, setFocus, unsetFocus): Update the function description comment according with the Simplified API - (~QInputContext, imEventGenerated): Add the function description comment - (reset, identifierName, language, filterEvent): Update the function description comment - (setMicroFocus, mouseHandler, reset, identifierName, language): Modify a expression in the function description comment * src/kernel/qwidget_x11.cpp - (icHolderWidget, resetInputContext, focusInputContext, unfocusInputContext, sendMouseEventToInputContext): Update the function description comment * src/kernel/qapplication_x11.cpp - (imEventReceived): Update the function description comment 2004-07-21 Kazuki Ohta <mover@hct.zaq.ne.jp> * src/input/qmultiinputcontext.h - (createImSelPopup): new function - (changeInputMethodWithMenuId): new slot - (changeInputMethod(QString)): new function - (popup): new variable - (lastCreatedIMKey): new variable * src/input/qmultiinputcontext.cpp - add #ifndef QT_NO_IM - (createImSelPopup): create QPopupMenu object which can switch IM. Currently selected IM is marked as checked. * src/input/qinputcontextfactory.h - remove "class QPopupMenu" * src/widget/qtextedit.cpp - add im-switch popup to the menu which is shown when widget is right-clicked. * src/widget/qlineedit.cpp - add im-switch popup to the menu which is shown when widget is right-clicked. 2004-07-21 YamaKen <yamaken@bp.iij4u.or.jp> * src/kernel/qinputcontext.cpp - (filterEvent, setMicroFocus, mouseHandler): Update the function description comment according with the Simplified API - (reset, identifierName, language): Update the function description comment 2004-07-20 YamaKen <yamaken@bp.iij4u.or.jp> * src/input/qmultiinputcontext.cpp - (changeInputMethod): Fix invalid imIndex circulation. Thanks to Kazuki for reporting 2004-07-20 YamaKen <yamaken@bp.iij4u.or.jp> * This commit enables a flexible signal connection configuration. Default behavior is based on Cougar's suggestion. Thanks. * src/input/qmultiinputcontext.h - (beIndirectlyConnected): New instance variable * src/input/qmultiinputcontext.cpp - (QMultiInputContext): Add beIndirectlyConnected to initializer list - (imEventReceived): Add a function description comment - (changeInputMethod): Connect imEventGenerated signal of slave according with beIndirectlyConnected. The default behavior is changed as directly connected to imEventGenerated signal of this 2004-07-20 YamaKen <yamaken@bp.iij4u.or.jp> * src/kernel/qwidget_x11.cpp - (setMicroFocusHint): Update the comment about XIM handling - (focusInputContextunfocusInputContext, sendMouseEventToInputContext): Add the function description comment * src/kernel/qinputcontext_x11.cpp - (x11FilterEvent): Update the function description comment according with the Simplified API 2004-07-20 YamaKen <yamaken@bp.iij4u.or.jp> * src/input/qmultiinputcontext.cpp - (changeInputMethod): Fix the conversion to const char * from identifierName() 2004-07-20 YamaKen <yamaken@bp.iij4u.or.jp> * src/input/qximinputcontext_p.h - (identifierName): Replace the result "XIM" with "xim" to be consistent with corresponding immodule of GTK+ * src/kernel/qapplication_x11.cpp - (defaultIM, x11_apply_settings): Replace "XIM" with "xim" * src/input/qinputcontextfactory.cpp - (create, keys): Replace "XIM" with "xim" * tools/qtconfig/mainwindow.cpp - (MainWindow): Replace "XIM" with "xim" 2004-07-20 YamaKen <yamaken@bp.iij4u.or.jp> * This commit enables QInputContext proxying, and provide an experimental immodule-switcher QMultiInputContext as its examples. The changes is following. 1. Use signal to deliver QIMEvent instead of explicit postEvent(). This enables QIMEvent proxying and better platform abstraction. Corresponding slot is created as QApplication::imEventReceived(). 2. Move some methods of QInputContext to public from protected or private. This enables that proxy-IM can access slave methods. 3. Make some methods of QInputContext virtual. This enables overriding the methods as proxy 4. Rename QInputContext::name() to identifierName() to avoid conflicting with QObject::name() This patch does not break binary compatibility from vanilla Qt3. But it costs immodule developer small modification. * src/kernel/qinputcontext.h - (class QInputContext): Inherit QObject and add Q_OBJECT macro - (name): Remove to rename to identifierName() to avoid conflicting with QObject::name() - (identifierName): New function. Renamed from name() - (isComposing, isPreeditRelocationEnabled): Move to public from protected to allow proxying - (setFocusWidget,setHolderWidget, releaseComposingWidget): Move to public from private to allow proxying - (focusWidget, holderWidget): * Make public from protected * Make virtual to allow overriding the method as proxy - (imEventGenerated): New signal * src/kernel/qinputcontext.cpp - (QInputContext): Add QObject() to initializer list - (sendIMEventInternal): Replace QApplication::postEvent with signal emitting according to the change - (name): Remove to rename to identifierName() to avoid conflicting with QObject::name() - (identifierName): * New function. Renamed from name() * Return type has changed to QCString from QString to avoid using of i18n string and confusing this with display name for endusers * src/kernel/qwidget_x11.cpp - (changeInputContext): Add QObject::connect() to follow the change of IMEvent flow - (createInputContext): Add QObject::connect() to follow the change of IMEvent flow * src/kernel/qapplication.h - (imEventReceived): New slot * src/kernel/qapplication_x11.cpp - (imEventReceived): New slot to relay QIMEvent to event queue using postEvent() * src/input/qmultiinputcontext.h - New file. Copyright and licensing information is temporarily adapted to our cirmumstances - (QMultiInputContext): New class - (QMultiInputContext): New function - (~QMultiInputContext): New function - (identifierName): New function - (language): New function - (x11FilterEvent): New function. Added based on Cougar's advice. Thanks - (filterEvent): New function - (reset): New function - (setFocus): New function - (unsetFocus): New function - (setMicroFocus): New function - (mouseHandler): New function - (font): New function - (isComposing): New function - (isPreeditRelocationEnabled): New function - (focusWidget): New function - (holderWidget): New function - (setFocusWidget): New function - (setHolderWidget): New function - (releaseComposingWidget): New function - (slave): New function - (slave): New function (const QInputContext *slave() const) - (changeInputMethod): New function - (imEventReceived): New slot * src/input/qmultiinputcontext.cpp - New file. Copyright and licensing information is temporarily adapted to our cirmumstances - (QMultiInputContext): New function - (~QMultiInputContext): New function - (identifierName): New function - (language): New function - (x11FilterEvent): New function. Added based on Cougar's advice. Thanks - (filterEvent): New function. Filters Control+Alt+Key_Down and Control+Alt+Key_Up as IM selection keys as temporary implementation. We should show popup menu - (reset): New function - (setFocus): New function - (unsetFocus): New function - (setMicroFocus): New function - (mouseHandler): New function - (font): New function - (isComposing): New function - (isPreeditRelocationEnabled): New function - (focusWidget): New function - (holderWidget): New function - (setFocusWidget): New function - (setHolderWidget): New function - (releaseComposingWidget): New function - (slave): New function - (slave): New function (const QInputContext *slave() const) - (changeInputMethod): New function - (imEventReceived): New slot * src/input/qinputcontextfactory.cpp - (create): Add QMultiInputContext instanciation. Use the name "multi" to specify it * src/input/qinputcontextfactory.h - Add #include "qinputcontext.h" to avoid compilation error * src/input/qximinputcontext_p.h - (class QXIMInputContext): Add Q_OBJECT macro to follow the API change - (name): Remove to follow the API change - (identifierName): * New function. Renamed from name() * Return type has changed to QCString from QString to follow the API change - (isPreeditRelocationEnabled): Move to public from protected to follow the API change - (isComposing): Remove unnecessary access permission breaker because QInputContext::isComposing() have made public * src/input/qximinputcontext_x11.cpp - (isComposing): Remove unnecessary access permission breaker because QInputContext::isComposing() have made public * src/input/qt_input.pri - Add qmultiinputcontext.h and multiinputcontext.cpp 2004-07-18 LiuCougar <liucougar@gmail.com> use virtual insert version to make subclasses work as expected (merged from bc-branch r19) 2004-07-16 Kazuki Ohta <mover@hct.zaq.ne.jp> * src/input/qinputcontextfactory.h: not the definition of QInputContextPlugin 2004-07-13 YamaKen <yamaken@bp.iij4u.or.jp> * src/kernel/qapplication_x11.cpp - (x11ProcessEvent): Add comment for key event filtering considerations - (QETWidget::translateKeyEvent): Add comment for key compression considerations 2004-07-11 YamaKen <yamaken@bp.iij4u.or.jp> * src/kernel/qwidget.h - (sendMouseEventToInputContext): Move into #if defined(Q_WS_X11) because it is not implemented in other platforms 2004-07-11 YamaKen <yamaken@bp.iij4u.or.jp> * This commit fixes a mismerge with my Simplified API patches * src/kernel/qwidget_x11.cpp - (destroyInputContext): Replace the code with original Simplified API patch. See the comment to recognize the original intention - (focusInputContext): Fix a condition to call qic->setFocus() as originally written. See added comment to recognize the original intention * src/kernel/qwidget.h - (changeInputContext): Move into #if defined(Q_WS_X11) as originally written because it is not implemented in other platforms * src/input/qximinputcontext_p.h - (mouseHandler): Fix a typo as originally written * src/input/qximinputcontext_x11.cpp - Fix a comment location to express original intention 2004-07-08 LiuCougar <liucougar@gmail.com> replace sendEvent with postEvent in qinputcontext to improve the process performance of IMCompose events 2004-07-08 YamaKen <yamaken@bp.iij4u.or.jp> * Insert the comment 'UPDATED COMMENT REQUIRED' into some places for future modifications * Modify some comments * Replace 'InputMethod' in some comments with 'input method' * Replace 'InputContext' in some comments with 'input context' * src/kernel/qinputcontext.h - Move description of QInputContext to qinputcontext.cpp * src/kernel/qinputcontext.cpp - Move description of QInputContext from qinputcontext.h 2004-07-07 Daisuke Kameda <kaminmat@cc.rim.or.jp> Adding the function which realize mapping arbitrary input context and widget: QApplication::locateICHolderWidget() QApplication::icHolderWidgets() QWidget::icHolderWidget() QWidget::getInputContext() Adding the function which changes input method: QApplication::changeAllInputContext() QWidget::changeInputContext() QApplication::defaultInputMethod() change QApplication::create_xim() to QApplication::create_im() change QApplication::close_xim() to QApplication::close_im() 2004-07-06 Daisuke Kameda <kaminmat@cc.rim.or.jp> "QLineEdit should only setMicroFocus if the cursorRect has changed" by cougar 2004-07-06 Daisuke Kameda <kaminmat@cc.rim.or.jp> Re-Creating immodule for Qt/X11 trunk 2004-06-22 YamaKen <yamaken@bp.iij4u.or.jp> * src/kernel/qinputcontext.h - (sendIMEvent): Private version of sendIMEvent(). Remove to rename to sendIMEventInternal - (sendIMEventInternal): Rename from sendIMEvent and accept discrete variables rather than QEvent *e to be adaptable to Qt/Embedded * src/kernel/qinputcontext.cpp - (sendIMEvent): Protected version of sendIMEvent(). Move QEvent construction to sendIMEventInternal() - (sendIMEvent): Private version of sendIMEvent(). Remove to rename to sendIMEventInternal - (sendIMEventInternal): * Rename from sendIMEvent * accept discrete variables rather than QEvent *e to be adaptable to Qt/Embedded * Add placeholder for Qt/Embedded - (setFocusWidget): Follow specification change of sendIMEvent() 2004-06-20 YamaKen <yamaken@bp.iij4u.or.jp> * src/kernel/qevent.h - (class QIMError): Remove to rename to QIMErrorEvent - (class QIMErrorEvent): Rename from QIMError - (QIMErrorEvent::isDeleteIC): Remove to rename to isDeletionRequest - (QIMErrorEvent::isDeletionRequest): Rename from isDelete * src/kernel/qwidget.h - (imErrorEvent): Follow renaming of QIMError * src/kernel/qwidget.cpp - (imErrorEvent): Follow renaming of QIMError and QIMError::isDeleteIC() - (event): Follow renaming of QIMError * src/kernel/qinputcontext.h - (ownerWidget): Remove to rename to holderWidget - (holderWidget): Rename from ownerWidget - (setOwnerWidget): Remove to rename to setHolderWidget - (setHolderWidget): Rename from setOwnerWidget - (releaseComposingWidget): New function. * src/kernel/qinputcontext.cpp - (class QInputContextPrivate): Rename ownerWidget to holderWidget - (ownerWidget): Remove to rename to holderWidget - (holderWidget): Rename from ownerWidget - (setOwnerWidget): Remove to rename to setHolderWidget - (setHolderWidget): Rename from setOwnerWidget - (sendIMError): Follow renaming of QIMError and QIMError::isDeleteIC() - (releaseComposingWidget): New function. * src/input/qinputcontextfactory.cpp - (create): Follow renaming of QInputContext::setOwnerWidget() * src/kernel/qwidget_x11.cpp - (destroy): Add qic->releaseComposingWidget() to reset preserved composing information involving this widget 2004-06-15 YamaKen <yamaken@bp.iij4u.or.jp> * src/kernel/qwidget_x11.cpp - (setMicroFocusHint): Replace relative coordinate with global one for qic->setMicroFocus(). This is required to share particular IM plugin code with Qt/Embedded * src/widgets/qlineedit.cpp - (sendMouseEventToInputContext): Add button event sending when clicking on out of preedit * src/widgets/qtextedit.cpp - (sendMouseEventToInputContext): Add button event sending when clicking on out of preedit * src/input/qximinputcontext_p.h - (isComposing): New function - (composing, cpos, sellen): Remove to follow API change - (isPreeditRelocationEnabled): New overriding function to follow API change - (isPreeditPreservationEnabled): New function * src/input/qximinputcontext_x11.cpp - (xic_start_callback, xic_draw_callback, xic_done_callback, x11FilterEvent, reset): Replace qic->composing with qic->isComposing() to use automatic compose state tracking of QInputContext - (QXIMInputContext): Remove composing, cpos, sellen from initializer list - (sendIMEvent): Remove remembering of cpos, sellen - (reset): Replace IMEnd event sending with QInputContext::reset() - (resetClientState): Remove cpos, sellen, composing - (isComposing): Exported interface for xic callbacks to access protected QInputContext::isComposing() - (setMicroFocus): Follow API change that replaces relative coordinate with global one - (mouseHandler): Add approprate reset on clicking - (setFocus, unsetFocus): Remove preedit preservation and relocation to follow API change. They are moved to QInputContext as generarization - (isPreeditRelocationEnabled): New function to follow API change. - (isPreeditPreservationEnabled): New function. This indicates that whether preedit state should be preserved or not when focusing out the widget 2004-06-14 YamaKen <yamaken@bp.iij4u.or.jp> * src/kernel/qinputcontext.h - (setFocus): Remove hasPreservedPreedit arg - (unsetFocus): Remove preservePreedit arg - (isPreeditRelocationEnabled): New function - (isComposing): New function * src/kernel/qinputcontext.cpp - (class QInputContextPrivate): Reorganize variables for preedit relocation - (QInputContextPrivate::resetComposingState): New function - (QInputContextPrivate::updateComposingState): New function - (setFocusWidget): Add preedit relocation support. Preedit state is relocated to another text widget when the shared context has focused on the another text widget. This feature is mainly used by Japanese input methods - (isPreeditRelocationEnabled): New function. Preedit relocation is enabled only if this function returned TRUE. - (isComposing): New function. Returns current composing state as result of automatic compose state tracking through sendIMEvent(). The function is for used by subclass of QInputContext to know preedit state of the widget. Although QWidget and QInputContextFactory can access to the function as friend, they must not use the function to know composing state of contexts. Keep less relationship to simplify input method development - (sendIMEvent): New 1-arg overloaded function. The function encupsulates platform-dependent IMEvent sending. Only Q_WS_X11 is supported for now. Q_WS_QWS should be supported - (sendIMEvent): * 4-args version of the overloaded function * Isolate platform-dependent event sending process to separated function * Add preedit relocation support * Add compose state tracking support - (unsetFocus): Add reset() for simple ephemeral input contexts - (mouseHandler): Add reset() when clicking for simple ephemeral input contexts - (reset): Add preedit finalization code. Overriding function should call this function to ensure proper preedit state 2004-06-11 YamaKen <yamaken@bp.iij4u.or.jp> * src/kernel/qlineedit.cpp - (QLineEditPrivate::xToPosInternal, QLineEditPrivate::xToPos): Fix loose placement to tail when clicking beyond the string 2004-06-10 YamaKen <yamaken@bp.iij4u.or.jp> * src/kernel/qinputcontext.h - Remove several pointers to QWidget to share concrete IM implementation code with Qt/Embedded. The IM model of Qt/Embedded requires that widgets and input contexts are existing in another process - (QInputContext): Remove the QWidget * arg - (focusWidget, ownerWidget): * Move to protected and unrecommended * Move the inline function definition to qinputcontext.cpp - (filterEvent): Remove unnecessary keywidget - (setFocus): * Remove newFocusWidget arg * Add hasPreservedPreedit arg - (unsetFocus): Add preservePreedit arg - (sendIMError): New function to hide ownerWidget from derived QInputContext - (composingWidget, setComposingWidget): New function to support preedit relocation of shared context on focus transition - (setFocusWidget, setOwnerWidget): New function to implement internal functionality on Qt/X11 platform - (d): New variable to hide ABI change - (QInputContext, operator=): New function to disable copy constructor and operator= * src/kernel/qinputcontext.cpp - (class QInputContextPrivate): New class to hide ABI change - (QInputContext): * Follow API change * Follow introducing QInputContextPrivate - (~QInputContext): Follow introducing QInputContextPrivate - (ownerWidget): * Move from qinputcontext.h * Follow introducing QInputContextPrivate - (setOwnerWidget): New function to complement removal of the arg of QInputContext constructor - (composingWidget, setComposingWidget): New function. These functions are participating with preedit relocation of shared context on focus transition - (focusWidget): * Move from qinputcontext.h * Follow introducing QInputContextPrivate * Follow introducing composingWidget - (setFocusWidget): New function to complement removal of the QWidget * arg of setFocus() - (filterEvent): Follow API change of removal of keywidget - (sendIMEvent): Add #ifdef to isolate Qt/X11 dependent code - (sendIMError): New function to hide ownerWidget() from derived QInputContext. This is required to share particular IM plugin code with Qt/Embedded - (setFocus, unsetFocus): Follow API change * src/input/qinputcontextfactory.cpp - (create): Add ownerWidget initialization for new context * src/kernel/qwidget.cpp - (setFocus): Remove unnecessary shared input context checking * src/kernel/qwidget_x11.cpp - (setActiveWindow): Replace duplicated code with focusInputContext() - (getInputContext): Return input context only if isInputMethodEnabled() widget, otherwise returns 0. This is required for proper focus transition handling - (unfocusInputContext): Follow API change of QInputContext::unsetFocus() * src/kernel/qapplication.cpp - (setActiveWindow): Follow change of QWidget::unfocusInputContext() * src/kernel/qapplication_x11.cpp - (x11ProcessEvent): Follow API change of QInputContext::filterEvent() * src/input/qximinputcontext_p.h - (setFocus, unsetFocus): Follow API Change - (hasFocus): New function - (close): New function * src/input/qximinputcontext.cpp - Remove unrecommended focusWidget() and ownerWidget() - (ximWidgetList): Remove to replace with ximContextList - (ximContextList): New variable - (xic_draw_callback): Replace focusWidget() with hasFocus() to follow API Change - (QXIMInputContext): * Follow API change * Follow replacing to ximContextList - (~QXIMInputContext): * Follow replacing to ximContextList * Remove unnecessary QInputContext::unsetFocus() - (close_xim): * Follow replacing to ximContextList * Follow API change - (close, hasFocus): New function. Exported interface for xic_draw_callback to access protected features - (setFocus, unsetFocus): Follow API change 2004-06-09 YamaKen <yamaken@bp.iij4u.or.jp> * src/kernel/qwidget.cpp - (hide): Remove unfocusInputContext(). This caused excessive invalid QInputContext::unsetFocus(). QWidget::deactivateWidgetCleanup() handles unfocusInputContext() appropriately via qApp->setActiveWindow( 0 ). 2004-06-08 YamaKen <yamaken@bp.iij4u.or.jp> * src/kernel/qrichtext_p.h - (QTextCursor::place): New 5-args overloaded function - (QTextCursor::place): 3-args version of the function is reimplemented as inline function using new 5-args one. * src/kernel/qrichtext.cpp - (QTextCursor::place): Remove 3-args version of the function - (QTextCursor::place): New 5-args overloaded function. This is copied from 3-args one and added new args loosePlacing and matchBetweenCharacters * src/widgets/qtextedit.cpp - (sendMouseEventToInputContext): Send mouse event when only mouse cursor is placed within preedit area. This is accomplished by new 5-args QTextCursor::place() - (contentsContextMenuEvent): Disable context menu when in IM composing state - (drawContents): Add updateMicroFocusHint() to follow dragging of active window by the showed candidate window - (contentsMouseMoveEvent): Fix cursor vanishing on IM composing state * src/kernel/qlineedit.cpp - (sendMouseEventToInputContext): Exclude character at preedit[preeditLength] from being handled as preedit - (contextMenuEvent): Disable context menu when in IM composing state - (focusInEvent): Fix invalid MicroFocusHint position which caused that candidate window is always showed at end of the preedit when active window is show() back 2004-06-07 YamaKen <yamaken@bp.iij4u.or.jp> * src/kernel/qwidget_x11.cpp - (reparentSys): Fix an invalid assumption about input context location involving destroyInputContext() - (deleteTLSysExtra): Remove destroyInputContext() because the input context is not a extra data and should be destroyed in QWidget::destroy() - (destroyInputContext): Remove icHolderWidget() because this function is called to destroy the input context that belongs to the widget itself - (destroy): Replace 'this->ic' with 'ic' - (create): Replace 'this->ic' with 'ic' * src/kernel/qwidget.cpp - (hide): Add unfocusInputContext() * src/kernel/qapplication.cpp - (setActiveWindow): Add unfocusInputContext() * src/kernel/qlineedit.cpp - (QLineEditPrivate::xToPosInternal): New function. Copied from xToPos and Remove the safety limiter. - (QLineEditPrivate::xToPos): Reimprement using xToPosInternal - (sendMouseEventToInputContext): * Fix position boundary as matching with character boundary rather than center of character * Send mouse event when only mouse cursor is placed within preedit area. This is accomplished by replacing xToPos() with xToPosInternal() 2004-06-04 YamaKen <yamaken@bp.iij4u.or.jp> * src/kernel/qinputcontext.h - (font): New function. Returns the font of focusWidget() * src/kernel/qinputcontext.cpp - (font): New function * src/kernel/qwidget_x11.cpp - (setActiveWindow, focusInputContext): Avoid calling qic->setFocus() if the target is identical widget - (setMicroFocusHint, setActiveWindow, createInputContext, destroyInputContext, resetInputContext, focusInputContext): Remove obsolete comment around qic retrieving * src/input/qximinputcontext_x11.cpp - (language): Return Chinese languages appropriately (such as "zh_CN") 2004-06-03 YamaKen <yamaken@bp.iij4u.or.jp> * src/kernel/qinputcontext.h - (getOwnerWidget): Remove to rename to ownerWidget - (ownerWidget): New function. Rename from getOwnerWidget to be consistent with the name focusWidget - (focusWidget): New function. Add to make IM-related communication with focusWidget easy. The name is imported from QApplication::focusWidget to be supposed same role - (language): Change return type to QCString from const char * - (filterEvent): Change args. Passes QEvent *event rather than preexpanded key event values. This is intended to pass other IM-related events in future. The IM-related events are supposed as QWheelEvent, QTabletEvent and so on - (setFocusHint): Remove to be appropriate name - (setMicroFocus): * Rename from setFocusHint to be appropriate name. This function instructs 'MicroFocus' rect within a widget that is different to normal focus for widgets, so the name 'setFocus' is invalid. And 'Hint' is a concept for the manager of this class and loses the meaning when passed to this class. The passed values are not a hint but have well-defined actual effect, so the name 'Hint' is invalid. Finally, Qt/Embedded 2.3.7 has a samely named method in QWSInputMethod * Remove the arg 'widget' to consistent with the new focusWidget() method - (mouseHandler): New function. The method interface is imported from QWSInputMethod::mouseHandler() of Qt/Embedded 2.3.7 and extended for desktop system - (sendIMEvent): New function. Conventional function to send QIMEvent to appropriate widget using focusWidget(). IM developers can send IMEvents without tracking focuswidget by themself - (ownerWidget): Remove to Rename to _ownerWidget - (_ownerWidget): New variable. Renamed from ownerWidget to avoid name conflict with ownerWidget() - (_focusWidget): New variable. * src/kernel/qinputcontext.cpp - (QInputContext): Follow API change - (~QInputContext): Clean up - (filterEvent): Follow API change - (sendIMEvent): New function. - (setFocusHint): Remove to follow new API - (setMicroFocus): copied from setFocusHint and reimplement to follow new API - (mouseHandler): New function - (language): Follow API change * src/kernel/qwidget.h - (sendMouseEventToInputContext): New function - (unfocusInputContext): New function * src/kernel/qwidget.cpp - (setFocus): Invoke unfocusInputContext() with previous focus widget to delegate reset responsibility to input context instead of resetInputContext() directly. See also comment for further information - (clearFocus): Add unfocusInputContext(); - (event): Delegate reset responsibility to input context instead of resetInputContext() directly. See also comment for further information * src/kernel/qwidget_x11.cpp - (setMicroFocusHint): Modify to follow API change - (setActiveWindow): Modify to follow API change - (focusInputContext): Modify to follow API change - (unfocusInputContext): New function - (sendMouseEventToInputContext): New function * src/kernel/qapplication_x11.cpp - (class QETWidget): Change translateKeyEventInternal definition - (x11ProcessEvent): Change QInputContext::filterEvent() invocation to follow API change - (translateKeyEventInternal): * Add new arg statefulTranslation to enable duplicate call within single event loop. This is required to support both QInputContext::filterEvent() and RTL extensions * Restore accidencially omitted qt_mode_switch_remove_mask handling * src/input/qximinputcontext_p.h - (class QXIMInputContext): Follow API change of QInputContext - (language): Change return type to follow new API - (setFocus): Change arg to follow new API - (setFocusHint): Remove to follow new API - (setMicroFocus): New method to follow new API - (mouseHandler): New method to follow new API - (sendIMEvent): New method (reimp) - (focusWidget): Remove to follow new API - (cpos): New variable - (sellen): New variable * src/input/qximinputcontext_x11.cpp - (qt_compose_emptied): Remove as result of optimization. It has become unnecessary now - (xic_start_callback): Add IMStart event sending as result of optimization - (xic_draw_callback): Optimize state management for IMEvent sending, and simplify using sendIMEvent() - (xic_done_callback): Simplify using sendIMEvent() - (QXIMInputContext): * Follow class definition change * Follow API change - (~QXIMInputContext): Modify to follow API change - (x11FilterEvent): Optimize state management for IMEvent sending, and simplify using sendIMEvent() - (sendIMEvent): New function. Implement to remember last IMEvent information - (reset): Simplify using sendIMEvent() - (resetClientState): Follow class definition change - (setFocusHint): Remove to follow new API - (setMicroFocus): copied from setFocusHint and modified to follow new API - (mouseHandler): New function. Implemented to reset the context on MouseButtonPress except for Japanese IM. See also comment for further information - (setFocus): Reimplement to follow new API. Automatically handles appropriate IMEvent sending on focus transition - (unsetFocus): Reimplement to follow new API. Implemented to reset the context on FocusOut except for Japanese IM. See also comment for further information * src/widgets/qlineedit.h - (sendMouseEventToInputContext): New function * src/widgets/qlineedit.cpp - (QLineEditPrivate::composeMode): New function - (QLineEditPrivate::hasIMSelection): New function - (QLineEditPrivate::preeditLength): New function - (QLineEditPrivate::imSelectionLength): New function - (mousePressEvent, mouseMoveEvent, mouseReleaseEvent, mouseDoubleClickEvent): Support QInputContext::mouseHandler() - (sendMouseEventToInputContext): New function. Retrieve the position and call QWidget::sendMouseEventToInputContext() - (drawContents): Follow API change * src/widgets/qtextedit.h - (sendMouseEventToInputContext): New function * src/widgets/qtextedit.cpp - (QTextEditPrivate::composeMode): New function - (sendMouseEventToInputContext): New function. Retrieve the position and call QWidget::sendMouseEventToInputContext() - (imComposeEvent, imEndEvent): Clean up with composeMode() - (contentsMousePressEvent, contentsMouseMoveEvent, contentsMouseReleaseEvent, contentsMouseDoubleClickEvent): Support QInputContext::mouseHandler() 2004-06-01 YamaKen <yamaken@bp.iij4u.or.jp> * src/input/qximinputcontext_x11.cpp (x11FilterEvent): Fix commit problem except for on-the-spot style 2004-05-31 YamaKen <yamaken@bp.iij4u.or.jp> * First 'Simplified API' patch. A lot of changes to be described 2004-03-16 Daisuke Kameda <kaminmat@cc.rim.or.jp> * A lot of changes to be described before this date. Almost of code are written by Daisuke Kameda