started with delay

This commit is contained in:
Eberhard Graether
2016-07-08 14:37:49 +02:00
parent 89264d97bb
commit cad473c097
2 changed files with 25 additions and 9 deletions
+20 -8
View File
@@ -28,6 +28,20 @@ QtOverlay::QtOverlay(QWidget* parent)
, m_count(rand() % 1000000) , m_count(rand() % 1000000)
, m_size(40) , 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() void QtOverlay::animate()
@@ -87,8 +101,9 @@ QtViewOverlay::QtViewOverlay(QWidget* parent)
m_parent->installEventFilter(new ResizeFilter(m_overlay)); m_parent->installEventFilter(new ResizeFilter(m_overlay));
m_timer = new QTimer(m_overlay); m_delayTimer = new QTimer(m_overlay);
QObject::connect(m_timer, SIGNAL(timeout()), m_overlay, SLOT(animate())); m_delayTimer->setSingleShot(true);
QObject::connect(m_delayTimer, SIGNAL(timeout()), m_overlay, SLOT(start()));
} }
void QtViewOverlay::showOverlay() void QtViewOverlay::showOverlay()
@@ -103,14 +118,11 @@ void QtViewOverlay::hideOverlay()
void QtViewOverlay::doShowOverlay() void QtViewOverlay::doShowOverlay()
{ {
m_timer->start(QtOverlay::FRAME_DELAY_MS); m_delayTimer->start(500);
m_overlay->show();
} }
void QtViewOverlay::doHideOverlay() void QtViewOverlay::doHideOverlay()
{ {
m_timer->stop(); m_delayTimer->stop();
m_overlay->stop();
m_overlay->hide();
} }
+5 -1
View File
@@ -37,12 +37,16 @@ public:
static const size_t FRAME_DELAY_MS = 25; static const size_t FRAME_DELAY_MS = 25;
public slots: public slots:
void start();
void stop();
void animate(); void animate();
protected: protected:
void paintEvent(QPaintEvent *event); void paintEvent(QPaintEvent *event);
private: private:
QTimer* m_timer;
size_t m_count; size_t m_count;
size_t m_size; size_t m_size;
}; };
@@ -63,7 +67,7 @@ private:
QWidget* m_parent; QWidget* m_parent;
QtOverlay* m_overlay; QtOverlay* m_overlay;
QTimer* m_timer; QTimer* m_delayTimer;
QtThreadedFunctor<void> m_showFunctor; QtThreadedFunctor<void> m_showFunctor;
QtThreadedFunctor<void> m_hideFunctor; QtThreadedFunctor<void> m_hideFunctor;