MCPcopy Create free account
hub / github.com/MITK/MITK / createEditor

Method createEditor

Modules/QtWidgets/src/QmitkPropertyItemDelegate.cpp:161–254  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

159}
160
161QWidget *QmitkPropertyItemDelegate::createEditor(QWidget *parent,
162 const QStyleOptionViewItem &option,
163 const QModelIndex &index) const
164{
165 QVariant data = index.data(Qt::EditRole);
166
167 if (data.isValid())
168 {
169 if (data.typeId() == QMetaType::Int)
170 {
171 QSpinBox *spinBox = new QSpinBox(parent);
172
173 mitk::CoreServicePointer<mitk::IPropertyExtensions> extensions(mitk::CoreServices::GetPropertyExtensions());
174 std::string name = this->GetPropertyName(index);
175
176 if (!name.empty() && extensions->HasExtension(name))
177 {
178 mitk::IntPropertyExtension::Pointer extension =
179 dynamic_cast<mitk::IntPropertyExtension *>(extensions->GetExtension(name).GetPointer());
180
181 if (extension.IsNotNull())
182 {
183 spinBox->setMinimum(extension->GetMinimum());
184 spinBox->setMaximum(extension->GetMaximum());
185 spinBox->setSingleStep(extension->GetSingleStep());
186 }
187 }
188
189 connect(spinBox, SIGNAL(editingFinished()), this, SLOT(OnSpinBoxEditingFinished()));
190
191 return spinBox;
192 }
193
194 if (data.typeId() == QMetaType::Double || data.typeId() == QMetaType::Float)
195 {
196 QDoubleSpinBox *spinBox = new QDoubleSpinBox(parent);
197
198 mitk::CoreServicePointer<mitk::IPropertyExtensions> extensions(mitk::CoreServices::GetPropertyExtensions());
199 std::string name = this->GetPropertyName(index);
200
201 if (!name.empty() && extensions->HasExtension(name))
202 {
203 mitk::FloatPropertyExtension::Pointer extension =
204 dynamic_cast<mitk::FloatPropertyExtension *>(extensions->GetExtension(name).GetPointer());
205
206 if (extension.IsNotNull())
207 {
208 spinBox->setMinimum(extension->GetMinimum());
209 spinBox->setMaximum(extension->GetMaximum());
210 spinBox->setSingleStep(extension->GetSingleStep());
211 spinBox->setDecimals(extension->GetDecimals());
212 }
213 }
214 else
215 {
216 spinBox->setSingleStep(0.1);
217 spinBox->setDecimals(4);
218 }

Callers

nothing calls this directly

Calls 11

GetPropertyNameMethod · 0.95
HasExtensionMethod · 0.80
GetPointerMethod · 0.80
IsNotNullMethod · 0.80
GetDecimalsMethod · 0.80
dataMethod · 0.45
emptyMethod · 0.45
GetExtensionMethod · 0.45
GetMinimumMethod · 0.45
GetMaximumMethod · 0.45
GetSingleStepMethod · 0.45

Tested by

no test coverage detected