Author: yamakenz
Date: Fri Sep 21 03:43:05 2007
New Revision: 4995

Added:
   trunk/qt/quiminputcontextplugin-qt4/quiminputcontext_compose.cpp
      - copied, changed from r4979, 
/trunk/qt/immodule-quiminputcontext_compose.cpp
   trunk/qt/quiminputcontextplugin-qt4/quiminputcontext_compose.h
      - copied unchanged from r4979, 
/trunk/qt/immodule-quiminputcontext_compose.h
Modified:
   trunk/qt/quiminputcontextplugin-qt4/quiminputcontext.cpp
   trunk/qt/quiminputcontextplugin-qt4/quiminputcontext.h
   trunk/qt/quiminputcontextplugin-qt4/quiminputcontextplugin.pro

Log:
* This commit merge X Compose handlings from Qt3 immodule

* qt/quiminputcontextplugin-qt4/quiminputcontext.h
  - (DefTree): New type
  - (QUimInputContext::mTreeTop, QUimInputContext::mCompose): New
    variable merged from Qt3 immodule
  - (QUimInputContext::create_compose_tree,
    QUimInputContext::get_compose_filename,
    QUimInputContext::TransFileName,
    QUimInputContext::ParseComposeStringFile,
    QUimInputContext::FreeComposeTree,
    QUimInputContext::parse_compose_line,
    QUimInputContext::get_mb_string, QUimInputContext::get_encoding,
    QUimInputContext::get_lang_region): New function decl merged from
    Qt3 immodule
* qt/quiminputcontextplugin-qt4/quiminputcontext.cpp
  - (QUimInputContext::mTreeTop): New variable
  - (QUimInputContext::QUimInputContext,
    QUimInputContext::filterEvent, QUimInputContext::reset): Merge X
    Compose handling from Qt3 immodule
* quiminputcontext_compose.h
  - New file copied from immodule-quiminputcontext_compose.h
* quiminputcontext_compose.cpp
  - New file copied from immodule-quiminputcontext_compose.cpp
* qt/quiminputcontextplugin-qt4/quiminputcontextplugin.pro
  - Add quiminputcontext_compose.{h,cpp}


Modified: trunk/qt/quiminputcontextplugin-qt4/quiminputcontext.cpp
==============================================================================
--- trunk/qt/quiminputcontextplugin-qt4/quiminputcontext.cpp    (original)
+++ trunk/qt/quiminputcontextplugin-qt4/quiminputcontext.cpp    Fri Sep 21 
03:43:05 2007
@@ -16,6 +16,7 @@
 #include <string.h>
 
 #include "quiminputcontext.h"
+#include "quiminputcontext_compose.h"
 #include "plugin.h"
 #include "candidatewindow.h"
 #include "quiminfomanager.h"
@@ -34,6 +35,9 @@
 QList<QUimInputContext*> contextList;
 
 QUimHelperManager * QUimInputContext::m_HelperManager = 0L;
+#ifdef Q_WS_X11
+DefTree *QUimInputContext::mTreeTop = NULL;
+#endif
 
 static int unicodeToUKey(ushort c);
 
@@ -65,6 +69,11 @@
     cwin->setQUimInputContext( this );
     cwin->hide();
 
+#ifdef Q_WS_X11
+    if ( !mTreeTop )
+        create_compose_tree();
+    mCompose = new Compose( mTreeTop, this );
+#endif
     mTextUtil = new QUimTextUtil( this );
 
     // read configuration
@@ -147,7 +156,7 @@
         modifier |= UMod_Control;
     if ( keyevent->modifiers() & Qt::AltModifier )
         modifier |= UMod_Alt;
-#if defined(_WS_X11_)
+#if defined(Q_WS_X11)
     if ( keyevent->modifiers() & Qt::MetaModifier )
         modifier |= UMod_Meta;
 #endif
@@ -191,7 +200,8 @@
         {
             key = qkey - Qt::Key_F1 + UKey_F1;
         }
-        else if ( qkey >= Qt::Key_Dead_Grave && qkey <= Qt::Key_Dead_Horn ) {
+        else if ( qkey >= Qt::Key_Dead_Grave && qkey <= Qt::Key_Dead_Horn )
+       {
             key = qkey - Qt::Key_Dead_Grave + UKey_Dead_Grave;
         }
         else if ( qkey >= Qt::Key_Kanji && qkey <= Qt::Key_Eisu_toggle )
@@ -241,14 +251,24 @@
     if ( type == QEvent::KeyPress )
     {
         notFiltered = uim_press_key( m_uc, key, modifier );
+#ifdef Q_WS_X11
+        if ( notFiltered )
+            return mCompose->handle_qkey( keyevent );
+#else
         if ( notFiltered )
             return FALSE;
+#endif
     }
     else if ( type == QEvent::KeyRelease )
     {
         notFiltered = uim_release_key( m_uc, key, modifier );
+#ifdef Q_WS_X11
+        if ( notFiltered )
+            return mCompose->handle_qkey( keyevent );
+#else
         if ( notFiltered )
             return FALSE;
+#endif
     }
 
     return TRUE;
@@ -361,6 +381,9 @@
     candwinIsActive = FALSE;
     cwin->hide();
     uim_reset_context( m_uc );
+#ifdef Q_WS_X11
+    mCompose->reset();
+#endif
     clearPreedit();
     updatePreedit();
 }

Modified: trunk/qt/quiminputcontextplugin-qt4/quiminputcontext.h
==============================================================================
--- trunk/qt/quiminputcontextplugin-qt4/quiminputcontext.h      (original)
+++ trunk/qt/quiminputcontextplugin-qt4/quiminputcontext.h      Fri Sep 21 
03:43:05 2007
@@ -13,6 +13,10 @@
 
 class CandidateWindow;
 class QUimHelperManager;
+#ifdef Q_WS_X11
+typedef struct _DefTree DefTree;
+class Compose;
+#endif
 class QUimTextUtil;
 
 class PreeditSegment
@@ -102,6 +106,21 @@
     void switch_app_global_im( const char *str );
     void switch_system_global_im( const char *str );
 
+#ifdef Q_WS_X11
+    // for X11 Compose
+    static DefTree *mTreeTop;
+    static void create_compose_tree( void );
+    static char *get_compose_filename( void );
+    static char *TransFileName( char *name );
+    static void ParseComposeStringFile( FILE *fp );
+    static void FreeComposeTree( DefTree *top );
+    static int parse_compose_line( FILE *fp, char **tokenbuf, size_t *buflen );
+    static int get_mb_string( char *buf, unsigned int ks );
+    static const char *get_encoding( void );
+    static char *get_lang_region( void );
+
+    Compose *mCompose;
+#endif
     QUimTextUtil *mTextUtil;
 
 protected:

Copied: trunk/qt/quiminputcontextplugin-qt4/quiminputcontext_compose.cpp (from 
r4979, /trunk/qt/immodule-quiminputcontext_compose.cpp)
==============================================================================
--- /trunk/qt/immodule-quiminputcontext_compose.cpp     (original)
+++ trunk/qt/quiminputcontextplugin-qt4/quiminputcontext_compose.cpp    Fri Sep 
21 03:43:05 2007
@@ -30,7 +30,10 @@
   SUCH DAMAGE.
 */
 
-#include <config.h>
+//#include <config.h>
+// FIXME: define via configure
+#define XLIB_DIR "/usr/share"
+#define strlcpy(dst, src, len) strcpy((dst), (src))
 
 #include <stdio.h>
 #include <ctype.h>
@@ -42,8 +45,8 @@
 
 #include "uim/uim.h"
 
-#include "immodule-quiminputcontext.h"
-#include "immodule-quiminputcontext_compose.h"
+#include "quiminputcontext.h"
+#include "quiminputcontext_compose.h"
 
 #include <qtextcodec.h>
 

Modified: trunk/qt/quiminputcontextplugin-qt4/quiminputcontextplugin.pro
==============================================================================
--- trunk/qt/quiminputcontextplugin-qt4/quiminputcontextplugin.pro      
(original)
+++ trunk/qt/quiminputcontextplugin-qt4/quiminputcontextplugin.pro      Fri Sep 
21 03:43:05 2007
@@ -12,6 +12,7 @@
 # Input
 HEADERS += qhelpermanager.h \
            quiminputcontext.h \
+           quiminputcontext_compose.h \
            plugin.h \
            candidatewindow.h \
            subwindow.h \
@@ -21,6 +22,7 @@
 SOURCES += plugin.cpp \
            qhelpermanager.cpp \
            quiminputcontext.cpp \
+           quiminputcontext_compose.cpp \
            candidatewindow.cpp \
            subwindow.cpp \
            quiminfomanager.cpp \

Reply via email to