Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "QmitkPrimitiveMovieNavigatorWidget.h"
00019
00020 QmitkPrimitiveMovieNavigatorWidget::QmitkPrimitiveMovieNavigatorWidget( QWidget* parent, Qt::WindowFlags fl )
00021 : QWidget( parent, fl )
00022 {
00023 m_Controls.setupUi(this);
00024
00025
00026 connect( m_Controls.m_SpinBox, SIGNAL( valueChanged(int) ), this, SLOT( spinBoxValueChanged(int) ) );
00027 connect( m_Controls.m_StopButton, SIGNAL( clicked() ), this, SLOT( stopButton_clicked() ) );
00028 connect( m_Controls.m_GoButton, SIGNAL( clicked() ), this, SLOT( goButton_clicked() ) );
00029 connect( m_Controls.m_TimerInterval, SIGNAL( valueChanged(int) ), this, SLOT( setTimerInterval(int) ) );
00030
00031
00032 m_InRefetch = true;
00033 m_Timer = new QTimer(this);
00034 m_TimerIntervalInMS = 120;
00035 connect(m_Timer, SIGNAL(timeout()), SLOT(next()) );
00036 }
00037
00038
00039
00040
00041 QmitkPrimitiveMovieNavigatorWidget::~QmitkPrimitiveMovieNavigatorWidget()
00042 {
00043
00044 }
00045
00046 void QmitkPrimitiveMovieNavigatorWidget::Refetch()
00047 {
00048 if(!m_InRefetch)
00049 {
00050 m_InRefetch=true;
00051 m_Controls.m_SpinBox->setMinimum( 0 );
00052 m_Controls.m_SpinBox->setMaximum( m_Stepper->GetSteps()-1 );
00053 m_Controls.m_SpinBox->setValue( m_Stepper->GetPos() );
00054 m_InRefetch=false;
00055 }
00056 }
00057
00058
00059 void QmitkPrimitiveMovieNavigatorWidget::SetStepper( mitk::Stepper * stepper)
00060 {
00061 m_Stepper = stepper;
00062 m_InRefetch = (stepper==NULL);
00063 }
00064
00065 void QmitkPrimitiveMovieNavigatorWidget::goButton_clicked()
00066 {
00067 if(!m_InRefetch && m_Stepper->GetSteps() > 0)
00068 {
00069 if(m_Timer->isActive()==false)
00070 {
00071 m_Timer->start(m_TimerIntervalInMS);
00072 }
00073 }
00074 }
00075
00076
00077 void QmitkPrimitiveMovieNavigatorWidget::stopButton_clicked()
00078 {
00079 m_Timer->stop();
00080 }
00081
00082
00083 void QmitkPrimitiveMovieNavigatorWidget::next()
00084 {
00085 if(!m_InRefetch)
00086 {
00087 if(m_Stepper->GetPos()==m_Stepper->GetSteps()-1)
00088 m_Stepper->First();
00089 else
00090 m_Stepper->Next();
00091 }
00092 }
00093
00094
00095 void QmitkPrimitiveMovieNavigatorWidget::spinBoxValueChanged(int)
00096 {
00097 if(!m_InRefetch)
00098 {
00099 m_Stepper->SetPos( m_Controls.m_SpinBox->value() );
00100 }
00101 }
00102
00103 int QmitkPrimitiveMovieNavigatorWidget::getTimerInterval()
00104 {
00105 return m_TimerIntervalInMS;
00106 }
00107
00108
00109 void QmitkPrimitiveMovieNavigatorWidget::setTimerInterval( int timerIntervalInMS )
00110 {
00111 if(timerIntervalInMS!=m_TimerIntervalInMS)
00112 {
00113 m_TimerIntervalInMS = timerIntervalInMS;
00114 if(m_Timer->isActive())
00115 {
00116 m_Timer->setInterval(m_TimerIntervalInMS);
00117 }
00118 }
00119 }