diff --git a/Modules/QtWidgets/resource/Qmitk.qrc b/Modules/QtWidgets/resource/Qmitk.qrc
index f38e7de208..9af3f566b3 100644
--- a/Modules/QtWidgets/resource/Qmitk.qrc
+++ b/Modules/QtWidgets/resource/Qmitk.qrc
@@ -1,29 +1,30 @@
Binaerbilder_48.png
Images_48.png
PointSet_48.png
Segmentation_48.png
Surface_48.png
mm_pointer.png
mm_scroll.png
mm_zoom.png
mm_contrast.png
mm_pan.png
LabelSetImage_48.png
mwLayout.png
mwSynchronized.png
mwDesynchronized.png
mwMITK.png
mwPACS.png
star-solid.svg
history-solid.svg
tree_inspector.svg
list-solid.svg
favorite_add.svg
favorite_remove.svg
hourglass-half-solid.svg
times.svg
reset.svg
+ SegmentationTaskListIcon.svg
diff --git a/Plugins/org.mitk.gui.qt.flow.segmentation/resources/SegmentationTaskListIcon.svg b/Modules/QtWidgets/resource/SegmentationTaskListIcon.svg
similarity index 100%
rename from Plugins/org.mitk.gui.qt.flow.segmentation/resources/SegmentationTaskListIcon.svg
rename to Modules/QtWidgets/resource/SegmentationTaskListIcon.svg
diff --git a/Modules/QtWidgets/src/QmitkNodeDescriptorManager.cpp b/Modules/QtWidgets/src/QmitkNodeDescriptorManager.cpp
index 46a8600375..bd279a298a 100644
--- a/Modules/QtWidgets/src/QmitkNodeDescriptorManager.cpp
+++ b/Modules/QtWidgets/src/QmitkNodeDescriptorManager.cpp
@@ -1,171 +1,175 @@
/*============================================================================
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 "QmitkNodeDescriptorManager.h"
#include
#include
#include
#include
#include
#include
-
+#include
#include
#include
QmitkNodeDescriptorManager* QmitkNodeDescriptorManager::GetInstance()
{
static QmitkNodeDescriptorManager instance;
return &instance;
}
void QmitkNodeDescriptorManager::Initialize()
{
auto isImage = mitk::NodePredicateDataType::New("Image");
AddDescriptor(new QmitkNodeDescriptor(tr("Image"), QString(":/Qmitk/Images_48.png"), isImage, this));
auto isMultiComponentImage = mitk::NodePredicateAnd::New(isImage, mitk::NodePredicateProperty::New("Image.Displayed Component"));
AddDescriptor(new QmitkNodeDescriptor(tr("MultiComponentImage"), QString(": / Qmitk / Images_48.png"), isMultiComponentImage, this));
auto isBinary = mitk::NodePredicateProperty::New("binary", mitk::BoolProperty::New(true));
auto isBinaryImage = mitk::NodePredicateAnd::New(isBinary, isImage);
AddDescriptor(new QmitkNodeDescriptor(tr("ImageMask"), QString(":/Qmitk/Binaerbilder_48.png"), isBinaryImage, this));
auto isLabelSetImage = mitk::NodePredicateDataType::New("LabelSetImage");
AddDescriptor(new QmitkNodeDescriptor(tr("LabelSetImage"), QString(":/Qmitk/LabelSetImage_48.png"), isLabelSetImage, this));
+ auto segmentationTaskListIcon = QmitkStyleManager::ThemeIcon(QStringLiteral(":/Qmitk/SegmentationTaskListIcon.svg"));
+ auto isSegmentationTaskList = mitk::NodePredicateDataType::New("SegmentationTaskList");
+ AddDescriptor(new QmitkNodeDescriptor("SegmentationTaskList", segmentationTaskListIcon, isSegmentationTaskList, this));
+
auto isPointSet = mitk::NodePredicateDataType::New("PointSet");
AddDescriptor(new QmitkNodeDescriptor(tr("PointSet"), QString(":/Qmitk/PointSet_48.png"), isPointSet, this));
auto isSurface = mitk::NodePredicateDataType::New("Surface");
AddDescriptor(new QmitkNodeDescriptor(tr("Surface"), QString(":/Qmitk/Surface_48.png"), isSurface, this));
auto isNotBinary = mitk::NodePredicateNot::New(isBinary);
auto isNoneBinaryImage = mitk::NodePredicateAnd::New(isImage, isNotBinary);
AddDescriptor(new QmitkNodeDescriptor(tr("NoneBinaryImage"), QString(":/Qmitk/Images_48.png"), isNoneBinaryImage, this));
}
void QmitkNodeDescriptorManager::AddDescriptor(QmitkNodeDescriptor* descriptor)
{
descriptor->setParent(this);
m_NodeDescriptors.push_back(descriptor);
}
void QmitkNodeDescriptorManager::RemoveDescriptor(QmitkNodeDescriptor* descriptor)
{
int index = m_NodeDescriptors.indexOf(descriptor);
if (index != -1)
{
m_NodeDescriptors.removeAt(index);
descriptor->setParent(nullptr);
delete descriptor;
}
}
QmitkNodeDescriptor* QmitkNodeDescriptorManager::GetDescriptor(const mitk::DataNode* node) const
{
QmitkNodeDescriptor* descriptor = m_UnknownDataNodeDescriptor;
for (QList::const_iterator it = m_NodeDescriptors.begin(); it != m_NodeDescriptors.end(); ++it)
{
if ((*it)->CheckNode(node))
descriptor = *it;
}
return descriptor;
}
QmitkNodeDescriptor* QmitkNodeDescriptorManager::GetDescriptor(const QString& className) const
{
QmitkNodeDescriptor* descriptor = nullptr;
if (className == "Unknown")
{
return m_UnknownDataNodeDescriptor;
}
else
{
for (QList::const_iterator it = m_NodeDescriptors.begin(); it != m_NodeDescriptors.end(); ++it)
{
if ((*it)->GetNameOfClass() == className)
descriptor = *it;
}
}
return descriptor;
}
QList QmitkNodeDescriptorManager::GetActions(const mitk::DataNode* node) const
{
QList actions = m_UnknownDataNodeDescriptor->GetBatchActions();
actions.append(m_UnknownDataNodeDescriptor->GetActions());
QmitkNodeDescriptor* lastDescriptor = m_UnknownDataNodeDescriptor;
for (QList::const_iterator it = m_NodeDescriptors.begin(); it != m_NodeDescriptors.end(); ++it)
{
if ((*it)->CheckNode(node))
{
actions.append(lastDescriptor->GetSeparator());
lastDescriptor = *it;
actions.append(lastDescriptor->GetBatchActions());
actions.append(lastDescriptor->GetActions());
}
}
return actions;
}
QList QmitkNodeDescriptorManager::GetActions(const QList& nodes) const
{
QList actions = m_UnknownDataNodeDescriptor->GetBatchActions();
QmitkNodeDescriptor* lastDescriptor = m_UnknownDataNodeDescriptor;
// find all descriptors for the nodes (unique)
QSet nodeDescriptors;
for (const auto& node : nodes)
{
for (QList::const_iterator it = m_NodeDescriptors.begin(); it != m_NodeDescriptors.end(); ++it)
{
if ((*it)->CheckNode(node))
{
nodeDescriptors.insert(*it);
}
}
}
// add all actions for the found descriptors
for (const auto& nodeDescriptor : nodeDescriptors)
{
actions.append(lastDescriptor->GetSeparator());
lastDescriptor = nodeDescriptor;
actions.append(lastDescriptor->GetBatchActions());
}
return actions;
}
QmitkNodeDescriptorManager::QmitkNodeDescriptorManager()
: m_UnknownDataNodeDescriptor(new QmitkNodeDescriptor("Unknown", QString(":/Qmitk/DataTypeUnknown_48.png"), nullptr, this))
{
Initialize();
}
QmitkNodeDescriptorManager::~QmitkNodeDescriptorManager()
{
// delete m_UnknownDataNodeDescriptor;
// qDeleteAll(m_NodeDescriptors);
}
QmitkNodeDescriptor *QmitkNodeDescriptorManager::GetUnknownDataNodeDescriptor() const
{
return m_UnknownDataNodeDescriptor;
}
diff --git a/Plugins/org.mitk.gui.qt.flow.segmentation/files.cmake b/Plugins/org.mitk.gui.qt.flow.segmentation/files.cmake
index 45e6d49d05..07628bc3d2 100644
--- a/Plugins/org.mitk.gui.qt.flow.segmentation/files.cmake
+++ b/Plugins/org.mitk.gui.qt.flow.segmentation/files.cmake
@@ -1,46 +1,45 @@
set(SRC_CPP_FILES
)
set(INTERNAL_CPP_FILES
org_mitk_gui_qt_flow_segmentation_Activator.cpp
QmitkSegmentationFlowControlView.cpp
perspectives/QmitkFlowSegmentationPerspective.cpp
)
set(UI_FILES
src/internal/QmitkSegmentationFlowControlView.ui
)
set(MOC_H_FILES
src/internal/org_mitk_gui_qt_flow_segmentation_Activator.h
src/internal/QmitkSegmentationFlowControlView.h
src/internal/perspectives/QmitkFlowSegmentationPerspective.h
)
# list of resource files which can be used by the plug-in
# system without loading the plug-ins shared library,
# for example the icon used in the menu and tabs for the
# plug-in views in the workbench
set(CACHED_RESOURCE_FILES
resources/icon.svg
plugin.xml
resources/perspectives/segmentation_icon.svg
)
# list of Qt .qrc files which contain additional resources
# specific to this plugin
set(QRC_FILES
- resources/SegmentationTaskList.qrc
)
set(CPP_FILES )
foreach(file ${SRC_CPP_FILES})
set(CPP_FILES ${CPP_FILES} src/${file})
endforeach(file ${SRC_CPP_FILES})
foreach(file ${INTERNAL_CPP_FILES})
set(CPP_FILES ${CPP_FILES} src/internal/${file})
endforeach(file ${INTERNAL_CPP_FILES})
diff --git a/Plugins/org.mitk.gui.qt.flow.segmentation/resources/SegmentationTaskList.qrc b/Plugins/org.mitk.gui.qt.flow.segmentation/resources/SegmentationTaskList.qrc
deleted file mode 100644
index 327fbe97d1..0000000000
--- a/Plugins/org.mitk.gui.qt.flow.segmentation/resources/SegmentationTaskList.qrc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- SegmentationTaskListIcon.svg
-
-
diff --git a/Plugins/org.mitk.gui.qt.flow.segmentation/src/internal/org_mitk_gui_qt_flow_segmentation_Activator.cpp b/Plugins/org.mitk.gui.qt.flow.segmentation/src/internal/org_mitk_gui_qt_flow_segmentation_Activator.cpp
index d1aa34e0e6..721bad692e 100644
--- a/Plugins/org.mitk.gui.qt.flow.segmentation/src/internal/org_mitk_gui_qt_flow_segmentation_Activator.cpp
+++ b/Plugins/org.mitk.gui.qt.flow.segmentation/src/internal/org_mitk_gui_qt_flow_segmentation_Activator.cpp
@@ -1,59 +1,45 @@
/*============================================================================
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 "org_mitk_gui_qt_flow_segmentation_Activator.h"
#include "QmitkSegmentationFlowControlView.h"
#include "perspectives/QmitkFlowSegmentationPerspective.h"
#include
#include
-#include
-#include
-
#include
US_INITIALIZE_MODULE
ctkPluginContext* org_mitk_gui_qt_flow_segmentation_Activator::m_Context = nullptr;
void org_mitk_gui_qt_flow_segmentation_Activator::start(ctkPluginContext* context)
{
BERRY_REGISTER_EXTENSION_CLASS(QmitkSegmentationFlowControlView, context)
BERRY_REGISTER_EXTENSION_CLASS(QmitkFlowSegmentationPerspective, context);
- auto* descriptorManager = QmitkNodeDescriptorManager::GetInstance();
-
- if (descriptorManager != nullptr)
- {
- auto icon = QmitkStyleManager::ThemeIcon(QStringLiteral(":/SegmentationTaskList/Icon.svg"));
- auto predicate = mitk::TNodePredicateDataType::New();
- auto* descriptor = new QmitkNodeDescriptor("SegmentationTaskList", icon, predicate, descriptorManager);
-
- descriptorManager->AddDescriptor(descriptor);
- }
-
m_Context = context;
}
void org_mitk_gui_qt_flow_segmentation_Activator::stop(ctkPluginContext* context)
{
Q_UNUSED(context)
m_Context = nullptr;
}
ctkPluginContext* org_mitk_gui_qt_flow_segmentation_Activator::GetContext()
{
return m_Context;
}