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();  } +*/ | 
