Public Slots | Public Member Functions | Protected Slots | Protected Attributes

QmitkSliderNavigatorWidget Class Reference

#include <QmitkSliderNavigatorWidget.h>

Inheritance diagram for QmitkSliderNavigatorWidget:
Inheritance graph
[legend]
Collaboration diagram for QmitkSliderNavigatorWidget:
Collaboration graph
[legend]

List of all members.

Public Slots

void Refetch ()
 Updates the slider with the recent changes applied to the navigator.
void SetStepper (mitk::Stepper *stepper)
void ShowLabels (bool show)
void ShowLabelUnit (bool show)
 En-/disables displaying of the unit label (range will be displayed without unit if enabled).
void SetPos (int val)
void SetInverseDirection (bool inverseDirection)

Public Member Functions

 QmitkSliderNavigatorWidget (QWidget *parent=0, Qt::WindowFlags f=0)
QString GetLabelUnit ()
QString ClippedValueToString (float value)
 Converts the passed value to a QString representation.
QString GetMinValueLabel ()
 Returns range-minimum (displayed as label left of slider if enabled)
QString GetMaxValueLabel ()
int GetPos ()

Protected Slots

void slider_valueChanged (int)
void SetLabelValues (float min, float max)
 Set range minimum and maximum (displayed as labels left and right of slider if enabled)
void SetLabelValuesValid (bool minValid, bool maxValid)
void SetLabelUnit (const char *unit)
 Set range unit (e.g. mm or ms) which will be displayed below range labels if enabled.
void SetLabels ()
 Configure slider with labels according to range and unit settings.
void spinBox_valueChanged (int)

Protected Attributes

bool m_HasLabelUnit
bool m_MaxValueValid
bool m_MinValueValid
QString m_LabelUnit
mitk::Stepper::Pointer m_Stepper
bool m_InRefetch
bool m_HasLabels
float m_MinValue
float m_MaxValue
bool m_InverseDirection

Detailed Description

Definition at line 29 of file QmitkSliderNavigatorWidget.h.


Constructor & Destructor Documentation

QmitkSliderNavigatorWidget::QmitkSliderNavigatorWidget ( QWidget *  parent = 0,
Qt::WindowFlags  f = 0 
)

Definition at line 20 of file QmitkSliderNavigatorWidget.cpp.

References m_HasLabels, m_HasLabelUnit, m_InRefetch, m_InverseDirection, SetLabelValuesValid(), Ui_QmitkSliderNavigator::setupUi(), and ShowLabels().

 : QWidget(parent, f)
{
  this->setupUi(this);
  
  // this avoids trying to use m_Stepper until it is set to something != NULL 
  // (additionally to the avoiding recursions during refetching)
  m_InRefetch = true;

  // Hide slider labeling -- until it is explicitly activated
  this->ShowLabels( false );

  // Set label values as invalid (N/A)
  this->SetLabelValuesValid( false, false );

  m_HasLabels = false;
  m_HasLabelUnit = true;
  m_InverseDirection = false;
}

Member Function Documentation

QString QmitkSliderNavigatorWidget::ClippedValueToString ( float  value )

Converts the passed value to a QString representation.

If the value exceeds a certain maximum, "INF" (for "infinity") is displayed instead.

Definition at line 165 of file QmitkSliderNavigatorWidget.cpp.

Referenced by GetMaxValueLabel(), and GetMinValueLabel().

{
  if ( value < -10000000.0 )
  {
    return "-INF";
  }
  else if ( value > 10000000.0 )
  {
    return "+INF";
  }
  else
  {
    return QString::number( value, 'f', 2 );
  }
}
QString QmitkSliderNavigatorWidget::GetLabelUnit (  )

Definition at line 160 of file QmitkSliderNavigatorWidget.cpp.

References m_LabelUnit.

Referenced by SetLabels().

{
  return m_LabelUnit;
}
QString QmitkSliderNavigatorWidget::GetMaxValueLabel (  )

Definition at line 193 of file QmitkSliderNavigatorWidget.cpp.

References ClippedValueToString(), m_MaxValue, and m_MaxValueValid.

Referenced by SetLabels().

{
  if ( m_MaxValueValid )
  {
    return this->ClippedValueToString( m_MaxValue );
  }
  else
  {
    return "N/A";
  }
}
QString QmitkSliderNavigatorWidget::GetMinValueLabel (  )

Returns range-minimum (displayed as label left of slider if enabled)

Definition at line 181 of file QmitkSliderNavigatorWidget.cpp.

References ClippedValueToString(), m_MinValue, and m_MinValueValid.

Referenced by SetLabels().

{
  if ( m_MinValueValid )
  {
    return this->ClippedValueToString( m_MinValue );
  }
  else
  {
    return "N/A";
  }
}
int QmitkSliderNavigatorWidget::GetPos (  )

Definition at line 252 of file QmitkSliderNavigatorWidget.cpp.

References m_Stepper.

Referenced by QmitkSliceWidget::wheelEvent().

{
  return m_Stepper->GetPos();
}
void QmitkSliderNavigatorWidget::Refetch (  ) [slot]

Updates the slider with the recent changes applied to the navigator.

Intended to be called via event mechanism, e.g. if the connected mitk::Stepper is modified.

Definition at line 40 of file QmitkSliderNavigatorWidget.cpp.

References m_HasLabels, m_InRefetch, m_InverseDirection, Ui_QmitkSliderNavigator::m_Slider, Ui_QmitkSliderNavigator::m_SliderLabelLeft, Ui_QmitkSliderNavigator::m_SliderLabelRight, Ui_QmitkSliderNavigator::m_SpinBox, m_Stepper, SetLabels(), SetLabelUnit(), SetLabelValues(), and SetLabelValuesValid().

Referenced by slider_valueChanged(), and spinBox_valueChanged().

{
  if ( !m_InRefetch )
  {
    m_InRefetch = true;
    
    m_Slider->setMinimum( 0 );
    m_Slider->setMaximum( m_Stepper->GetSteps() - 1 );
    if (m_InverseDirection)
    {
      m_Slider->setValue( m_Stepper->GetSteps()-1-m_Stepper->GetPos() );
    }
    else
    {
      m_Slider->setValue( m_Stepper->GetPos() );
    }
    
    m_SpinBox->setMinimum( 0 );
    m_SpinBox->setMaximum( m_Stepper->GetSteps() - 1 );
    if (m_InverseDirection)
    {
      m_SpinBox->setValue( m_Stepper->GetSteps()-1-m_Stepper->GetPos() );
    }
    else
    {
      m_SpinBox->setValue( m_Stepper->GetPos() );
    }

    if ( m_Stepper->HasRange() && m_HasLabels )
    {
      // Show slider with labels according to below settings
      m_SliderLabelLeft->setHidden( false );
      m_SliderLabelRight->setHidden( false );
    
      if ( m_Stepper->HasValidRange() )
      {
        this->SetLabelValuesValid( true, true );
        this->SetLabelValues( 
          m_Stepper->GetRangeMin(),
          m_Stepper->GetRangeMax() );
      }
      else
      {
        this->SetLabelValuesValid( false, false );
      }

      if ( m_Stepper->HasUnitName() )
      {
        this->SetLabelUnit( m_Stepper->GetUnitName() );
      }
    }
    else
    {
      // Show slider without any labels
      m_SliderLabelLeft->setHidden( true );
      m_SliderLabelRight->setHidden( true );
    }
  
    // Update GUI according to above settings
    this->SetLabels();
    
    m_InRefetch=false;
  }
}
void QmitkSliderNavigatorWidget::SetInverseDirection ( bool  inverseDirection ) [slot]

Definition at line 265 of file QmitkSliderNavigatorWidget.cpp.

References m_InverseDirection.

Referenced by QmitkImageNavigatorView::CreateQtPartControl().

{
  m_InverseDirection = inverseDirection;
}
void QmitkSliderNavigatorWidget::SetLabels (  ) [protected, slot]

Configure slider with labels according to range and unit settings.

Definition at line 205 of file QmitkSliderNavigatorWidget.cpp.

References GetLabelUnit(), GetMaxValueLabel(), GetMinValueLabel(), m_HasLabelUnit, m_MaxValueValid, m_MinValueValid, Ui_QmitkSliderNavigator::m_SliderLabelLeft, Ui_QmitkSliderNavigator::m_SliderLabelRight, and m_Stepper.

Referenced by Refetch().

{
  QString minText = "<p align='center'><font size='2'>" 
    + this->GetMinValueLabel();

  QString maxText = "<p align='center'><font size='2'>" 
    + this->GetMaxValueLabel();
  
  if ( m_HasLabelUnit )
  {
    minText += "&nbsp;" + this->GetLabelUnit();
    maxText += "&nbsp;" + this->GetLabelUnit();
  }

  if ( m_MinValueValid )
  {
    minText += "<br>(pos&nbsp;0)";
  }

  if ( m_MaxValueValid )
  {
    maxText += "<br>(pos&nbsp;" + QString::number( m_Stepper->GetSteps() - 1 ) + ")";
  }

  minText += "</font></p>";
  maxText += "</font></p>";

  m_SliderLabelLeft->setText( minText );
  m_SliderLabelRight->setText( maxText );
}
void QmitkSliderNavigatorWidget::SetLabelUnit ( const char *  unit ) [protected, slot]

Set range unit (e.g. mm or ms) which will be displayed below range labels if enabled.

Definition at line 155 of file QmitkSliderNavigatorWidget.cpp.

References m_LabelUnit.

Referenced by Refetch().

{
  m_LabelUnit = unit;
}
void QmitkSliderNavigatorWidget::SetLabelValues ( float  min,
float  max 
) [protected, slot]

Set range minimum and maximum (displayed as labels left and right of slider if enabled)

Definition at line 143 of file QmitkSliderNavigatorWidget.cpp.

References m_MaxValue, m_MinValue, QuadProgPP::max(), and min.

Referenced by Refetch().

void QmitkSliderNavigatorWidget::SetLabelValuesValid ( bool  minValid,
bool  maxValid 
) [protected, slot]

Definition at line 149 of file QmitkSliderNavigatorWidget.cpp.

References m_MaxValueValid, and m_MinValueValid.

Referenced by QmitkSliderNavigatorWidget(), and Refetch().

{
  m_MinValueValid = minValid;
  m_MaxValueValid = maxValid;
}
void QmitkSliderNavigatorWidget::SetPos ( int  val ) [slot]

Definition at line 257 of file QmitkSliderNavigatorWidget.cpp.

References m_InRefetch, and m_Stepper.

Referenced by QmitkSliceWidget::wheelEvent().

{
  if (!m_InRefetch)    
  {
    m_Stepper->SetPos( val );
  }
}
void QmitkSliderNavigatorWidget::SetStepper ( mitk::Stepper stepper ) [slot]

Definition at line 106 of file QmitkSliderNavigatorWidget.cpp.

References m_InRefetch, and m_Stepper.

{
  m_Stepper = stepper;
  
  // this avoids trying to use m_Stepper until it is set to something != NULL 
  // (additionally to the avoiding recursions during refetching)
  m_InRefetch = (stepper==NULL);
}
void QmitkSliderNavigatorWidget::ShowLabels ( bool  show ) [slot]

Definition at line 133 of file QmitkSliderNavigatorWidget.cpp.

References m_HasLabels.

Referenced by QmitkSliderNavigatorWidget().

{
  m_HasLabels = show;
}
void QmitkSliderNavigatorWidget::ShowLabelUnit ( bool  show ) [slot]

En-/disables displaying of the unit label (range will be displayed without unit if enabled).

Definition at line 138 of file QmitkSliderNavigatorWidget.cpp.

References m_HasLabelUnit.

{
  m_HasLabelUnit = show;
}
void QmitkSliderNavigatorWidget::slider_valueChanged ( int   ) [protected, slot]

Definition at line 116 of file QmitkSliderNavigatorWidget.cpp.

References m_InRefetch, m_InverseDirection, Ui_QmitkSliderNavigator::m_Slider, m_Stepper, and Refetch().

{
  if (!m_InRefetch)
  {
    if (m_InverseDirection)
    {
      m_Stepper->SetPos(m_Stepper->GetSteps()-1-m_Slider->value());
    }
    else
    {
      m_Stepper->SetPos(m_Slider->value());
    }
    this->Refetch();
  }
}
void QmitkSliderNavigatorWidget::spinBox_valueChanged ( int   ) [protected, slot]

Definition at line 236 of file QmitkSliderNavigatorWidget.cpp.

References m_InRefetch, m_InverseDirection, Ui_QmitkSliderNavigator::m_SpinBox, m_Stepper, and Refetch().

{
  if(!m_InRefetch)
  {
    if (m_InverseDirection)
    {
      m_Stepper->SetPos( m_Stepper->GetSteps()-1-m_SpinBox->value() );
    }
    else
    {
      m_Stepper->SetPos( m_SpinBox->value() );
    }
    this->Refetch();
  }
}

Member Data Documentation

Definition at line 114 of file QmitkSliderNavigatorWidget.h.

Referenced by QmitkSliderNavigatorWidget(), Refetch(), and ShowLabels().

Definition at line 111 of file QmitkSliderNavigatorWidget.h.

Referenced by GetLabelUnit(), and SetLabelUnit().

Definition at line 116 of file QmitkSliderNavigatorWidget.h.

Referenced by GetMaxValueLabel(), and SetLabelValues().

Definition at line 109 of file QmitkSliderNavigatorWidget.h.

Referenced by GetMaxValueLabel(), SetLabels(), and SetLabelValuesValid().

Definition at line 115 of file QmitkSliderNavigatorWidget.h.

Referenced by GetMinValueLabel(), and SetLabelValues().

Definition at line 110 of file QmitkSliderNavigatorWidget.h.

Referenced by GetMinValueLabel(), SetLabels(), and SetLabelValuesValid().

mitk::Stepper::Pointer QmitkSliderNavigatorWidget::m_Stepper [protected]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines