[immodule-qt] Porting to Qt4

LiuCougar liucougar at gmail.com
Mon Aug 23 22:44:50 EEST 2004


Thanks for your work.

I just wonder when we will release next stable patch for Qt 3.3.x ?

Regards,
Cougar

On Mon, 23 Aug 2004 17:15:23 +0900, YamaKen <yamaken at bp.iij4u.or.jp> wrote:
> Hi all, I've ported our code into Qt4 initially.
> 
> Ported code has been released as patch file since our svn
> repository is not properly working from yesterday.
> 
> Download qt-x11-immodule-qt4.0.0-tp1-20040822.diff.gz from
> following page and please review it.
> 
> http://immodule-qt.freedesktop.org/Software/ImmoduleQtDownload
> 
> Lars, is QIMEvent handling of QTextEdit implemented in Qt4 head?
> If so, I'll suspend the development for the class and wait for
> preview2.
> 
> commit log:
> ----------------------------------------------------------------------
> * Initial porting to Qt4 preview1 from Qt3 trunk r110
>   - coding style is not modified yet
>   - Only QLineEdit is full featured immodule-ready text
>     widget. Q3TextEdit and QTextEdit is not developed well.
> 
> * configure
>   - Merge diffs from Qt3 trunk
> 
> * include/QtGui/QInputContextPlugin
> * include/QtGui/qinputcontextplugin.h
> * include/QtGui/qinputcontextfactory.h
> * include/QtGui/QInputContext
> * include/QtGui/qinputcontext.h
> * include/QtGui/QInputContextFactory
>   - New file
> 
> * src/core/global/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
> 
> * src/core/global/qnamespace.h
>   - (Qt::Key): Merge diffs from Qt3 trunk
> 
> * src/gui/gui.pro
>   - Add inputmethod subdirectory
> 
> * src/gui/kernel/kernel.pri
>   - Add qinputcontext.{h,cpp}
>   - Remove qinputcontext_p.h for X11 platform
> 
> * src/gui/kernel/qt_x11_p.h
>   - (QX11Data::xim, QX11Data::xim_style): Remove to replace with
>     equivalents in QXIMInputContext
> 
> * src/gui/kernel/qevent.cpp
>   - (key): Add a comment about latin 1 keycodes to function
>     description
> 
> * src/gui/kernel/qwidget.h
>   - (icHolderWidget, getInputContext, changeInputContext,
>     sendMouseEventToInputContext): New functions. Port from Qt3 trunk
>   - (destroyInputContext): New private slot defined by Q_PRIVATE_SLOT
> * src/gui/kernel/qwidget_p.h
>   - (QTLWExtra::xic): Remove to replace with QWidgetPrivate::ic
>   - (QWidgetPrivate::ic): New variable
>   - (QWidgetPrivate::unfocusInputContext): New function. Ported from
>     QWidget::unfocusInputContext of Qt3 trunk
> * src/gui/kernel/qwidget.cpp
>   - (setFocus): Merge a diff from Qt3 trunk and properly surrounded
>     with #ifdef Q_WS_X11
>   - (event): Merge a diff from Qt3 trunk
> * src/gui/kernel/qwidget_x11.cpp
>   - Port from Qt3 trunk
>   - (icHolderWidget, getInputContext, changeInputContext,
>     sendMouseEventToInputContext): New functions. Port from Qt3 trunk
>   - (create, destroy, setMicroFocusHint, setActiveWindow,
>     createTLSysExtra, deleteTLSysExtra, createInputContext,
>     destroyInputContext, resetInputContext, focusInputContext,
>     unfocusInputContext): Merge diffs from Qt3 trunk
>   - (setParent_sys): Merge a diff from QWidget::reparentSys of Qt3
>     trunk
> 
> * src/gui/kernel/qapplication.h
>   - (create_xim, close_xim): Remove
>   - (locateICHolderWidget, icHolderWidgets, changeAllInputContext,
>     create_im, close_im, defaultInputMethod, postIMEvent):
>     New functions. Port from Qt3 trunk
>   - (defaultIM): New variable. Port from Qt3 trunk
> * src/gui/kernel/qapplication.cpp
>   - (compressEvent): Merge diffs from QApplication::postEvent() of Qt3
>     trunk
>   - (setActiveWindow): Merge a diff from Qt3 trunk and properly
>     surrounded with #ifdef Q_WS_X11
> * src/gui/kernel/qapplication_x11.cpp
>   - Port from Qt3 trunk
>   - Most XIM codes are move into qximinputcontext_x11.cpp as same as Qt3
>   - (xim_default_style): Move into qximinputcontext_x11.cpp
>   - (locateICHolderWidget, icHolderWidgets, changeAllInputContext,
>     postIMEvent, defaultInputMethod, create_im, close_im):
>     New functions. Port from Qt3 trunk
>   - (x11_apply_settings, qt_set_input_encoding): Merge diffs from Qt3
>     trunk
>   - (qt_init):
>     * Merge diffs from Qt3 trunk
>     * Remove initializaton of xim and xim_style
>     * Comment out '-noxim' option handling
>     * Move initialization of xim_preferred_style to
>       qximinputcontext_x11.cpp
>   - (x11ProcessEvent):
>     * Merge diffs from Qt3 trunk
>     * Remove 'ascii' from args of translateKeyEventInternal() in
>       accordance with specification change of QKeyEvent
>   - (KeyTbl): Merge diffs from Qt3 trunk
>   - (QETWidget::translateKeyEventInternal):
>     * Merge diffs from Qt3 trunk
>     * Add dead keys detection for proper key translation
> 
> * src/gui/kernel/qinputcontext.h
>   - Port from Qt3 trunk
>   - Export as proper class by Q_GUI_EXPORT
>   - Replace QInputContextPrivate class definition with Q_DECLARE_PRIVATE
>   - (struct QInputContextMenu): Disable member definitions for
>     Qt3. This struct only exists for namespace for Qt4
>   - (addActionsTo): New function for Qt4
>   - (addMenusTo): Let Qt3 specific
> * src/gui/kernel/qinputcontext.cpp
>   - Port from Qt3 trunk
>   - (class QInputContextPrivate): Inherit QObjectPrivate to use
>     Private class definition with moc
>   - (QInputContext): Replace d handling with QObjectPrivate
>   - (~QInputContext): Remove d handling
>   - (sendIMEventInternal): Replace deprecated QIMComposeEvent with
>     QIMEvent
>   - (identifierName, language): Change return type to QString from
>     deprecated QCString to share the code between Qt3 and Qt4
>   - (actions): New function for Qt4
>   - (addActionsTo): New function for Qt4
> * src/gui/kernel/qinputcontext_x11.cpp
>   - Merge diffs from Qt3 trunk
>   - Most XIM codes are move into qximinputcontext_x11.cpp as same as
>     Qt3
> 
> * src/gui/inputmethod
>   - New directory
> * src/gui/inputmethod/inputmethod.pri
>   - New file
> 
> * src/gui/inputmethod/qinputcontextfactory.h
>   - Port from Qt3 trunk
>   - Remove inappropriate #ifndef QT_NO_STRINGLIST. QStringList is now
>     required feature for immodule. See also changes of qfeatures.h
> * gui/inputmethod/qinputcontextfactory.cpp
>   - New file
>   - Port from Qt3 trunk with new Qt4 plugin APIs
> 
> * src/gui/inputmethod/qinputcontextplugin.h
>   - New file
>   - Port from qinputcontextplugin.h and qinputcontextinterface.h of
>     Qt3 trunk
> * src/gui/inputmethod/qinputcontextplugin.cpp
>   - New file
>   - Port from Qt3 trunk
> 
> * src/gui/text/qtextlayout.cpp
>   - (draw): Replace (s.type() != Highlight) with (s.type() ==
>     NoSelection) to fix inproper drawing about input method related
>     selection
>   - (drawSelection): Add underline drawing for the SelectionType
>     ImText. Asian users need this popular preedit appearance. The
>     drawing style should be dynamically able to specify with extended
>     QIMEvent attributes. This fixed underline style is just a
>     temporary solution
> 
> * src/gui/widgets/qlineedit.h
>   - (sendMouseEventToInputContext): New function. Port from Qt3 trunk
> * src/gui/widgets/qlineedit_p.h
>   - Port from Qt3 trunk
>   - (composeMode, hasIMSelection, preeditLength, imSelectionLength,
>     xToPosInternal): New functions. Port from Qt3 trunk
> * src/gui/widgets/qlineedit.cpp
>   - Port from Qt3 trunk
>   - (mousePressEvent, mouseMoveEvent, mouseReleaseEvent,
>     mouseDoubleClickEvent, imComposeEvent, focusInEvent,
>     contextMenuEvent, updateMicroFocusHint): Merge diffs from Qt3
>     trunk
>   - (sendMouseEventToInputContext): New function. Port from Qt3 trunk
>   - (paintEvent):
>     * Merge diffs from QLineEdit::drawContents() of Qt3 trunk
>     * Replace some code fragments with ported functions of
>       QLineEditPrivate
>   - (createPopupMenu): Add input method menu handling
>   - (QLineEditPrivate::xToPosInternal): New function. Copied from
>     xToPos and Remove the safety limiter. Implemented as same as Qt3
>     trunk
>   - (QLineEditPrivate::xToPos): Reimprement using xToPosInternal.
>     Implemented as same as Qt3 trunk
> 
> * src/gui/widgets/qtextedit.h
>   - (imStartEvent, imComposeEvent, imEndEvent): New functions. Port
>     from Qt3 trunk
> * src/gui/widgets/qtextedit.cpp
>   - Port from Qt3 trunk
>   - (QTextEditPrivate::imstart, QTextEditPrivate::imend,
>     QTextEditPrivate::imselstart, QTextEditPrivate::imselend): New
>     variables. Ported from Qt3 trunk
>   - (composeMode, hasIMSelection, preeditLength, imSelectionLength,
>     xToPosInternal): New functions. Port from Qt3 trunk
>   - (imStartEvent, imComposeEvent, imEndEvent): Partially ported from
>     Qt3 trunk. Just a placeholder for now and not worked yet
> 
> * src/plugins/plugins.pro
>   - Add 'inputmethods' to SUBDIRS. The directory name 'inputmethods'
>     is intended to be compatible with Qt/Embedded
> * src/plugins/inputmethods
>   - New directory
> * src/plugins/inputmethods/inputmethods.pro
>   - New file. 'xim' directory is only build with X11 platform
> 
> * src/plugins/inputmethods/imsw-none/imsw-none.pro
>   - New file
> * src/plugins/inputmethods/imsw-none/qnoneinputcontextplugin.h
>   - Port from Qt3 trunk
> * src/plugins/inputmethods/imsw-none/qnoneinputcontextplugin.cpp
>   - Port from Qt3 trunk
> 
> * src/plugins/inputmethods/imsw-multi/imsw-multi.pro
>   - New file
> * src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.h
>   - Port from Qt3 trunk
> * src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp
>   - Port from Qt3 trunk
> * src/plugins/inputmethods/imsw-multi/qmultiinputcontext.h
>   - Port from Qt3 trunk
>   - (identifierName, language): Change return type to QString from
>     deprecated QCString to share the code between Qt3 and Qt4
>   - (actions): New function for Qt4
>   - (createImSelMenu): New function for Qt4 based on createImSelPopup()
>   - (changeInputMethodWithAction): New function for Qt4
>   - (keyDict): Remove to replace with idNames
>   - (idNames): New variable to replace with keyDict that uses
>     deprecated intDict
>   - (popup): Remove to rename to menu
>   - (menu): New variable for both Qt3 and Qt4
> * src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp
>   - Port from Qt3 trunk
>   - Support both Qt3 and Qt4
>   - (actions): New function for Qt4
>   - (createImSelMenu): New function for Qt4 based on createImSelPopup()
>   - (changeInputMethodWithAction): New function for Qt4
>   - (createImSelPopup):
>     * Let Qt3 specific
>     * Replace 'IntDict keyDict' with 'QMap idNames' to be closer to
>       Qt4 classes
>   - (changeInputMethodWithMenuId): Let Qt3 specific
> 
> * src/plugins/inputmethods/simple/simple.pro
>   - New file
> * src/plugins/inputmethods/simple/qsimpleinputcontextplugin.h
>   - Port from Qt3 trunk
> * src/plugins/inputmethods/simple/qsimpleinputcontextplugin.cpp
>   - Port from Qt3 trunk
> * src/plugins/inputmethods/simple/qsimpleinputcontext.h
>   - Port from Qt3 trunk
>   - (identifierName, language): Change return type to QString from
>     deprecated QCString to share the code between Qt3 and Qt4
> * src/plugins/inputmethods/simple/qsimpleinputcontext.cpp
>   - Port from Qt3 trunk
>   - (identifierName, language): Change return type to QString from
>     deprecated QCString to share the code between Qt3 and Qt4
> * src/plugins/inputmethods/simple/composetable.cpp
>   - Port from Qt3 trunk
> * src/plugins/inputmethods/simple/xcompose2q.rb
>   - Port from Qt3 trunk
> 
> * src/plugins/inputmethods/xim/xim.pro
>   - New file
> * src/plugins/inputmethods/xim/qximinputcontextplugin.h
>   - Port from Qt3 trunk
> * src/plugins/inputmethods/xim/qximinputcontextplugin.cpp
>   - Port from Qt3 trunk
> * src/plugins/inputmethods/xim/qximinputcontext.h
>   - Port from Qt3 trunk
>   - merge diffs between Qt3 and Qt4 about XIM
>   - (_language): Change type to QString from deprecated QCString
>   - (isInitialized): New class variable to replace static isInitXIM
>   - (xim): New class variable to replace global qt_xim
>   - (xim_style): New class variable to replace global qt_xim_style
>   - (ximContextList): Remove to rename to ximContexts
>   - (ximContexts):
>     * Renamed from ximContextList
>     * Change type to QList from deprecated QPtrList
>   - (selectedChars): Change type to QBitArray from deprecated QMemArray
> * src/plugins/inputmethods/xim/qximinputcontext_x11.cpp
>   - Port from Qt3 trunk
>   - merge diffs between Qt3 and Qt4 about XIM
>   - (isInitXIM): Remove to replace with class variable isInitialized
>   - (isInitialized, xim, xim_style, ximContexts): New class variable
>     definition
>   - (xim_default_style): New static variable. Moved from qapplication_x11.cpp
>   - (xim_create_callback, xim_destroy_callback, getFontSet,
>     create_xim, x11FilterEvent, lookupString): Merge Qt4 diffs
>   - (~QXIMInputContext):
>     * Merge Qt4 diffs
>     * Rewrite around ximContexts
>   - (init_xim):
>     * Merge Qt4 diffs
>     * Move xim_default_style handling from qapplication_x11.cpp
>   - (close_xim): Rewrite around ximContexts
>   - (setFocus, unsetFocus): follow variable renaming
>   - (identifierName, language):
>     * Move from inline definition in qximinputcontext.h
>     * Change return type to QString from deprecated QCString
>     to share the code between Qt3 and Qt4
>   - (language): Change return type to QString from deprecated QCString
>     to share the code between Qt3 and Qt4
> ----------------------------------------------------------------------
> 
> -------------------------------
> YamaKen  yamaken at bp.iij4u.or.jp
> _______________________________________________
> immodule-qt mailing list
> immodule-qt at freedesktop.org
> http://freedesktop.org/mailman/listinfo/immodule-qt
> 


-- 
"People's characters are strengthened through struggle against
difficulties; they are weakened by comfort."
- Old Chinese adage



More information about the immodule-qt mailing list