Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include "QmitkNumberPropertyView.h"
00018 #include <QTextStream>
00019
00020 #define DT_SHORT 1
00021 #define DT_INT 2
00022 #define DT_FLOAT 3
00023 #define DT_DOUBLE 4
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 QmitkNumberPropertyView::QmitkNumberPropertyView( const mitk::IntProperty* property, QWidget* parent )
00035 : QLabel( parent ),
00036 PropertyView( property ),
00037 m_IntProperty(property),
00038 m_DataType(DT_INT)
00039 {
00040 initialize();
00041 }
00042
00043 QmitkNumberPropertyView::QmitkNumberPropertyView( const mitk::FloatProperty* property, QWidget* parent )
00044 : QLabel( parent ),
00045 PropertyView( property ),
00046 m_FloatProperty(property),
00047 m_DataType(DT_FLOAT)
00048 {
00049 initialize();
00050 }
00051
00052 QmitkNumberPropertyView::QmitkNumberPropertyView( const mitk::DoubleProperty* property, QWidget* parent )
00053 : QLabel( parent ),
00054 PropertyView( property ),
00055 m_DoubleProperty(property),
00056 m_DataType(DT_DOUBLE)
00057 {
00058 initialize();
00059 }
00060
00061 QmitkNumberPropertyView::~QmitkNumberPropertyView()
00062 {
00063 }
00064
00065 void QmitkNumberPropertyView::initialize()
00066 {
00067 m_Suffix = "";
00068 m_DisplayFactor = 1.0;
00069
00070 setDecimalPlaces(2);
00071 }
00072
00073 short QmitkNumberPropertyView::decimalPlaces() const
00074 {
00075 return m_DecimalPlaces;
00076 }
00077
00078 void QmitkNumberPropertyView::setDecimalPlaces(short places)
00079 {
00080 m_DecimalPlaces = places;
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092 DisplayNumber();
00093 }
00094
00095 QString QmitkNumberPropertyView::suffix() const
00096 {
00097 if (m_Suffix =="")
00098 return QString::null;
00099 else
00100 return m_Suffix;
00101 }
00102
00103 void QmitkNumberPropertyView::setSuffix(const QString& suffix)
00104 {
00105 m_Suffix = suffix;
00106
00107 DisplayNumber();
00108 }
00109
00110 bool QmitkNumberPropertyView::showPercent() const
00111 {
00112 return m_DisplayFactor == 100.0;
00113 }
00114
00115 void QmitkNumberPropertyView::setShowPercent(bool show)
00116 {
00117 if (show)
00118 {
00119 m_DisplayFactor = 100.0;
00120 setSuffix("%");
00121 }
00122 else
00123 {
00124 m_DisplayFactor = 1.0;
00125 setSuffix("");
00126 }
00127
00128
00129 }
00130
00131 void QmitkNumberPropertyView::PropertyChanged()
00132 {
00133 if ( m_Property )
00134 DisplayNumber();
00135 }
00136
00137 void QmitkNumberPropertyView::PropertyRemoved()
00138 {
00139 m_Property = NULL;
00140 setText("n/a");
00141 }
00142
00143 void QmitkNumberPropertyView::DisplayNumber()
00144 {
00145 QString displayedText;
00146 QTextStream stream(&displayedText);
00147
00148 stream.setRealNumberPrecision(m_DecimalPlaces);
00149
00150 switch (m_DataType)
00151 {
00152
00153
00154
00155
00156
00157
00158
00159
00160 case DT_INT:
00161 {
00162 int i = m_IntProperty->GetValue();
00163 stream << (i * m_DisplayFactor);
00164 break;
00165 }
00166 case DT_FLOAT:
00167 {
00168 float f = m_FloatProperty->GetValue();
00169 stream << (f * m_DisplayFactor);
00170 break;
00171 }
00172 case DT_DOUBLE:
00173 {
00174 double d = m_DoubleProperty->GetValue();
00175 stream << (d * m_DisplayFactor);
00176 break;
00177 }
00178 default:
00179 break;
00180 }
00181
00182 setText( displayedText );
00183 }
00184