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
This commit is contained in:
Pavel Sanda 2008-02-02 03:05:54 +00:00
parent 9702f66938
commit 65c0ff6e6b
2 changed files with 26 additions and 6 deletions

View File

@ -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()));
cursor_timeout_.start();
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);
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();
}

View File

@ -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_;
///