diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkCreateMultiLabelPresetAction.cpp b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkCreateMultiLabelPresetAction.cpp index eba3f97670..37facd0558 100644 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkCreateMultiLabelPresetAction.cpp +++ b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkCreateMultiLabelPresetAction.cpp @@ -1,83 +1,63 @@ /*============================================================================ 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 -#include "QFileDialog" -#include "QMessageBox" - -#include "tinyxml.h" - -#include "mitkLabelSetImage.h" -#include "mitkLabelSetIOHelper.h" #include "QmitkCreateMultiLabelPresetAction.h" -QmitkCreateMultiLabelPresetAction::QmitkCreateMultiLabelPresetAction() -{ -} +#include +#include -QmitkCreateMultiLabelPresetAction::~QmitkCreateMultiLabelPresetAction() -{ -} +#include +#include -void QmitkCreateMultiLabelPresetAction::Run( const QList &selectedNodes ) +void QmitkCreateMultiLabelPresetAction::Run(const QList &selectedNodes) { - foreach ( mitk::DataNode::Pointer referenceNode, selectedNodes ) + for (auto node : selectedNodes) { - if (referenceNode.IsNotNull()) + if (node.IsNull()) + continue; + + mitk::LabelSetImage::Pointer image = dynamic_cast(node->GetData()); + + if (image.IsNull()) + continue; + + const auto filename = QFileDialog::getSaveFileName(nullptr, QStringLiteral("Save LabelSet Preset"), + QString(), QStringLiteral("LabelSet Preset (*.lsetp)")).toStdString(); + + if (filename.empty()) + continue; + + if(!mitk::LabelSetIOHelper::SaveLabelSetImagePreset(filename, image)) { - mitk::LabelSetImage::Pointer referenceImage = dynamic_cast( referenceNode->GetData() ); - assert(referenceImage); - - if(referenceImage->GetNumberOfLabels() <= 1) - { - QMessageBox::information(nullptr, "Create LabelSetImage Preset", "Could not create a LabelSetImage preset.\nNo Labels defined!\n");\ - return; - } - - std::string sName = referenceNode->GetName(); - QString qName; - qName.sprintf("%s.lsetp",sName.c_str()); - QString filename = QFileDialog::getSaveFileName( nullptr,"save file dialog",QString(),"LabelSet Preset(*.lsetp)"); - if ( filename.isEmpty() ) - return; - - std::string fileName = filename.toStdString(); - bool wasSaved = mitk::LabelSetIOHelper::SaveLabelSetImagePreset(fileName,referenceImage); - - if(!wasSaved) - { - QMessageBox::information(nullptr, "Create LabelSetImage Preset", "Could not save a LabelSetImage preset as Xml.\n");\ - return; - } + QMessageBox::critical(nullptr, QStringLiteral("Save LabelSetImage Preset"), + QString("Could not save \"%1\" as preset.").arg(QString::fromStdString(node->GetName()))); + + continue; } } } -void QmitkCreateMultiLabelPresetAction::SetDataStorage(mitk::DataStorage* dataStorage) +void QmitkCreateMultiLabelPresetAction::SetDataStorage(mitk::DataStorage*) { - m_DataStorage = dataStorage; } -void QmitkCreateMultiLabelPresetAction::SetFunctionality(berry::QtViewPart* /*functionality*/) +void QmitkCreateMultiLabelPresetAction::SetFunctionality(berry::QtViewPart*) { - //not needed } void QmitkCreateMultiLabelPresetAction::SetSmoothed(bool) { - //not needed } void QmitkCreateMultiLabelPresetAction::SetDecimated(bool) { - //not needed } diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkCreateMultiLabelPresetAction.h b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkCreateMultiLabelPresetAction.h index 3e0b4873ae..2406a22bd8 100644 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkCreateMultiLabelPresetAction.h +++ b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkCreateMultiLabelPresetAction.h @@ -1,46 +1,34 @@ /*============================================================================ 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 QMITK_QmitkCreateMultiLabelPresetAction_H -#define QMITK_QmitkCreateMultiLabelPresetAction_H -#include "mitkIContextMenuAction.h" +#ifndef QmitkCreateMultiLabelPresetAction_h +#define QmitkCreateMultiLabelPresetAction_h -#include "org_mitk_gui_qt_multilabelsegmentation_Export.h" +#include -#include "vector" -#include "mitkDataNode.h" - -class MITK_QT_SEGMENTATION QmitkCreateMultiLabelPresetAction : public QObject, public mitk::IContextMenuAction +class QmitkCreateMultiLabelPresetAction : public QObject, public mitk::IContextMenuAction { Q_OBJECT Q_INTERFACES(mitk::IContextMenuAction) public: - - QmitkCreateMultiLabelPresetAction(); - ~QmitkCreateMultiLabelPresetAction() override; - - //interface methods - void Run( const QList& selectedNodes ) override; - void SetDataStorage(mitk::DataStorage* dataStorage) override; - void SetFunctionality(berry::QtViewPart* functionality) override; - void SetSmoothed(bool smoothed) override; - void SetDecimated(bool decimated) override; - -private: - - typedef QList NodeList; - - mitk::DataStorage::Pointer m_DataStorage; + QmitkCreateMultiLabelPresetAction() = default; + ~QmitkCreateMultiLabelPresetAction() override = default; + + void Run(const QList& selectedNodes) override; + void SetDataStorage(mitk::DataStorage*) override; + void SetFunctionality(berry::QtViewPart*) override; + void SetSmoothed(bool) override; + void SetDecimated(bool) override; }; -#endif // QMITK_CreateMultiLabelSegmentation_H +#endif diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkLoadMultiLabelPresetAction.cpp b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkLoadMultiLabelPresetAction.cpp index 3785b892c0..b5ab7769e2 100644 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkLoadMultiLabelPresetAction.cpp +++ b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkLoadMultiLabelPresetAction.cpp @@ -1,72 +1,56 @@ /*============================================================================ 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 "QmitkLoadMultiLabelPresetAction.h" -#include "mitkLabelSetImage.h" -#include "mitkLabelSetIOHelper.h" -#include "mitkRenderingManager.h" +#include "QmitkLoadMultiLabelPresetAction.h" -#include "QFileDialog" -#include "QInputDialog" -#include "QMessageBox" +#include +#include -#include "tinyxml.h" +#include -QmitkLoadMultiLabelPresetAction::QmitkLoadMultiLabelPresetAction() +void QmitkLoadMultiLabelPresetAction::Run(const QList &selectedNodes) { -} + const auto filename = QFileDialog::getOpenFileName(nullptr, QStringLiteral("Load LabelSet Preset"), + QString(), QStringLiteral("LabelSet Preset (*.lsetp)")).toStdString(); -QmitkLoadMultiLabelPresetAction::~QmitkLoadMultiLabelPresetAction() -{ -} + if (filename.empty()) + return; -void QmitkLoadMultiLabelPresetAction::Run( const QList &selectedNodes ) -{ - foreach ( mitk::DataNode::Pointer referenceNode, selectedNodes ) + for (auto node : selectedNodes) { + if (node.IsNull()) + continue; - if (referenceNode.IsNull()) return; - - mitk::LabelSetImage::Pointer referenceImage = dynamic_cast( referenceNode->GetData() ); - assert(referenceImage); + mitk::LabelSetImage::Pointer image = dynamic_cast(node->GetData()); - std::string sName = referenceNode->GetName(); - QString qName; - qName.sprintf("%s.lsetp",sName.c_str()); - QString filename = QFileDialog::getOpenFileName(nullptr,"Load file",QString(),"LabelSet Preset(*.lsetp)"); - if ( filename.isEmpty() ) - return; + if (image.IsNull()) + continue; - std::string fileName = filename.toStdString(); - mitk::LabelSetIOHelper::LoadLabelSetImagePreset(fileName, referenceImage); + mitk::LabelSetIOHelper::LoadLabelSetImagePreset(filename, image); } } -void QmitkLoadMultiLabelPresetAction::SetDataStorage(mitk::DataStorage* dataStorage) +void QmitkLoadMultiLabelPresetAction::SetDataStorage(mitk::DataStorage*) { - m_DataStorage = dataStorage; } -void QmitkLoadMultiLabelPresetAction::SetFunctionality(berry::QtViewPart* /*functionality*/) +void QmitkLoadMultiLabelPresetAction::SetFunctionality(berry::QtViewPart*) { - //not needed } void QmitkLoadMultiLabelPresetAction::SetSmoothed(bool) { - //not needed } void QmitkLoadMultiLabelPresetAction::SetDecimated(bool) { - //not needed } diff --git a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkLoadMultiLabelPresetAction.h b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkLoadMultiLabelPresetAction.h index d6c98a59a7..ed46186cae 100644 --- a/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkLoadMultiLabelPresetAction.h +++ b/Plugins/org.mitk.gui.qt.multilabelsegmentation/src/internal/QmitkLoadMultiLabelPresetAction.h @@ -1,46 +1,34 @@ /*============================================================================ 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 QMITK_QmitkLoadMultiLabelPresetAction_H -#define QMITK_QmitkLoadMultiLabelPresetAction_H -#include "mitkIContextMenuAction.h" +#ifndef QmitkLoadMultiLabelPresetAction_h +#define QmitkLoadMultiLabelPresetAction_h -#include "org_mitk_gui_qt_multilabelsegmentation_Export.h" +#include -#include "vector" -#include "mitkDataNode.h" - -class MITK_QT_SEGMENTATION QmitkLoadMultiLabelPresetAction : public QObject, public mitk::IContextMenuAction +class QmitkLoadMultiLabelPresetAction : public QObject, public mitk::IContextMenuAction { Q_OBJECT Q_INTERFACES(mitk::IContextMenuAction) public: - - QmitkLoadMultiLabelPresetAction(); - ~QmitkLoadMultiLabelPresetAction() override; - - //interface methods - void Run( const QList& selectedNodes ) override; - void SetDataStorage(mitk::DataStorage* dataStorage) override; - void SetFunctionality(berry::QtViewPart* functionality) override; - void SetSmoothed(bool smoothed) override; - void SetDecimated(bool decimated) override; - -private: - - typedef QList NodeList; - - mitk::DataStorage::Pointer m_DataStorage; + QmitkLoadMultiLabelPresetAction() = default; + ~QmitkLoadMultiLabelPresetAction() override = default; + + void Run(const QList& selectedNodes) override; + void SetDataStorage(mitk::DataStorage*) override; + void SetFunctionality(berry::QtViewPart*) override; + void SetSmoothed(bool) override; + void SetDecimated(bool) override; }; -#endif // QMITK_CreateMultiLabelSegmentation_H +#endif