kzkの日記: Re: 根回し 2
日記 by
kzk
Yamakenさんの根回しへの返信。
コメントだとパッチの部分でフィルターに引っかかる。
スラド使えねぇなぁと思った。
>・XIMではなくQMultiInputContextをデフォルトIMにしたいと考えてます。普通の人はそのままそれを使い続けるという前提で。ただQMultiInputContext上でのデフォルトも指定できないとまずいんで、うまい解決策がないか考え中です
前半は考えが完全に一致してます。後半は考えていませんでした。
とりあえず突発で思い付いたのは、
1.QUimInputContextをQMultiInputContextのサブクラスにする。
これだと、uim-qtがslaveとしてuim-qtを持つことも有るので非効率的かも。
もしくは。
2.
QMultiInputContextがデフォルトのIMを決定する為にqtrcを用いる.
↓みたいな感じで。
Index: kernel/qapplication_x11.cpp
===================================================================
--- kernel/qapplication_x11.cpp (revision 29)
+++ kernel/qapplication_x11.cpp (working copy)
@@ -527,7 +527,7 @@
/*!
This code initializes defaultIM of a static member variable of QApplication.
*/
-QString QApplication::defaultIM = "xim";
+QString QApplication::defaultIM = "multi";
/*!
@@ -1017,13 +1017,6 @@
xim_preferred_style = XIMPreeditArea | XIMStatusArea;
else if ( ximInputStyle == "root" )
xim_preferred_style = XIMPreeditNothing | XIMStatusNothing;
-
- /*
- The name of input method set up as a default is acquired from
- a configuration file. However, If not set up, "xim" become
- the name of default input method.
- */
- defaultIM = settings.readEntry( "/qt/DefaultInputMethod", QObject::trUtf8( "xim" ) );
#endif
if (update_timestamp) {
Index: input/qmultiinputcontext.cpp
===================================================================
--- input/qmultiinputcontext.cpp (revision 29)
+++ input/qmultiinputcontext.cpp (working copy)
@@ -49,6 +49,13 @@
cachedFocusWidget( 0 ), cachedHolderWidget( 0 ),
beIndirectlyConnected( FALSE ), popup( NULL ), lastCreatedIMKey( QString::null )
{
+ /*
+ The name of input method set up as a default is acquired from
+ a configuration file. However, If not set up, "xim" become
+ the name of default input method.
+ */
+ QString defaultIM = settings.readEntry( "/qt/DefaultInputMethod", QObject::trUtf8( "xim" ) );
+ changeInputMethod( defaultIM );
}
QMultiInputContext::~QMultiInputContext()
>・dead/multi keys対応はtemporary solutionとしてQtUimで実装してみるのがいいと思います。SCIMとIIIMFでは不要(になった)みたいなんで
了解す。
とりあえず日曜までには完成させたい所です。
> あといくつかTODOが片付いたらその辺の開発/議論に合流するんで、とりあえずSimpleInputContextをtrunkにcommitしといてください。
うぃ。Qt4も有りますしね。
なんかすいません、Yamakenさんの負荷が高くて。。。
コメントだとパッチの部分でフィルターに引っかかる。
スラド使えねぇなぁと思った。
>・XIMではなくQMultiInputContextをデフォルトIMにしたいと考えてます。普通の人はそのままそれを使い続けるという前提で。ただQMultiInputContext上でのデフォルトも指定できないとまずいんで、うまい解決策がないか考え中です
前半は考えが完全に一致してます。後半は考えていませんでした。
とりあえず突発で思い付いたのは、
1.QUimInputContextをQMultiInputContextのサブクラスにする。
これだと、uim-qtがslaveとしてuim-qtを持つことも有るので非効率的かも。
もしくは。
2.
QMultiInputContextがデフォルトのIMを決定する為にqtrcを用いる.
↓みたいな感じで。
Index: kernel/qapplication_x11.cpp
===================================================================
--- kernel/qapplication_x11.cpp (revision 29)
+++ kernel/qapplication_x11.cpp (working copy)
@@ -527,7 +527,7 @@
/*!
This code initializes defaultIM of a static member variable of QApplication.
*/
-QString QApplication::defaultIM = "xim";
+QString QApplication::defaultIM = "multi";
/*!
@@ -1017,13 +1017,6 @@
xim_preferred_style = XIMPreeditArea | XIMStatusArea;
else if ( ximInputStyle == "root" )
xim_preferred_style = XIMPreeditNothing | XIMStatusNothing;
-
- /*
- The name of input method set up as a default is acquired from
- a configuration file. However, If not set up, "xim" become
- the name of default input method.
- */
- defaultIM = settings.readEntry( "/qt/DefaultInputMethod", QObject::trUtf8( "xim" ) );
#endif
if (update_timestamp) {
Index: input/qmultiinputcontext.cpp
===================================================================
--- input/qmultiinputcontext.cpp (revision 29)
+++ input/qmultiinputcontext.cpp (working copy)
@@ -49,6 +49,13 @@
cachedFocusWidget( 0 ), cachedHolderWidget( 0 ),
beIndirectlyConnected( FALSE ), popup( NULL ), lastCreatedIMKey( QString::null )
{
+ /*
+ The name of input method set up as a default is acquired from
+ a configuration file. However, If not set up, "xim" become
+ the name of default input method.
+ */
+ QString defaultIM = settings.readEntry( "/qt/DefaultInputMethod", QObject::trUtf8( "xim" ) );
+ changeInputMethod( defaultIM );
}
QMultiInputContext::~QMultiInputContext()
>・dead/multi keys対応はtemporary solutionとしてQtUimで実装してみるのがいいと思います。SCIMとIIIMFでは不要(になった)みたいなんで
了解す。
とりあえず日曜までには完成させたい所です。
> あといくつかTODOが片付いたらその辺の開発/議論に合流するんで、とりあえずSimpleInputContextをtrunkにcommitしといてください。
うぃ。Qt4も有りますしね。
なんかすいません、Yamakenさんの負荷が高くて。。。
multi (スコア:1)
技術的にはDefaultInputMethodForMultiを増設して2段構えにするのが一番シンプルなんですが、ユーザ的には理解不能。かといってQMultiInputContextを特別扱いしてEnableMultiInputContextとDefaultInputMethodという組み合わせではIM選択機構のpluggabilityが失われるし。
柔軟性の観点からuimとの抱き合わせもNGです。
というわけで悩ましいです。何かいいアイディア思い付いてください。
ちなみに私の負荷は気にしなくて大丈夫っすよ。コード書きは少ないけど割と楽しい作業だし。打ち上げももうすぐ?だし。
Re:multi (スコア:1)