[immodule-qt] Porting to Qt4
Kazuki Ohta
mover at hct.zaq.ne.jp
Tue Aug 24 06:20:46 EEST 2004
Hi, Yamaken.
I tried your patch and it works fine.
Thank you for your work!
I'm now porting uim-qt for qt4 (beta version has committed to uim svn)
regards.
> 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
--
---------------------------------
Move the worl:D!
Kazuki Ohta : mover at hct.zaq.ne.jp
More information about the immodule-qt
mailing list