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 );

Reply via email to