diff --git a/Plugins/org.mitk.gui.qt.pointsetinteraction/src/internal/QmitkPointSetInteractionView.cpp b/Plugins/org.mitk.gui.qt.pointsetinteraction/src/internal/QmitkPointSetInteractionView.cpp index 2848d7f0f2..a8cd4b0b9a 100755 --- a/Plugins/org.mitk.gui.qt.pointsetinteraction/src/internal/QmitkPointSetInteractionView.cpp +++ b/Plugins/org.mitk.gui.qt.pointsetinteraction/src/internal/QmitkPointSetInteractionView.cpp @@ -1,137 +1,131 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #include "QmitkPointSetInteractionView.h" #include #include #include #include #include #include #include #include #include #include #include #include const std::string QmitkPointSetInteractionView::VIEW_ID = "org.mitk.views.pointsetinteraction"; QmitkPointSetInteractionView::QmitkPointSetInteractionView() : m_Controls(nullptr) { } QmitkPointSetInteractionView::~QmitkPointSetInteractionView() { } void QmitkPointSetInteractionView::CreateQtPartControl(QWidget *parent) { m_Controls = new Ui::QmitkPointSetInteractionViewControls; m_Controls->setupUi(parent); m_Controls->selectedPointSetWidget->SetDataStorage(GetDataStorage()); m_Controls->selectedPointSetWidget->SetNodePredicate(mitk::NodePredicateAnd::New( mitk::TNodePredicateDataType::New(), mitk::NodePredicateNot::New(mitk::NodePredicateProperty::New("helper object")))); m_Controls->selectedPointSetWidget->SetSelectionIsOptional(true); m_Controls->selectedPointSetWidget->SetAutoSelectNewNodes(true); m_Controls->selectedPointSetWidget->SetEmptyInfo(QString("Please select a point set")); m_Controls->selectedPointSetWidget->SetPopUpTitel(QString("Select point set")); - m_SelectionServiceConnector = std::make_unique(); - - m_SelectionServiceConnector->AddPostSelectionListener(GetSite()->GetWorkbenchWindow()->GetSelectionService()); - connect(m_SelectionServiceConnector.get(), &QmitkSelectionServiceConnector::ServiceSelectionChanged, - m_Controls->selectedPointSetWidget, &QmitkSingleNodeSelectionWidget::SetCurrentSelection); - connect(m_Controls->selectedPointSetWidget, &QmitkSingleNodeSelectionWidget::CurrentSelectionChanged, this, &QmitkPointSetInteractionView::OnCurrentSelectionChanged); connect(m_Controls->addPointSetPushButton, &QPushButton::clicked, this, &QmitkPointSetInteractionView::OnAddPointSetClicked); if (mitk::IRenderWindowPart* renderWindowPart = GetRenderWindowPart()) { RenderWindowPartActivated(renderWindowPart); } } void QmitkPointSetInteractionView::SetFocus() { m_Controls->addPointSetPushButton->setFocus(); } void QmitkPointSetInteractionView::OnCurrentSelectionChanged(QList nodes) { if (nodes.empty() || nodes.front().IsNull()) { m_Controls->poinSetListWidget->SetPointSetNode(nullptr); return; } auto selectedPointSet = dynamic_cast(nodes.front()->GetData()); if (nullptr == selectedPointSet) { m_Controls->poinSetListWidget->SetPointSetNode(nullptr); return; } m_Controls->poinSetListWidget->SetPointSetNode(nodes.front()); } void QmitkPointSetInteractionView::RenderWindowPartActivated(mitk::IRenderWindowPart* renderWindowPart) { if (nullptr != m_Controls) { m_Controls->poinSetListWidget->AddSliceNavigationController(renderWindowPart->GetQmitkRenderWindow("axial")->GetSliceNavigationController()); m_Controls->poinSetListWidget->AddSliceNavigationController(renderWindowPart->GetQmitkRenderWindow("sagittal")->GetSliceNavigationController()); m_Controls->poinSetListWidget->AddSliceNavigationController(renderWindowPart->GetQmitkRenderWindow("coronal")->GetSliceNavigationController()); } } void QmitkPointSetInteractionView::RenderWindowPartDeactivated(mitk::IRenderWindowPart* renderWindowPart) { if (nullptr != m_Controls) { m_Controls->poinSetListWidget->RemoveSliceNavigationController(renderWindowPart->GetQmitkRenderWindow("axial")->GetSliceNavigationController()); m_Controls->poinSetListWidget->RemoveSliceNavigationController(renderWindowPart->GetQmitkRenderWindow("sagittal")->GetSliceNavigationController()); m_Controls->poinSetListWidget->RemoveSliceNavigationController(renderWindowPart->GetQmitkRenderWindow("coronal")->GetSliceNavigationController()); } } void QmitkPointSetInteractionView::OnAddPointSetClicked() { // ask for the name of the point set bool ok = false; QString name = QInputDialog::getText(QApplication::activeWindow(), tr("Add point set..."), tr("Enter name for the new point set"), QLineEdit::Normal, tr("PointSet"), &ok); if (!ok || name.isEmpty()) { return; } mitk::PointSet::Pointer pointSet = mitk::PointSet::New(); mitk::DataNode::Pointer pointSetNode = mitk::DataNode::New(); pointSetNode->SetData(pointSet); pointSetNode->SetProperty("name", mitk::StringProperty::New(name.toStdString())); pointSetNode->SetProperty("opacity", mitk::FloatProperty::New(1)); pointSetNode->SetColor(1.0, 1.0, 0.0); this->GetDataStorage()->Add(pointSetNode); m_Controls->selectedPointSetWidget->SetCurrentSelectedNode(pointSetNode); } diff --git a/Plugins/org.mitk.gui.qt.pointsetinteraction/src/internal/QmitkPointSetInteractionView.h b/Plugins/org.mitk.gui.qt.pointsetinteraction/src/internal/QmitkPointSetInteractionView.h index 802555cab1..769d6dc3ab 100755 --- a/Plugins/org.mitk.gui.qt.pointsetinteraction/src/internal/QmitkPointSetInteractionView.h +++ b/Plugins/org.mitk.gui.qt.pointsetinteraction/src/internal/QmitkPointSetInteractionView.h @@ -1,64 +1,61 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef QMITKPOINTSETINTERACTIONVIEW_H #define QMITKPOINTSETINTERACTIONVIEW_H #include "ui_QmitkPointSetInteractionViewControls.h" // mitk core #include // org mitk gui common plugin #include // org mitk gui qt common plugin #include -#include /** * @brief * * */ class QmitkPointSetInteractionView : public QmitkAbstractView, public mitk::IRenderWindowPartListener { Q_OBJECT public: static const std::string VIEW_ID; QmitkPointSetInteractionView(); ~QmitkPointSetInteractionView() override; void SetFocus() override; void RenderWindowPartActivated(mitk::IRenderWindowPart* renderWindowPart) override; void RenderWindowPartDeactivated(mitk::IRenderWindowPart* renderWindowPart) override; private Q_SLOT: void OnCurrentSelectionChanged(QList nodes); void OnAddPointSetClicked(); private: void CreateQtPartControl(QWidget *parent) override; Ui::QmitkPointSetInteractionViewControls* m_Controls; - std::unique_ptr m_SelectionServiceConnector; - }; #endif // QMITKPOINTSETINTERACTIONVIEW_H