diff options
Diffstat (limited to 'client/collapser.cc')
-rw-r--r-- | client/collapser.cc | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/client/collapser.cc b/client/collapser.cc index ff1ab69..7d95946 100644 --- a/client/collapser.cc +++ b/client/collapser.cc @@ -36,6 +36,11 @@ Collapser::Collapser(QWidget *collapsed, QWidget *expanded, bool setcollapsed) this->collapsed = NULL; this->expanded = NULL; + timer = new QTimer(this); + timer->setSingleShot(true); + timer->setInterval(ANIM_INTERVAL); + connect(timer, SIGNAL(timeout()), this, SLOT(anim())); + setLayout(new QHBoxLayout()); layout()->setContentsMargins(0,0,0,0); @@ -110,10 +115,10 @@ void Collapser::collapse() emit collapsing(); t_anim.start(); + printf("(%d) collapsing\n", (int)this); is_collapsed = true; - killTimer(timer_id); - timer_id = startTimer(ANIM_INTERVAL); + timer->start(); } void Collapser::expand() @@ -121,6 +126,7 @@ void Collapser::expand() emit expanding(); t_anim.start(); + printf("(%d) expanding\n", (int)this); // show expanded if(collapsed) { @@ -134,8 +140,7 @@ void Collapser::expand() } is_collapsed = false; - killTimer(timer_id); - timer_id = startTimer(ANIM_INTERVAL); + timer->start(); } void Collapser::toggleCollapse() @@ -158,9 +163,10 @@ void Collapser::anim() e_height = sz.height(); } - killTimer(timer_id); + // killTimer(timer_id); double x = (double)(t_anim.elapsed()) / (double)ANIM_TIME; + printf("(%d) x: %f\n", (int)this, x); double y = 1; if(x < 1) { @@ -174,7 +180,9 @@ void Collapser::anim() } setFixedHeight(height); - timer_id = startTimer(ANIM_INTERVAL); + // timer_id = startTimer(ANIM_INTERVAL); + timer->start(); + } else { if(is_collapsed) { @@ -196,8 +204,9 @@ void Collapser::anim() } } - +/* void Collapser::timerEvent(QTimerEvent *) { anim(); } +*/ |