Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
QmitkSimpleBarrierManagerWidget.cpp
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #include <QMenu>
14 
19 
21 {
22  this->m_Controls.setupUi(this);
23 
27 
28  this->m_Controls.constraintsView->setModel(m_InternalModel);
29  this->m_Controls.constraintsView->setItemDelegateForColumn(0, m_ParametersDelegate);
30  this->m_Controls.constraintsView->setItemDelegateForColumn(1, m_TypeDelegate);
31  this->m_Controls.constraintsView->setContextMenuPolicy(Qt::CustomContextMenu);
32 
33  connect(this->m_Controls.btnAdd, SIGNAL(clicked(bool)), this, SLOT(OnAddConstraint(bool)));
34  connect(this->m_Controls.btnDel, SIGNAL(clicked(bool)), this, SLOT(OnDelConstraint(bool)));
35  connect(m_Controls.constraintsView, SIGNAL(customContextMenuRequested(const QPoint&)), this,
36  SLOT(OnShowContextMenuIsoSet(const QPoint&)));
37 
38  this->update();
39 }
40 
42 {
43  delete m_InternalModel;
44  delete m_TypeDelegate;
45  delete m_ParametersDelegate;
46 }
47 
50 {
51  this->m_Checker = pChecker;
52  this->m_ParameterNames = names;
53  this->m_InternalModel->setChecker(m_Checker, names);
54  update();
55 }
56 
58 {
59  QPoint globalPos = m_Controls.constraintsView->viewport()->mapToGlobal(pos);
60 
61  QModelIndex selectedIndex = m_Controls.constraintsView->currentIndex();
62 
63  QMenu viewMenu;
64  QAction* addLevelAct = viewMenu.addAction("Add new constraint");
65  QAction* delLevelAct = viewMenu.addAction("Delete selected constraint");
66  delLevelAct->setEnabled(selectedIndex.isValid());
67 
68  QAction* selectedItem = viewMenu.exec(globalPos);
69 
70  if (selectedItem == addLevelAct)
71  {
73  }
74  else if (selectedItem == delLevelAct)
75  {
76  this->m_InternalModel->deleteConstraint(selectedIndex);
77  }
78 }
79 
81 {
83 }
84 
86 {
87  QModelIndex selectedIndex = m_Controls.constraintsView->currentIndex();
88 
89  if (!selectedIndex.isValid())
90  {
91  selectedIndex = m_Controls.constraintsView->indexAt(QPoint(1, 1));
92  }
93 
94  this->m_InternalModel->deleteConstraint(selectedIndex);
95 }
96 
99 {
100 
101 };
QmitkSimpleBarrierManagerWidget(QWidget *parent=nullptr)
This class implements constraints as simple barrier functions.
QmitkSimpleBarrierTypeDelegate * m_TypeDelegate
void setChecker(mitk::SimpleBarrierConstraintChecker *pChecker, const mitk::ModelTraitsInterface::ParameterNamesType &names)
void setChecker(mitk::SimpleBarrierConstraintChecker *pChecker, const mitk::ModelTraitsInterface::ParameterNamesType &names)
std::vector< ParameterNameType > ParameterNamesType
void deleteConstraint(const QModelIndex &index)
mitk::SimpleBarrierConstraintChecker::Pointer m_Checker
mitk::ModelTraitsInterface::ParameterNamesType m_ParameterNames
QmitkSimpleBarrierParametersDelegate * m_ParametersDelegate
An item delegate for rendering and editing the type of a simple barrier constraint. It assumes that the type is encoded as int. 0: lower border, 1: upper border.
void update()
Updates the widget according to its current settings.
Ui::QmitkSimpleBarrierManagerWidget m_Controls