3 new revisions: Revision: d111770f01af Author: nogu.dev <[email protected]> Date: Sun Mar 4 03:02:18 2012 Log: * Add support for delay API to Qt4 immodule.... http://code.google.com/p/uim/source/detail?r=d111770f01af
Revision: 89ebef7ea04e Author: nogu.dev <[email protected]> Date: Sun Mar 4 03:46:34 2012 Log: * qt4/immodule/abstractcandidatewindow.cpp... http://code.google.com/p/uim/source/detail?r=89ebef7ea04e Revision: e35a58ea1077 Author: nogu.dev <[email protected]> Date: Sun Mar 4 03:54:36 2012 Log: * qt4/immodule/quiminputcontext.h... http://code.google.com/p/uim/source/detail?r=e35a58ea1077 ============================================================================== Revision: d111770f01af Author: nogu.dev <[email protected]> Date: Sun Mar 4 03:02:18 2012 Log: * Add support for delay API to Qt4 immodule. * qt4/immodule/abstractcandidatewindow.cpp - (AbstractCandidateWindow::AbstractCandidateWindow): Add timer. - (AbstractCandidateWindow::deactivateCandwin): Stop timer first. - (AbstractCandidateWindow::candidateActivate): Ditto. - (AbstractCandidateWindow::candidateActivateWithDelay): New function. - (AbstractCandidateWindow::timerDone): New function. * qt4/immodule/abstractcandidatewindow.h - (AbstractCandidateWindow::candidateActivateWithDelay): New function. - (AbstractCandidateWindow::timerDone): New function. * qt4/immodule/quiminputcontext.cpp - (QUimInputContext::createUimContext): Call uim_set_delay_candidate_selector_cb(). - (QUimInputContext::cand_activate_with_delay_cb): New function. * qt4/immodule/quiminputcontext.h - (QUimInputContext): Declare QUimInputContext::cand_activate_with_delay_cb(). http://code.google.com/p/uim/source/detail?r=d111770f01af Modified: /qt4/immodule/abstractcandidatewindow.cpp /qt4/immodule/abstractcandidatewindow.h /qt4/immodule/quiminputcontext.cpp /qt4/immodule/quiminputcontext.h ======================================= --- /qt4/immodule/abstractcandidatewindow.cpp Wed Jan 11 00:17:24 2012 +++ /qt4/immodule/abstractcandidatewindow.cpp Sun Mar 4 03:02:18 2012 @@ -32,6 +32,7 @@ */ #include "abstractcandidatewindow.h" +#include <QtCore/QTimer> #include <QtGui/QApplication> #include <QtGui/QDesktopWidget> #include <QtGui/QLabel> @@ -57,6 +58,12 @@ // setup NumberLabel numLabel = new QLabel; numLabel->adjustSize(); + +#ifdef UIM_QT_USE_DELAY + m_delayTimer = new QTimer(this); + m_delayTimer->setSingleShot(true); + connect(m_delayTimer, SIGNAL(timeout()), this, SLOT(timerDone())); +#endif /* !UIM_QT_USE_DELAY */ } AbstractCandidateWindow::~AbstractCandidateWindow() @@ -71,6 +78,10 @@ void AbstractCandidateWindow::deactivateCandwin() { +#ifdef UIM_QT_USE_DELAY + m_delayTimer->stop(); +#endif /* !UIM_QT_USE_DELAY */ + hide(); clearCandidates(); } @@ -124,6 +135,10 @@ void AbstractCandidateWindow::candidateActivate(int nr, int displayLimit) { +#ifdef UIM_QT_USE_DELAY + m_delayTimer->stop(); +#endif /* !UIM_QT_USE_DELAY */ + QList<uim_candidate> list; #if !UIM_QT_USE_NEW_PAGE_HANDLING @@ -153,6 +168,14 @@ #endif /* !UIM_QT_USE_NEW_PAGE_HANDLING */ popup(); } + +#ifdef UIM_QT_USE_DELAY +void AbstractCandidateWindow::candidateActivateWithDelay(int delay) +{ + m_delayTimer->stop(); + (delay > 0) ? m_delayTimer->start(delay * 1000) : timerDone(); +} +#endif /* !UIM_QT_USE_DELAY */ void AbstractCandidateWindow::candidateSelect(int index) { @@ -271,6 +294,25 @@ } #endif /* UIM_QT_USE_NEW_PAGE_HANDLING */ +#ifdef UIM_QT_USE_DELAY +void AbstractCandidateWindow::timerDone() +{ + int nr = -1; + int display_limit = -1; + int selected_index = -1; + uim_delay_activating(ic->uimContext(), &nr, &display_limit, + &selected_index); + if (nr <= 0) { + return; + } + candidateActivate(nr, display_limit); + // TODO: ic->candwinIsActive = true; + if (selected_index >= 0) { + candidateSelect(selected_index); + } +} +#endif /* !UIM_QT_USE_DELAY */ + void AbstractCandidateWindow::setCandidates(int dl, const QList<uim_candidate> &candidates) { ======================================= --- /qt4/immodule/abstractcandidatewindow.h Sun Mar 4 01:12:45 2012 +++ /qt4/immodule/abstractcandidatewindow.h Sun Mar 4 03:02:18 2012 @@ -40,8 +40,11 @@ // enable per page candidates handling #define UIM_QT_USE_NEW_PAGE_HANDLING 1 +// enable delay showing candidate window +#define UIM_QT_USE_DELAY 1 class QLabel; +class QTimer; class QUimInputContext; @@ -65,6 +68,9 @@ void setQUimInputContext(QUimInputContext *m_ic) { ic = m_ic; } void candidateActivate(int nr, int displayLimit); +#ifdef UIM_QT_USE_DELAY + void candidateActivateWithDelay(int delay); +#endif /* !UIM_QT_USE_DELAY */ void candidateSelect(int index); void candidateShiftPage(bool forward); @@ -95,6 +101,11 @@ QList<bool> pageFilled; #endif +#ifdef UIM_QT_USE_DELAY + private slots: + void timerDone(); +#endif /* !UIM_QT_USE_DELAY */ + private: void setCandidates(int displayLimit, const QList<uim_candidate> &candidates); @@ -115,6 +126,11 @@ #endif // config bool isAlwaysLeft; + +#ifdef UIM_QT_USE_DELAY + // timer for delay API + QTimer *m_delayTimer; +#endif /* !UIM_QT_USE_DELAY */ }; #endif /* Not def: UIM_QT4_IMMODULE_ABSTRACT_CANDIDATE_WINDOW_H */ ======================================= --- /qt4/immodule/quiminputcontext.cpp Wed Jan 11 00:17:24 2012 +++ /qt4/immodule/quiminputcontext.cpp Sun Mar 4 03:02:18 2012 @@ -176,6 +176,11 @@ QUimTextUtil::acquire_text_cb, QUimTextUtil::delete_text_cb); +#if UIM_QT_USE_DELAY + uim_set_delay_candidate_selector_cb( uc, + QUimInputContext::cand_activate_with_delay_cb ); +#endif /* !UIM_QT_USE_DELAY */ + uim_prop_list_update( uc ); return uc; @@ -629,6 +634,14 @@ QUimInputContext *ic = static_cast<QUimInputContext*>( ptr ); ic->switch_system_global_im( name ); } + +#if UIM_QT_USE_DELAY +void QUimInputContext::cand_activate_with_delay_cb( void *ptr, int delay ) +{ + QUimInputContext *ic = static_cast<QUimInputContext*>( ptr ); + ic->cwin->candidateActivateWithDelay( delay ); +} +#endif /* !UIM_QT_USE_DELAY */ void QUimInputContext::commitString( const QString& str ) { ======================================= --- /qt4/immodule/quiminputcontext.h Wed Jan 11 00:17:24 2012 +++ /qt4/immodule/quiminputcontext.h Sun Mar 4 03:02:18 2012 @@ -137,6 +137,8 @@ //imsw static void switch_app_global_im_cb( void *ptr, const char *str ); static void switch_system_global_im_cb( void *ptr, const char *str ); + //delay + static void cand_activate_with_delay_cb( void *ptr, int delay ); /* real functions for callbacks (correspond order) */ //preedit void clearPreedit(); ============================================================================== Revision: 89ebef7ea04e Author: nogu.dev <[email protected]> Date: Sun Mar 4 03:46:34 2012 Log: * qt4/immodule/abstractcandidatewindow.cpp - (AbstractCandidateWindow::candidateActivate): Call QUimInputContext::setActive(). - (AbstractCandidateWindow::timerDone): Remove comment. * qt4/immodule/quiminputcontext.cpp - (QUimInputContext::cand_activate_cb): Don't set candwinIsActive here. * qt4/immodule/quiminputcontext.h - (QUimInputContext::setActive): New function. http://code.google.com/p/uim/source/detail?r=89ebef7ea04e Modified: /qt4/immodule/abstractcandidatewindow.cpp /qt4/immodule/quiminputcontext.cpp /qt4/immodule/quiminputcontext.h ======================================= --- /qt4/immodule/abstractcandidatewindow.cpp Sun Mar 4 03:02:18 2012 +++ /qt4/immodule/abstractcandidatewindow.cpp Sun Mar 4 03:46:34 2012 @@ -167,6 +167,7 @@ setPage(0); #endif /* !UIM_QT_USE_NEW_PAGE_HANDLING */ popup(); + ic->setActive(); } #ifdef UIM_QT_USE_DELAY @@ -306,7 +307,6 @@ return; } candidateActivate(nr, display_limit); - // TODO: ic->candwinIsActive = true; if (selected_index >= 0) { candidateSelect(selected_index); } ======================================= --- /qt4/immodule/quiminputcontext.cpp Sun Mar 4 03:02:18 2012 +++ /qt4/immodule/quiminputcontext.cpp Sun Mar 4 03:46:34 2012 @@ -589,7 +589,6 @@ QUimInputContext *ic = static_cast<QUimInputContext*>( ptr ); ic->cwin->candidateActivate( nr, displayLimit ); - ic->candwinIsActive = true; } void QUimInputContext::cand_select_cb( void *ptr, int index ) ======================================= --- /qt4/immodule/quiminputcontext.h Sun Mar 4 03:02:18 2012 +++ /qt4/immodule/quiminputcontext.h Sun Mar 4 03:46:34 2012 @@ -107,6 +107,8 @@ void restoreContext(); void updateIndicator( const QString &str ); + + void setActive() { candwinIsActive = true; } protected: uim_context createUimContext( const char *imname ); ============================================================================== Revision: e35a58ea1077 Author: nogu.dev <[email protected]> Date: Sun Mar 4 03:54:36 2012 Log: * qt4/immodule/quiminputcontext.h - (QUimInputContext::setCandwinActive): Rename setActive(). * qt4/immodule/abstractcandidatewindow.cpp - (AbstractCandidateWindow::candidateActivate): Follow change in QUimInputContext. http://code.google.com/p/uim/source/detail?r=e35a58ea1077 Modified: /qt4/immodule/abstractcandidatewindow.cpp /qt4/immodule/quiminputcontext.h ======================================= --- /qt4/immodule/abstractcandidatewindow.cpp Sun Mar 4 03:46:34 2012 +++ /qt4/immodule/abstractcandidatewindow.cpp Sun Mar 4 03:54:36 2012 @@ -167,7 +167,7 @@ setPage(0); #endif /* !UIM_QT_USE_NEW_PAGE_HANDLING */ popup(); - ic->setActive(); + ic->setCandwinActive(); } #ifdef UIM_QT_USE_DELAY ======================================= --- /qt4/immodule/quiminputcontext.h Sun Mar 4 03:46:34 2012 +++ /qt4/immodule/quiminputcontext.h Sun Mar 4 03:54:36 2012 @@ -108,7 +108,7 @@ void updateIndicator( const QString &str ); - void setActive() { candwinIsActive = true; } + void setCandwinActive() { candwinIsActive = true; } protected: uim_context createUimContext( const char *imname );
