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 \