From 65c0ff6e6bcec34e310fb7764bd78b712e8f2201 Mon Sep 17 00:00:00 2001 From: Pavel Sanda Date: Sat, 2 Feb 2008 03:05:54 +0000 Subject: [PATCH] Let the cursor blink frequency depend on qt settings. Move checking of forked processes into independent timer. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22749 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/frontends/qt4/GuiWorkArea.cpp | 25 ++++++++++++++++++++----- src/frontends/qt4/GuiWorkArea.h | 7 ++++++- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/src/frontends/qt4/GuiWorkArea.cpp b/src/frontends/qt4/GuiWorkArea.cpp index e31d15a55a..524494788c 100644 --- a/src/frontends/qt4/GuiWorkArea.cpp +++ b/src/frontends/qt4/GuiWorkArea.cpp @@ -197,11 +197,20 @@ GuiWorkArea::GuiWorkArea(Buffer & buffer, GuiView & lv) { buffer.workAreaManager().add(this); // Setup the signals - cursor_timeout_.setInterval(400); connect(&cursor_timeout_, SIGNAL(timeout()), this, SLOT(toggleCursor())); + + int const time = QApplication::cursorFlashTime() / 2; + if (time > 0) { + cursor_timeout_.setInterval(time); + cursor_timeout_.start(); + } else + // let's initialize this just to be safe + cursor_timeout_.setInterval(500); - cursor_timeout_.start(); + general_timer_.setInterval(500); + connect(&general_timer_, SIGNAL(timeout()), + this, SLOT(handleRegularEvents())); screen_ = QPixmap(viewport()->width(), viewport()->height()); cursor_ = new frontend::CursorWidget(); @@ -276,6 +285,11 @@ void GuiWorkArea::stopBlinkingCursor() void GuiWorkArea::startBlinkingCursor() { showCursor(); + //we're not supposed to cache this value. + int const time = QApplication::cursorFlashTime() / 2; + if (time <= 0) + return; + cursor_timeout_.setInterval(time); cursor_timeout_.start(); } @@ -446,10 +460,11 @@ void GuiWorkArea::toggleCursor() hideCursor(); else showCursor(); +} - // Use this opportunity to deal with any child processes that - // have finished but are waiting to communicate this fact - // to the rest of LyX. + +void GuiWorkArea::handleRegularEvents() +{ ForkedCallsController::handleCompletedProcesses(); } diff --git a/src/frontends/qt4/GuiWorkArea.h b/src/frontends/qt4/GuiWorkArea.h index 313e5fbc87..ed54cb87a6 100644 --- a/src/frontends/qt4/GuiWorkArea.h +++ b/src/frontends/qt4/GuiWorkArea.h @@ -142,7 +142,8 @@ private Q_SLOTS: void doubleClickTimeout(); /// toggle the cursor's visibility void toggleCursor(); - + /// events to be triggered by general_timer_ should go here + void handleRegularEvents(); /// close this work area. /// Slot for Buffer::closing signal. void close(); @@ -213,6 +214,10 @@ private: /// QTimer cursor_timeout_; + /// this timer is used for any regular events one wants to + /// perform. at present it is used to check if forked processes + /// are done. + QTimer general_timer_; /// SyntheticMouseEvent synthetic_mouse_event_; ///