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

QmitkNumberPropertySlider Class Reference
[Widgets]

#include <QmitkNumberPropertySlider.h>

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

List of all members.

Public Member Functions

 QmitkNumberPropertySlider (mitk::IntProperty *, QWidget *parent, const char *name=0)
 QmitkNumberPropertySlider (mitk::FloatProperty *, QWidget *parent, const char *name=0)
 QmitkNumberPropertySlider (mitk::DoubleProperty *, QWidget *parent, const char *name=0)
virtual ~QmitkNumberPropertySlider ()
short getDecimalPlaces () const
void setDecimalPlaces (short)
bool getShowPercent () const
void setShowPercent (bool)
int minValue () const
void setMinValue (int)
int maxValue () const
void setMaxValue (int)
double doubleValue () const
void setDoubleValue (double)

Protected Slots

void onValueChanged (int)

Protected Member Functions

void initialize ()
virtual void PropertyChanged ()
virtual void PropertyRemoved ()
void DisplayNumber ()

Protected Attributes

union {
   mitk::GenericProperty< int > *   m_IntProperty
   mitk::GenericProperty< float > *   m_FloatProperty
   mitk::GenericProperty< double > *   m_DoubleProperty
}; 
const int m_DataType
short m_DecimalPlaces
double m_FactorPropertyToSlider
double m_FactorSliderToDisplay
bool m_ShowPercents

Properties

short decimalPlaces
bool showPercent
int minValue
int maxValue

Detailed Description

Definition at line 26 of file QmitkNumberPropertySlider.h.


Constructor & Destructor Documentation

QmitkNumberPropertySlider::QmitkNumberPropertySlider ( mitk::IntProperty property,
QWidget *  parent,
const char *  name = 0 
)

Definition at line 28 of file QmitkNumberPropertySlider.cpp.

References initialize().

: QSlider( parent ),
  PropertyEditor( property ),
  m_IntProperty(property),
  m_DataType(DT_INT)
{
  initialize();
}
QmitkNumberPropertySlider::QmitkNumberPropertySlider ( mitk::FloatProperty property,
QWidget *  parent,
const char *  name = 0 
)

Definition at line 37 of file QmitkNumberPropertySlider.cpp.

References initialize().

: QSlider( parent ),
  PropertyEditor( property ),
  m_FloatProperty(property),
  m_DataType(DT_FLOAT)
{
  initialize();
}
QmitkNumberPropertySlider::QmitkNumberPropertySlider ( mitk::DoubleProperty property,
QWidget *  parent,
const char *  name = 0 
)

Definition at line 46 of file QmitkNumberPropertySlider.cpp.

References initialize().

: QSlider( parent ),
  PropertyEditor( property ),
  m_DoubleProperty(property),
  m_DataType(DT_DOUBLE)
{
  initialize();
}
QmitkNumberPropertySlider::~QmitkNumberPropertySlider (  ) [virtual]

Definition at line 55 of file QmitkNumberPropertySlider.cpp.

{
}

Member Function Documentation

void QmitkNumberPropertySlider::DisplayNumber (  ) [protected]

Definition at line 246 of file QmitkNumberPropertySlider.cpp.

References DT_DOUBLE, DT_FLOAT, DT_INT, mitk::GenericProperty< T >::GetValue(), m_DataType, m_DoubleProperty, m_FloatProperty, m_IntProperty, mitk::PropertyEditor::m_Property, and setDoubleValue().

Referenced by initialize(), PropertyChanged(), setDecimalPlaces(), and setShowPercent().

{
  if (! m_Property ) return;

  m_SelfChangeLock = true;
  switch (m_DataType)
  {
        /*
    case DT_SHORT:
      {
        short s = m_ShortProperty->GetValue();
        QSlider::setValue( s );
        break;
      }
        */
    case DT_INT:
      {
        int i = m_IntProperty->GetValue();
        QSlider::setValue( i );
        break;
      }
    case DT_FLOAT:
      {
        float f = m_FloatProperty->GetValue();
        setDoubleValue( f );
        break;
      }
    case DT_DOUBLE:
      {
        double d = m_DoubleProperty->GetValue();
        setDoubleValue( d );
        break;
      }
    default:
      break;
  }
  m_SelfChangeLock = false;
}
double QmitkNumberPropertySlider::doubleValue (  ) const

Definition at line 178 of file QmitkNumberPropertySlider.cpp.

References m_FactorPropertyToSlider.

{
  return static_cast<double>((QSlider::value()) / m_FactorPropertyToSlider );
}
short QmitkNumberPropertySlider::getDecimalPlaces (  ) const

Definition at line 111 of file QmitkNumberPropertySlider.cpp.

References m_DecimalPlaces.

{
  return m_DecimalPlaces;
}
bool QmitkNumberPropertySlider::getShowPercent (  ) const

Definition at line 132 of file QmitkNumberPropertySlider.cpp.

References m_ShowPercents.

{
  return m_ShowPercents;
}
void QmitkNumberPropertySlider::initialize (  ) [protected]

Definition at line 59 of file QmitkNumberPropertySlider.cpp.

References DisplayNumber(), m_DecimalPlaces, m_FactorPropertyToSlider, m_FactorSliderToDisplay, m_ShowPercents, and onValueChanged().

Referenced by QmitkNumberPropertySlider().

{ // only to be called from constructors
  
  // spinbox settings
  //setValidator(0);
  //setSuffix("");
  setOrientation( Qt::Horizontal );
  
  // protected
  m_DecimalPlaces = 0;
  m_FactorPropertyToSlider = 1.0;
  m_FactorSliderToDisplay = 1.0;
  m_ShowPercents = false;
 
  // private
  m_SelfChangeLock = false;

  connect( this, SIGNAL(valueChanged(int)), this, SLOT(onValueChanged(int)) );
 
  // display current value of our property
  DisplayNumber();
}
int QmitkNumberPropertySlider::maxValue (  ) const
int QmitkNumberPropertySlider::minValue (  ) const
void QmitkNumberPropertySlider::onValueChanged ( int  value ) [protected, slot]

Definition at line 189 of file QmitkNumberPropertySlider.cpp.

References mitk::PropertyObserver::BeginModifyProperty(), DT_DOUBLE, DT_FLOAT, DT_INT, mitk::PropertyObserver::EndModifyProperty(), mitk::RenderingManager::GetInstance(), m_DataType, m_DoubleProperty, m_FactorPropertyToSlider, m_FloatProperty, m_IntProperty, ROUND, and mitk::GenericProperty< T >::SetValue().

Referenced by initialize().

{
  if (m_SelfChangeLock) return; // valueChanged is even emitted, when this widget initiates a change to its value
                                // this may be useful some times, but in this use, it would be wrong:
                                //   (A) is an editor with 3 decimal places
                                //   (B) is an editor with 2 decimal places
                                //   User changes A's displayed value to 4.002
                                //   A's onValueChanged gets called, sets the associated Property to 4.002
                                //   B's onPropertyChanged gets called, sets its display to 4.00
                                //   B's onValueChanged gets called and sets the associated Property to 4.00
                                //   A's onPropertyChanged gets called, sets its display to 4.000

  BeginModifyProperty();
  
  double newValue( value / m_FactorPropertyToSlider );
    
  switch (m_DataType)
  {
        /*
    case DT_SHORT:
      {
        m_ShortProperty->SetValue(ROUND_SHORT(newValue));
        break;
      }
    */
    case DT_INT:
      {
        m_IntProperty->SetValue(ROUND(newValue));
        break;
      }
    case DT_FLOAT:
      {
        m_FloatProperty->SetValue(newValue);
        break;
      }
    case DT_DOUBLE:
      {
        m_DoubleProperty->SetValue(newValue);
        break;
      }
  }
  mitk::RenderingManager::GetInstance()->RequestUpdateAll();
  
  EndModifyProperty();
}
void QmitkNumberPropertySlider::PropertyChanged (  ) [protected, virtual]
void QmitkNumberPropertySlider::PropertyRemoved (  ) [protected, virtual]

Implements mitk::PropertyObserver.

Definition at line 241 of file QmitkNumberPropertySlider.cpp.

References mitk::PropertyEditor::m_Property.

{
  m_Property = NULL;
}
void QmitkNumberPropertySlider::setDecimalPlaces ( short  places )

Definition at line 116 of file QmitkNumberPropertySlider.cpp.

References DisplayNumber(), DT_DOUBLE, DT_FLOAT, m_DataType, and m_ShowPercents.

{
  switch (m_DataType)
  {
    case DT_FLOAT:
    case DT_DOUBLE:
      {
        adjustFactors( places, m_ShowPercents ); 
        DisplayNumber();
        break;
      }
    default:
      break;
  }
}
void QmitkNumberPropertySlider::setDoubleValue ( double  value )

Definition at line 183 of file QmitkNumberPropertySlider.cpp.

References m_FactorPropertyToSlider, and ROUND.

Referenced by DisplayNumber().

{
  QSlider::setValue( ROUND( value * m_FactorPropertyToSlider ) );
  //QSlider::updateDisplay();
}
void QmitkNumberPropertySlider::setMaxValue ( int  value )

Definition at line 173 of file QmitkNumberPropertySlider.cpp.

References m_FactorPropertyToSlider, and ROUND.

Referenced by QmitkPropertyListPopup::fillPopup().

{
  QSlider::setMaximum( ROUND( value * m_FactorPropertyToSlider ) );
}
void QmitkNumberPropertySlider::setMinValue ( int  value )

Definition at line 163 of file QmitkNumberPropertySlider.cpp.

References m_FactorPropertyToSlider, and ROUND.

Referenced by QmitkPropertyListPopup::fillPopup().

{
  QSlider::setMinimum( ROUND(value * m_FactorPropertyToSlider ) );
}
void QmitkNumberPropertySlider::setShowPercent ( bool  showPercent )

Definition at line 137 of file QmitkNumberPropertySlider.cpp.

References DisplayNumber(), DT_DOUBLE, DT_FLOAT, m_DataType, m_DecimalPlaces, and m_ShowPercents.

Referenced by QmitkPropertyListPopup::fillPopup().

{
  if ( showPercent == m_ShowPercents ) return; // nothing to change
    
  switch (m_DataType)
  {
    case DT_FLOAT:
    case DT_DOUBLE:
    {
      adjustFactors( m_DecimalPlaces, showPercent ); 
      break;
    }
    default:
    {
      break;
    }
  }
  
  DisplayNumber();
}

Member Data Documentation

union { ... } [protected]

Definition at line 74 of file QmitkNumberPropertySlider.h.

Referenced by getDecimalPlaces(), initialize(), and setShowPercent().

Definition at line 69 of file QmitkNumberPropertySlider.h.

Referenced by DisplayNumber(), and onValueChanged().

Definition at line 76 of file QmitkNumberPropertySlider.h.

Referenced by initialize().

Definition at line 68 of file QmitkNumberPropertySlider.h.

Referenced by DisplayNumber(), and onValueChanged().

Definition at line 67 of file QmitkNumberPropertySlider.h.

Referenced by DisplayNumber(), and onValueChanged().


Property Documentation

short QmitkNumberPropertySlider::decimalPlaces [read, write]

Definition at line 29 of file QmitkNumberPropertySlider.h.

int QmitkNumberPropertySlider::maxValue [read, write]

Definition at line 32 of file QmitkNumberPropertySlider.h.

int QmitkNumberPropertySlider::minValue [read, write]

Definition at line 31 of file QmitkNumberPropertySlider.h.

bool QmitkNumberPropertySlider::showPercent [read, write]

Definition at line 30 of file QmitkNumberPropertySlider.h.


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