diff --git a/Modules/QtWidgetsExt/resource/QtWidgetsExt.qrc b/Modules/QtWidgetsExt/resource/QtWidgetsExt.qrc index fd4ad928b4..2e92201b32 100644 --- a/Modules/QtWidgetsExt/resource/QtWidgetsExt.qrc +++ b/Modules/QtWidgetsExt/resource/QtWidgetsExt.qrc @@ -1,41 +1,41 @@ btnAddPointSet.png - btnClear.xpm + eraser.svg btnCube.xpm btnCylinder.xpm - btnDown.xpm + arrow-down.svg btnEllipsoid.xpm - btnLoad.xpm + folder-open.svg btnMoveDown.png btnMoveUp.png btnPyramid.xpm btnRemovePoint.png - btnSave.xpm + save.svg btnSetPoints.png - btnSetPoints.xpm - btnSetPointsManually.xpm + plus.svg + plus-xyz.svg btnSetSeedPoint.xpm btnSwapSets.png - btnUp.xpm + arrow-up.svg cross.png icon_seedpoint.png defaultWatermarkSmall.png logo_mint-medical.png ModuleView.png QmitkStandardViewsDialogBar.xpm PlanarAngle_48.png PlanarBezierCurve_48.png PlanarCircle_48.png PlanarDoubleEllipse_48.png PlanarEllipse_48.png PlanarFourPointAngle_48.png PlanarLine_48.png PlanarPath_48.png PlanarPolygon_48.png PlanarRectangle_48.png PlanarSubdivisionPolygon_48.png play.xpm stop.xpm diff --git a/Modules/QtWidgetsExt/resource/arrow-down.svg b/Modules/QtWidgetsExt/resource/arrow-down.svg new file mode 100644 index 0000000000..6ff3a3a53c --- /dev/null +++ b/Modules/QtWidgetsExt/resource/arrow-down.svg @@ -0,0 +1,2 @@ + + diff --git a/Modules/QtWidgetsExt/resource/arrow-up.svg b/Modules/QtWidgetsExt/resource/arrow-up.svg new file mode 100644 index 0000000000..322b7932b8 --- /dev/null +++ b/Modules/QtWidgetsExt/resource/arrow-up.svg @@ -0,0 +1,2 @@ + + diff --git a/Modules/QtWidgetsExt/resource/btnClear.xpm b/Modules/QtWidgetsExt/resource/btnClear.xpm deleted file mode 100644 index 45a4deb47a..0000000000 --- a/Modules/QtWidgetsExt/resource/btnClear.xpm +++ /dev/null @@ -1,46 +0,0 @@ -/* XPM */ -static const char * btnClear_xpm[] = { -"13 9 34 1", -" c None", -". c #090909", -"+ c #080808", -"@ c #000000", -"# c #0D0D0D", -"$ c #ECECEC", -"% c #FFFFFF", -"& c #FCFCFC", -"* c #E6E6E6", -"= c #0B0B0B", -"- c #FBFBFB", -"; c #F5F5F5", -"> c #CDCDCD", -", c #FEFEFE", -"' c #FAFAFA", -") c #F4F4F4", -"! c #0C0C0C", -"~ c #CCCCCC", -"{ c #D8D8D8", -"] c #050505", -"^ c #F3F3F3", -"/ c #FDFDFD", -"( c #CBCBCB", -"_ c #010101", -": c #040404", -"< c #D4D4D4", -"[ c #D1D1D1", -"} c #C9C9C9", -"| c #EAEAEA", -"1 c #EEEEEE", -"2 c #F8F8F8", -"3 c #020202", -"4 c #0F0F0F", -"5 c #111111", -" .+@@#+@@", -" .$%%&*%=@", -" @-%;%%%@>@", -" @%,;%')!~{]", -" @^/%&''!>(@ ", -"@#_@:@:@<[@ ", -"@%%,%%&]}@ ", -"!|%/12%3@ ", -"@]@.45@@ "}; diff --git a/Modules/QtWidgetsExt/resource/btnDown.xpm b/Modules/QtWidgetsExt/resource/btnDown.xpm deleted file mode 100644 index 70bd78c1be..0000000000 --- a/Modules/QtWidgetsExt/resource/btnDown.xpm +++ /dev/null @@ -1,15 +0,0 @@ -/* XPM */ -static const char * btnDown_xpm[] = { -"9 10 2 1", -" c None", -". c #000000", -" . ", -" . ", -" . ", -" . ", -" . ", -". . .", -" . . . ", -" . . . ", -" ... ", -" . "}; diff --git a/Modules/QtWidgetsExt/resource/btnLoad.xpm b/Modules/QtWidgetsExt/resource/btnLoad.xpm deleted file mode 100644 index 4dcb28ab40..0000000000 --- a/Modules/QtWidgetsExt/resource/btnLoad.xpm +++ /dev/null @@ -1,18 +0,0 @@ -/* XPM */ -static const char * btnLoad_xpm[] = { -"15 12 3 1", -" c None", -". c #000000", -"+ c #FFFFFF", -" .... ", -" .++++. ", -".+++++...... ", -".+++++++++++. ", -".+++.......... ", -".++.++++++++++.", -".+.+++++++++++.", -".+.++++++++++. ", -"..+++++++++++. ", -".+++++++++++. ", -"..+++++++++. ", -" ........... "}; diff --git a/Modules/QtWidgetsExt/resource/btnSave.xpm b/Modules/QtWidgetsExt/resource/btnSave.xpm deleted file mode 100644 index 7af750e3df..0000000000 --- a/Modules/QtWidgetsExt/resource/btnSave.xpm +++ /dev/null @@ -1,20 +0,0 @@ -/* XPM */ -static const char * btnSave_xpm[] = { -"13 13 4 1", -" c None", -". c #000000", -"+ c #F2F2F2", -"@ c #FFFFFF", -".............", -".++.@@@..@.+.", -".++.@@@..@.+.", -".++.@@@..@.+.", -".++........+.", -".+++++++++++.", -".+++++++++++.", -".++.......++.", -".+.@@@@@@@.+.", -".+.@@@@@@@.+.", -".+.@@@@@@@.+.", -".+.@@@@@@@.+.", -"............."}; diff --git a/Modules/QtWidgetsExt/resource/btnSetPoints.xpm b/Modules/QtWidgetsExt/resource/btnSetPoints.xpm deleted file mode 100644 index da30057bf0..0000000000 --- a/Modules/QtWidgetsExt/resource/btnSetPoints.xpm +++ /dev/null @@ -1,14 +0,0 @@ -/* XPM */ -static const char * btnSetPoints_xpm[] = { -"9 9 2 1", -" c None", -". c #000000", -" . ", -" . ", -" . ", -" . ", -".........", -" . ", -" . ", -" . ", -" . "}; diff --git a/Modules/QtWidgetsExt/resource/btnSetPointsManually.xpm b/Modules/QtWidgetsExt/resource/btnSetPointsManually.xpm deleted file mode 100644 index c95e77c5e8..0000000000 --- a/Modules/QtWidgetsExt/resource/btnSetPointsManually.xpm +++ /dev/null @@ -1,25 +0,0 @@ -/* XPM */ -static char * btnSetPointsManually_xpm[] = { -"20 20 2 1", -" c None", -". c #000000", -" .. ", -" . ", -" .. ", -" . ", -" . ", -" ........... ", -" . ", -" . ", -" . ", -" . ", -" . ", -" ", -" ", -".. .. . . ......", -" .. .. .. .. ..", -" ... ... .. ", -" ... . .. ", -" .. .. . .. ", -".. .. . .. ", -". . . ......"}; diff --git a/Modules/QtWidgetsExt/resource/btnUp.xpm b/Modules/QtWidgetsExt/resource/btnUp.xpm deleted file mode 100644 index 34511a581b..0000000000 --- a/Modules/QtWidgetsExt/resource/btnUp.xpm +++ /dev/null @@ -1,15 +0,0 @@ -/* XPM */ -static const char * btnUp_xpm[] = { -"9 10 2 1", -" c None", -". c #000000", -" . ", -" ... ", -" . . . ", -" . . . ", -". . .", -" . ", -" . ", -" . ", -" . ", -" . "}; diff --git a/Modules/QtWidgetsExt/resource/eraser.svg b/Modules/QtWidgetsExt/resource/eraser.svg new file mode 100644 index 0000000000..725d88fed0 --- /dev/null +++ b/Modules/QtWidgetsExt/resource/eraser.svg @@ -0,0 +1,2 @@ + + diff --git a/Modules/QtWidgetsExt/resource/folder-open.svg b/Modules/QtWidgetsExt/resource/folder-open.svg new file mode 100644 index 0000000000..12990d0ae8 --- /dev/null +++ b/Modules/QtWidgetsExt/resource/folder-open.svg @@ -0,0 +1,2 @@ + + diff --git a/Modules/QtWidgetsExt/resource/plus-xyz.svg b/Modules/QtWidgetsExt/resource/plus-xyz.svg new file mode 100644 index 0000000000..303346fa4d --- /dev/null +++ b/Modules/QtWidgetsExt/resource/plus-xyz.svg @@ -0,0 +1,82 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/Modules/QtWidgetsExt/resource/plus.svg b/Modules/QtWidgetsExt/resource/plus.svg new file mode 100644 index 0000000000..c180bc77f4 --- /dev/null +++ b/Modules/QtWidgetsExt/resource/plus.svg @@ -0,0 +1,2 @@ + + diff --git a/Modules/QtWidgetsExt/resource/save.svg b/Modules/QtWidgetsExt/resource/save.svg new file mode 100644 index 0000000000..e396a59486 --- /dev/null +++ b/Modules/QtWidgetsExt/resource/save.svg @@ -0,0 +1,2 @@ + + diff --git a/Modules/QtWidgetsExt/src/QmitkPointListWidget.cpp b/Modules/QtWidgetsExt/src/QmitkPointListWidget.cpp index 7cdde12842..fa20956b6f 100644 --- a/Modules/QtWidgetsExt/src/QmitkPointListWidget.cpp +++ b/Modules/QtWidgetsExt/src/QmitkPointListWidget.cpp @@ -1,493 +1,487 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include "QmitkPointListWidget.h" #include "QmitkPointListView.h" #include "QmitkPointListModel.h" #include #include #include #include #include #include +#include #include #include QmitkPointListWidget::QmitkPointListWidget(QWidget *parent, int orientation) : QWidget(parent), m_PointListView(nullptr), m_PointSetNode(nullptr), m_Orientation(0), m_MovePointUpBtn(nullptr), m_MovePointDownBtn(nullptr), m_RemovePointBtn(nullptr), m_SavePointsBtn(nullptr), m_LoadPointsBtn(nullptr), m_ToggleAddPoint(nullptr), m_AddPoint(nullptr), m_TimeStepDisplay(nullptr), m_DataInteractor(nullptr), m_TimeStep(0), m_EditAllowed(true), m_NodeObserverTag(0) { m_PointListView = new QmitkPointListView(); if (orientation != 0) m_Orientation = orientation; SetupUi(); SetupConnections(); ObserveNewNode(nullptr); } QmitkPointListWidget::~QmitkPointListWidget() { m_DataInteractor = nullptr; if (m_PointSetNode && m_NodeObserverTag) { m_PointSetNode->RemoveObserver(m_NodeObserverTag); m_NodeObserverTag = 0; } delete m_PointListView; } void QmitkPointListWidget::SetupConnections() { connect(this->m_LoadPointsBtn, SIGNAL(clicked()), this, SLOT(OnBtnLoadPoints())); connect(this->m_SavePointsBtn, SIGNAL(clicked()), this, SLOT(OnBtnSavePoints())); connect(this->m_MovePointUpBtn, SIGNAL(clicked()), this, SLOT(MoveSelectedPointUp())); connect(this->m_MovePointDownBtn, SIGNAL(clicked()), this, SLOT(MoveSelectedPointDown())); connect(this->m_RemovePointBtn, SIGNAL(clicked()), this, SLOT(RemoveSelectedPoint())); connect(this->m_ToggleAddPoint, SIGNAL(toggled(bool)), this, SLOT(OnBtnAddPoint(bool))); connect(this->m_AddPoint, SIGNAL(clicked()), this, SLOT(OnBtnAddPointManually())); connect(this->m_PointListView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(OnListDoubleClick())); connect(this->m_PointListView, SIGNAL(SignalPointSelectionChanged()), this, SLOT(OnPointSelectionChanged())); connect(this->m_PointListView, SIGNAL(SignalTimeStepChanged(int)), this, SLOT(OnTimeStepChanged(int))); } void QmitkPointListWidget::OnTimeStepChanged(int timeStep) { m_TimeStepLabel->setText(QString("%1").arg(timeStep)); } void QmitkPointListWidget::SetupUi() { // Setup the buttons m_ToggleAddPoint = new QPushButton(); m_ToggleAddPoint->setMaximumSize(25, 25); m_ToggleAddPoint->setCheckable(true); m_ToggleAddPoint->setToolTip("Toggle point editing (use SHIFT + Left Mouse Button to add Points)"); - QIcon iconAdd(":/QtWidgetsExt/btnSetPoints.xpm"); - m_ToggleAddPoint->setIcon(iconAdd); + m_ToggleAddPoint->setIcon(QmitkStyleManager::ThemeIcon(QStringLiteral(":/QtWidgetsExt/plus.svg"))); m_AddPoint = new QPushButton(); m_AddPoint->setMaximumSize(25, 25); m_AddPoint->setToolTip("Manually add point"); - QIcon iconAddManually(":/QtWidgetsExt/btnSetPointsManually.xpm"); - m_AddPoint->setIcon(iconAddManually); + m_AddPoint->setIcon(QmitkStyleManager::ThemeIcon(QStringLiteral(":/QtWidgetsExt/plus-xyz.svg"))); m_RemovePointBtn = new QPushButton(); m_RemovePointBtn->setMaximumSize(25, 25); - const QIcon iconDel(":/QtWidgetsExt/btnClear.xpm"); - m_RemovePointBtn->setIcon(iconDel); + m_RemovePointBtn->setIcon(QmitkStyleManager::ThemeIcon(QStringLiteral(":/QtWidgetsExt/eraser.svg"))); m_RemovePointBtn->setToolTip("Erase one point from list (Hotkey: DEL)"); m_MovePointUpBtn = new QPushButton(); m_MovePointUpBtn->setMaximumSize(25, 25); - const QIcon iconUp(":/QtWidgetsExt/btnUp.xpm"); - m_MovePointUpBtn->setIcon(iconUp); + m_MovePointUpBtn->setIcon(QmitkStyleManager::ThemeIcon(QStringLiteral(":/QtWidgetsExt/arrow-up.svg"))); m_MovePointUpBtn->setToolTip("Swap selected point upwards (Hotkey: F2)"); m_MovePointDownBtn = new QPushButton(); m_MovePointDownBtn->setMaximumSize(25, 25); - const QIcon iconDown(":/QtWidgetsExt/btnDown.xpm"); - m_MovePointDownBtn->setIcon(iconDown); + m_MovePointDownBtn->setIcon(QmitkStyleManager::ThemeIcon(QStringLiteral(":/QtWidgetsExt/arrow-down.svg"))); m_MovePointDownBtn->setToolTip("Swap selected point downwards (Hotkey: F3)"); m_SavePointsBtn = new QPushButton(); m_SavePointsBtn->setMaximumSize(25, 25); - QIcon iconSave(":/QtWidgetsExt/btnSave.xpm"); - m_SavePointsBtn->setIcon(iconSave); + m_SavePointsBtn->setIcon(QmitkStyleManager::ThemeIcon(QStringLiteral(":/QtWidgetsExt/save.svg"))); m_SavePointsBtn->setToolTip("Save points to file"); m_LoadPointsBtn = new QPushButton(); m_LoadPointsBtn->setMaximumSize(25, 25); - QIcon iconLoad(":/QtWidgetsExt/btnLoad.xpm"); - m_LoadPointsBtn->setIcon(iconLoad); + m_LoadPointsBtn->setIcon(QmitkStyleManager::ThemeIcon(QStringLiteral(":/QtWidgetsExt/folder-open.svg"))); m_LoadPointsBtn->setToolTip("Load list of points from file (REPLACES current content)"); int i; QBoxLayout *lay1; QBoxLayout *lay2; QBoxLayout *lay3; switch (m_Orientation) { case 0: lay1 = new QVBoxLayout(this); lay2 = new QHBoxLayout(); i = 0; break; case 1: lay1 = new QHBoxLayout(this); lay2 = new QVBoxLayout(); i = -1; break; case 2: lay1 = new QHBoxLayout(this); lay2 = new QVBoxLayout(); i = 0; break; default: lay1 = new QVBoxLayout(this); lay2 = new QHBoxLayout(); i = -1; break; } // setup Layouts this->setLayout(lay1); lay2->stretch(true); lay2->addWidget(m_ToggleAddPoint); lay2->addWidget(m_AddPoint); lay2->addWidget(m_RemovePointBtn); lay2->addWidget(m_MovePointUpBtn); lay2->addWidget(m_MovePointDownBtn); lay2->addWidget(m_SavePointsBtn); lay2->addWidget(m_LoadPointsBtn); // setup Labels m_TimeStepDisplay = new QLabel; m_TimeStepLabel = new QLabel; lay3 = new QHBoxLayout; m_TimeStepDisplay->setMaximumSize(200, 15); lay3->stretch(true); lay3->setAlignment(Qt::AlignLeft); lay3->addWidget(m_TimeStepDisplay); lay3->addWidget(m_TimeStepLabel); m_TimeStepDisplay->setText("Time Step: "); m_TimeStepLabel->setMaximumSize(10, 15); this->OnTimeStepChanged(0); //Add Layouts lay1->insertWidget(i, m_PointListView); this->setLayout(lay1); lay1->addLayout(lay2); lay1->addLayout(lay3); } void QmitkPointListWidget::SetPointSet(mitk::PointSet *newPs) { if (newPs == nullptr) return; this->m_PointSetNode->SetData(newPs); dynamic_cast(this->m_PointListView->model())->SetPointSetNode(m_PointSetNode); ObserveNewNode(m_PointSetNode); } void QmitkPointListWidget::SetPointSetNode(mitk::DataNode *newNode) { if (m_DataInteractor.IsNotNull()) m_DataInteractor->SetDataNode(newNode); ObserveNewNode(newNode); dynamic_cast(this->m_PointListView->model())->SetPointSetNode(newNode); } void QmitkPointListWidget::OnBtnSavePoints() { if ((dynamic_cast(m_PointSetNode->GetData())) == nullptr) return; // don't write empty point sets. If application logic requires something else then do something else. if ((dynamic_cast(m_PointSetNode->GetData()))->GetSize() == 0) return; // take the previously defined name of node as proposal for filename std::string nodeName = m_PointSetNode->GetName(); nodeName = "/" + nodeName + ".mps"; QString fileNameProposal = QString(); fileNameProposal.append(nodeName.c_str()); QString aFilename = QFileDialog::getSaveFileName( nullptr, "Save point set", QDir::currentPath() + fileNameProposal, "MITK Pointset (*.mps)"); if (aFilename.isEmpty()) return; try { mitk::IOUtil::Save(m_PointSetNode->GetData(), aFilename.toStdString()); } catch (...) { QMessageBox::warning(this, "Save point set", QString("File writer reported problems writing %1\n\n" "PLEASE CHECK output file!") .arg(aFilename)); } } void QmitkPointListWidget::OnBtnLoadPoints() { // get the name of the file to load QString filename = QFileDialog::getOpenFileName(nullptr, "Open MITK Pointset", "", "MITK Point Sets (*.mps)"); if (filename.isEmpty()) return; // attempt to load file try { mitk::PointSet::Pointer pointSet = dynamic_cast(mitk::IOUtil::Load(filename.toStdString())[0].GetPointer()); if (pointSet.IsNull()) { QMessageBox::warning(this, "Load point set", QString("File reader could not read %1").arg(filename)); return; } // loading successful this->SetPointSet(pointSet); } catch (...) { QMessageBox::warning(this, "Load point set", QString("File reader collapsed while reading %1").arg(filename)); } emit PointListChanged(); mitk::RenderingManager::GetInstance()->RequestUpdateAll(); } mitk::PointSet *QmitkPointListWidget::GetPointSet() { return dynamic_cast(m_PointSetNode->GetData()); } mitk::DataNode *QmitkPointListWidget::GetPointSetNode() { return m_PointSetNode; } void QmitkPointListWidget::SetMultiWidget(QmitkStdMultiWidget *multiWidget) { m_PointListView->SetMultiWidget(multiWidget); } void QmitkPointListWidget::RemoveSelectedPoint() { if (!m_PointSetNode) return; mitk::PointSet *pointSet = dynamic_cast(m_PointSetNode->GetData()); if (!pointSet) return; if (pointSet->GetSize() == 0) return; QmitkPointListModel *pointListModel = dynamic_cast(m_PointListView->model()); pointListModel->RemoveSelectedPoint(); emit PointListChanged(); } void QmitkPointListWidget::MoveSelectedPointDown() { if (!m_PointSetNode) return; mitk::PointSet *pointSet = dynamic_cast(m_PointSetNode->GetData()); if (!pointSet) return; if (pointSet->GetSize() == 0) return; QmitkPointListModel *pointListModel = dynamic_cast(m_PointListView->model()); pointListModel->MoveSelectedPointDown(); emit PointListChanged(); } void QmitkPointListWidget::MoveSelectedPointUp() { if (!m_PointSetNode) return; mitk::PointSet *pointSet = dynamic_cast(m_PointSetNode->GetData()); if (!pointSet) return; if (pointSet->GetSize() == 0) return; QmitkPointListModel *pointListModel = dynamic_cast(m_PointListView->model()); pointListModel->MoveSelectedPointUp(); emit PointListChanged(); } void QmitkPointListWidget::OnBtnAddPoint(bool checked) { if (m_PointSetNode.IsNotNull()) { if (checked) { m_DataInteractor = m_PointSetNode->GetDataInteractor(); // If no data Interactor is present create a new one if (m_DataInteractor.IsNull()) { // Create PointSetData Interactor m_DataInteractor = mitk::PointSetDataInteractor::New(); // Load the according state machine for regular point set interaction m_DataInteractor->LoadStateMachine("PointSet.xml"); // Set the configuration file that defines the triggers for the transitions m_DataInteractor->SetEventConfig("PointSetConfig.xml"); // set the DataNode (which already is added to the DataStorage m_DataInteractor->SetDataNode(m_PointSetNode); } } else { m_PointSetNode->SetDataInteractor(nullptr); m_DataInteractor = nullptr; } emit EditPointSets(checked); } } void QmitkPointListWidget::OnBtnAddPointManually() { mitk::PointSet *pointSet = this->GetPointSet(); QmitkEditPointDialog editPointDialog(this); if (this->GetPointSet()->IsEmpty()) { editPointDialog.SetPoint(pointSet, 0, m_TimeStep); } else { mitk::PointSet::PointsIterator maxIt = pointSet->GetMaxId(); mitk::PointSet::PointIdentifier maxId = maxIt->Index(); editPointDialog.SetPoint(pointSet, maxId + 1, m_TimeStep); } editPointDialog.exec(); } void QmitkPointListWidget::OnListDoubleClick() { } void QmitkPointListWidget::OnPointSelectionChanged() { emit this->PointSelectionChanged(); } void QmitkPointListWidget::DeactivateInteractor(bool) { } void QmitkPointListWidget::EnableEditButton(bool enabled) { m_EditAllowed = enabled; if (enabled == false) m_ToggleAddPoint->setEnabled(false); else m_ToggleAddPoint->setEnabled(true); OnBtnAddPoint(enabled); } void QmitkPointListWidget::ObserveNewNode(mitk::DataNode *node) { if (m_DataInteractor.IsNotNull()) m_DataInteractor->SetDataNode(node); // remove old observer if (m_PointSetNode) { if (m_DataInteractor) { m_DataInteractor = nullptr; m_ToggleAddPoint->setChecked(false); } m_PointSetNode->RemoveObserver(m_NodeObserverTag); m_NodeObserverTag = 0; } m_PointSetNode = node; // add new observer if necessary if (m_PointSetNode) { itk::ReceptorMemberCommand::Pointer command = itk::ReceptorMemberCommand::New(); command->SetCallbackFunction(this, &QmitkPointListWidget::OnNodeDeleted); m_NodeObserverTag = m_PointSetNode->AddObserver(itk::DeleteEvent(), command); } else { m_NodeObserverTag = 0; } if (m_EditAllowed == true) m_ToggleAddPoint->setEnabled(m_PointSetNode); else m_ToggleAddPoint->setEnabled(false); m_RemovePointBtn->setEnabled(m_PointSetNode); m_LoadPointsBtn->setEnabled(m_PointSetNode); m_SavePointsBtn->setEnabled(m_PointSetNode); m_AddPoint->setEnabled(m_PointSetNode); } void QmitkPointListWidget::OnNodeDeleted(const itk::EventObject &) { if (m_PointSetNode.IsNotNull() && !m_NodeObserverTag) m_PointSetNode->RemoveObserver(m_NodeObserverTag); m_NodeObserverTag = 0; m_PointSetNode = nullptr; m_PointListView->SetPointSetNode(nullptr); m_ToggleAddPoint->setEnabled(false); m_RemovePointBtn->setEnabled(false); m_LoadPointsBtn->setEnabled(false); m_SavePointsBtn->setEnabled(false); m_AddPoint->setEnabled(false); } void QmitkPointListWidget::AddSliceNavigationController(mitk::SliceNavigationController *snc) { m_PointListView->AddSliceNavigationController(snc); } void QmitkPointListWidget::RemoveSliceNavigationController(mitk::SliceNavigationController *snc) { m_PointListView->RemoveSliceNavigationController(snc); } void QmitkPointListWidget::UnselectEditButton() { m_ToggleAddPoint->setChecked(false); }