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 "QmitkStringPropertyOnDemandEdit.h"
00018 #include <QInputDialog>
00019
00020 QmitkStringPropertyOnDemandEdit::QmitkStringPropertyOnDemandEdit( mitk::StringProperty* property, QWidget* parent )
00021 : QFrame( parent ),
00022 PropertyEditor( property ),
00023 m_StringProperty(property)
00024 {
00025 setFrameStyle( QFrame::NoFrame );
00026 setLineWidth(0);
00027
00028
00029 m_layout = new QHBoxLayout(this);
00030 m_layout->setMargin(0);
00031
00032 m_label = new QLabel(this);
00033 m_layout->addWidget(m_label);
00034
00035 m_toolbutton = new QClickableLabel2(this);
00036 m_toolbutton->setText("...");
00037 m_layout->addWidget(m_toolbutton);
00038
00039 m_layout->addStretch(10);
00040
00041 connect( m_toolbutton, SIGNAL( clicked() ) , this, SLOT(onToolButtonClicked()) );
00042
00043 ensurePolished();
00044 adjustSize();
00045
00046 PropertyChanged();
00047 }
00048
00049 QmitkStringPropertyOnDemandEdit::~QmitkStringPropertyOnDemandEdit()
00050 {
00051 }
00052
00053 void QmitkStringPropertyOnDemandEdit::PropertyChanged()
00054 {
00055 if ( m_Property )
00056 m_label->setText( m_StringProperty->GetValue() );
00057 }
00058
00059 void QmitkStringPropertyOnDemandEdit::PropertyRemoved()
00060 {
00061 m_Property = NULL;
00062 m_StringProperty = NULL;
00063 m_label->setText("n/a");
00064 }
00065
00066 void QmitkStringPropertyOnDemandEdit::onToolButtonClicked()
00067 {
00068 bool ok(false);
00069 QString newText = QInputDialog::getText(this,
00070 "Change text",
00071 "You can change the displayed text here",
00072 QLineEdit::Normal,
00073 m_label->text(),
00074 &ok);
00075
00076 if (ok)
00077 {
00078 BeginModifyProperty();
00079
00080 m_StringProperty->SetValue(newText.toStdString());
00081 m_label->setText(newText);
00082
00083 EndModifyProperty();
00084 }
00085 }
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099