From cad473c0975cfd98ebfca046cb8df2dc6ef77cf2 Mon Sep 17 00:00:00 2001 From: Eberhard Graether Date: Fri, 8 Jul 2016 12:39:10 +0200 Subject: [PATCH] started with delay --- src/lib_gui/qt/view/QtViewOverlay.cpp | 28 +++++++++++++++++++-------- src/lib_gui/qt/view/QtViewOverlay.h | 6 +++++- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/lib_gui/qt/view/QtViewOverlay.cpp b/src/lib_gui/qt/view/QtViewOverlay.cpp index 42ae2b71..3067c241 100644 --- a/src/lib_gui/qt/view/QtViewOverlay.cpp +++ b/src/lib_gui/qt/view/QtViewOverlay.cpp @@ -28,6 +28,20 @@ QtOverlay::QtOverlay(QWidget* parent) , m_count(rand() % 1000000) , m_size(40) { + m_timer = new QTimer(this); + QObject::connect(m_timer, SIGNAL(timeout()), this, SLOT(animate())); +} + +void QtOverlay::start() +{ + m_timer->start(FRAME_DELAY_MS); + show(); +} + +void QtOverlay::stop() +{ + m_timer->stop(); + hide(); } void QtOverlay::animate() @@ -87,8 +101,9 @@ QtViewOverlay::QtViewOverlay(QWidget* parent) m_parent->installEventFilter(new ResizeFilter(m_overlay)); - m_timer = new QTimer(m_overlay); - QObject::connect(m_timer, SIGNAL(timeout()), m_overlay, SLOT(animate())); + m_delayTimer = new QTimer(m_overlay); + m_delayTimer->setSingleShot(true); + QObject::connect(m_delayTimer, SIGNAL(timeout()), m_overlay, SLOT(start())); } void QtViewOverlay::showOverlay() @@ -103,14 +118,11 @@ void QtViewOverlay::hideOverlay() void QtViewOverlay::doShowOverlay() { - m_timer->start(QtOverlay::FRAME_DELAY_MS); - - m_overlay->show(); + m_delayTimer->start(500); } void QtViewOverlay::doHideOverlay() { - m_timer->stop(); - - m_overlay->hide(); + m_delayTimer->stop(); + m_overlay->stop(); } diff --git a/src/lib_gui/qt/view/QtViewOverlay.h b/src/lib_gui/qt/view/QtViewOverlay.h index 4ef2ae1b..215f911d 100644 --- a/src/lib_gui/qt/view/QtViewOverlay.h +++ b/src/lib_gui/qt/view/QtViewOverlay.h @@ -37,12 +37,16 @@ public: static const size_t FRAME_DELAY_MS = 25; public slots: + void start(); + void stop(); void animate(); protected: void paintEvent(QPaintEvent *event); private: + QTimer* m_timer; + size_t m_count; size_t m_size; }; @@ -63,7 +67,7 @@ private: QWidget* m_parent; QtOverlay* m_overlay; - QTimer* m_timer; + QTimer* m_delayTimer; QtThreadedFunctor m_showFunctor; QtThreadedFunctor m_hideFunctor;