An item delegate for rendering and editing mitk::Properties in a QTableView. More...
#include <QmitkNDIToolDelegate.h>

Public Types | |
| enum | ToolTableColumns { IndexCol = 0, NameCol, SROMCol, TypeCol, StatusCol, NodeCol } |
| enum | NDIItemDataRole { NDIToolRole = 70, ToolIndexRole, FileNameRole, OrganNodeRole, TypeRole } |
Public Member Functions | |
| QmitkNDIToolDelegate (QObject *parent=0) | |
| void | SetTypes (const QStringList &types) |
| set types list for type editor combobox | |
| void | SetDataStorage (mitk::DataStorage *ds) |
| set datastorage for organ node editor | |
| void | SetPredicate (mitk::NodePredicateBase::Pointer p) |
| set predicate for organ node editor | |
| void | SetTagPropertyName (const std::string &name) |
| set name of the property that is used to tag selected nodes | |
| void | SetTagProperty (mitk::BaseProperty::Pointer prop) |
| set the property that is used to tag selected nodes | |
| QWidget * | createEditor (QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const |
| void | setEditorData (QWidget *editor, const QModelIndex &index) const |
| void | setModelData (QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const |
An item delegate for rendering and editing mitk::Properties in a QTableView.
Definition at line 41 of file QmitkNDIToolDelegate.h.
Definition at line 60 of file QmitkNDIToolDelegate.h.
{
NDIToolRole = 70,
ToolIndexRole,
FileNameRole,
OrganNodeRole,
TypeRole
};
| QmitkNDIToolDelegate::QmitkNDIToolDelegate | ( | QObject * | parent = 0 ) |
Creates a new PropertyDelegate.
Definition at line 36 of file QmitkNDIToolDelegate.cpp.
: QStyledItemDelegate(parent),
m_Types(), m_DataStorage(NULL), m_Predicate(NULL), m_TagProperty(NULL), m_TagPropertyName()
{
}
| QWidget * QmitkNDIToolDelegate::createEditor | ( | QWidget * | parent, |
| const QStyleOptionViewItem & | option, | ||
| const QModelIndex & | index | ||
| ) | const |
Renders a specific property (overwritten from QItemDelegate) Create an editor for a specific property (overwritten from QItemDelegate)
Definition at line 42 of file QmitkNDIToolDelegate.cpp.
References IndexCol, NameCol, NodeCol, SROMCol, StatusCol, and TypeCol.
{
if (index.isValid() == false)
return QStyledItemDelegate::createEditor(parent, option, index);
switch (index.column())
{
case SROMCol:
{
return new QLabel("", parent);
}
case TypeCol:
{
QComboBox* c = new QComboBox(parent);
c->addItems(m_Types);
return c;
}
case NodeCol:
{
return new QmitkDataStorageComboBox(m_DataStorage, m_Predicate, parent);
}
case IndexCol:
case NameCol:
case StatusCol:
default:
return QStyledItemDelegate::createEditor(parent, option, index);
}
}
| void QmitkNDIToolDelegate::SetDataStorage | ( | mitk::DataStorage * | ds ) |
set datastorage for organ node editor
Definition at line 195 of file QmitkNDIToolDelegate.cpp.
Referenced by QmitkNDIConfigurationWidget::CreateQtPartControl(), and QmitkNDIConfigurationWidget::SetDataStorage().
{
m_DataStorage = ds;
}
| void QmitkNDIToolDelegate::setEditorData | ( | QWidget * | editor, |
| const QModelIndex & | index | ||
| ) | const |
Create an editor for a specific property (overwritten from QItemDelegate)
Definition at line 72 of file QmitkNDIToolDelegate.cpp.
References IndexCol, NameCol, NodeCol, SROMCol, StatusCol, and TypeCol.
{
if (index.isValid() == false)
return;
switch (index.column())
{
case SROMCol:
{
QLabel* l = qobject_cast<QLabel*>(editor);
if (l->text().isEmpty())
{
QString fileName = qVariantValue<QString>(index.data(/*mitk::FileNameRole*/));
fileName = QFileDialog::getOpenFileName(editor, "Open SROM file", fileName, "SROM files (*.rom)");
QLabel* l = qobject_cast<QLabel*>(editor);
l->setText(fileName);
}
return;
}
case TypeCol:
{
QString type = qVariantValue<QString>(index.data(/*mitk::TypeRole*/));
QComboBox* c = qobject_cast<QComboBox*>(editor);
c->setCurrentIndex(c->findText(type));
connect(c, SIGNAL(currentIndexChanged(int)), this, SLOT(ComboBoxCurrentIndexChanged(int)));
return;
}
case NodeCol:
{
mitk::DataNode::Pointer n = qVariantValue<mitk::DataNode::Pointer>(index.data(/*mitk::OrganNodeRole*/));
if (n.IsNotNull())
{
QmitkDataStorageComboBox* dsc = qobject_cast<QmitkDataStorageComboBox*>(editor);
dsc->setCurrentIndex(dsc->findText(QString::fromStdString(n->GetName())));
connect(dsc, SIGNAL(currentIndexChanged(int)), this, SLOT(ComboBoxCurrentIndexChanged(int)));
}
return;
}
case IndexCol:
case NameCol:
case StatusCol:
default:
QStyledItemDelegate::setEditorData(editor, index);
}
}
| void QmitkNDIToolDelegate::setModelData | ( | QWidget * | editor, |
| QAbstractItemModel * | model, | ||
| const QModelIndex & | index | ||
| ) | const |
When the user accepts input this func commits the data to the model (overwritten from QItemDelegate)
Definition at line 119 of file QmitkNDIToolDelegate.cpp.
References QmitkDataStorageComboBox::GetSelectedNode(), IndexCol, NameCol, NodeCol, OrganNodeRole, SROMCol, StatusCol, and TypeCol.
{
if (index.isValid() == false)
return;
switch (index.column())
{
case SROMCol:
{
QLabel* l = qobject_cast<QLabel*>(editor);
//model->setData(index, l->text(), mitk::FileNameRole);
//model->setData(index, l->text(), Qt::DisplayRole); // use for display too
model->setData(index, l->text()); // use for display too
return;
}
case TypeCol:
{
QComboBox* c = qobject_cast<QComboBox*>(editor);
//model->setData(index, c->currentText(), mitk::TypeRole);
model->setData(index, c->currentText(), Qt::DisplayRole);
return;
}
case NodeCol:
{
QmitkDataStorageComboBox* dsc = qobject_cast<QmitkDataStorageComboBox*>(editor);
if (dsc->GetSelectedNode().IsNotNull())
{
model->setData(index, qVariantFromValue(dsc->GetSelectedNode()), OrganNodeRole);
//model->setData(index, QString::fromStdString(dsc->GetSelectedNode()->GetName()), Qt::DisplayRole);
model->setData(index, QString::fromStdString(dsc->GetSelectedNode()->GetName()));
if ((m_TagProperty.IsNotNull()) && (m_TagPropertyName.empty() == false)) // tag this node as selected
dsc->GetSelectedNode()->SetProperty(m_TagPropertyName.c_str(), m_TagProperty);
}
}
return;
case IndexCol:
case NameCol:
case StatusCol:
default:
QStyledItemDelegate::setModelData(editor, model, index);
}
}
| void QmitkNDIToolDelegate::SetPredicate | ( | mitk::NodePredicateBase::Pointer | p ) |
set predicate for organ node editor
Definition at line 201 of file QmitkNDIToolDelegate.cpp.
Referenced by QmitkNDIConfigurationWidget::CreateQtPartControl(), and QmitkNDIConfigurationWidget::SetPredicate().
{
m_Predicate = p;
}
| void QmitkNDIToolDelegate::SetTagProperty | ( | mitk::BaseProperty::Pointer | prop ) |
set the property that is used to tag selected nodes
Definition at line 207 of file QmitkNDIToolDelegate.cpp.
Referenced by QmitkNDIConfigurationWidget::SetTagProperty().
{
m_TagProperty = prop;
}
| void QmitkNDIToolDelegate::SetTagPropertyName | ( | const std::string & | name ) |
set name of the property that is used to tag selected nodes
Definition at line 212 of file QmitkNDIToolDelegate.cpp.
Referenced by QmitkNDIConfigurationWidget::SetTagPropertyName().
{
m_TagPropertyName = name;
}
| void QmitkNDIToolDelegate::SetTypes | ( | const QStringList & | types ) |
set types list for type editor combobox
Definition at line 189 of file QmitkNDIToolDelegate.cpp.
Referenced by QmitkNDIConfigurationWidget::CreateQtPartControl(), and QmitkNDIConfigurationWidget::SetToolTypes().
{
m_Types = types;
}
1.7.2