Page MenuHomePhabricator

2023 Week 11 (Mid March)
Updated 329 Days AgoPublic

Previous changelog โ€ข Next changelog

๐Ÿ›  Third-party dependency changes

none

โœจ New features

  • MITK provides a CITATION.cff file (see What is a CITATION.cff file?)
  • 2-d and 3-d interpolation of segmentations also work with multi-layer multi-label segmentations
  • Double-clicking on a label in the Segmentation View moves the crosshair / views to the label's center of mass.

๐Ÿ› Bugfixes

  • The "Scan directory" button in the DICOM Browser no longer freezes the application on macOS
  • Loading a segmentation after the Standard Display has been closed does no longer crash
  • Segmentations cannot be saved as unsupported file formats anymore regarding the multi-layer feature
  • Unsupported segmentation formats like legacy binary masks can no longer be selected by default as segmentations (right-click image in Data Manager and choose "Convert to Segmentation" instead)

๐Ÿ”ฅ API-breaking changes

Preferences moved from BlueBerry to MITK Core Services

The preferences core service completely replaces the previous preferences service of BlueBerry, making preferences finally available in modules.

Migration is straight forward, as the interface of the core preferences service is as equal as possible to the BlueBerry preferences service.

The only difference is the replacement of Qt types with std types, in particular the replacement of QString with std::string.

You may want to adapt your string types when migrating to the new service or use methods like QString::fromStdString() and QString::toStdString(). In other occasions where std strings have been used already, you can remove conversions like std::string::c_str() that are not necessary anymore.

While migrating the BlueBerry preferences we noticed that quite a few functionalities were never fully implemented, erroneous, or completely unused. We took the opportunity to remove them. In the uncertain case you miss such a previous "feature" that you assumed to work fine for you, give us a note so we can double check.

Retrieving and using the new core preferences service is easy:

#include <mitkCoreServices.h>
#include <mitkIPreferencesService.h>
#include <mitkIPreferences.h>

auto* preferencesService = mitk::CoreServices::GetPreferencesService();
auto* preferences = preferencesService->GetSystemPreferences();

auto myPreference = preferences->Get("my preference", "default value"); // std::string

When you use the core preferences service in an MITK plugin, make sure that you initialize the CppMicroServices. The perfect location for this is in a plugin activator class:

PluginActivator.cpp
#include <usModuleInitialization.h>

US_INITIALIZE_MODULE

Merged enums for view directions / plane orientations

Use the new AnatomicalPlane enum instead of the BaseRenderer::ViewDirection, SliceNavigationController::ViewDirection, or PlaneGeometry::PlaneOrientation enums.

Both ViewDirection::THREE_D and PlaneOrientation::None map to AnatomicalPlane::Original.

Other API-breaking changes

In an ongoing cleanup effort, many deprecated or unused classes, methods, and other code snippets were removed or refactored. Migration should be straight forward if necessary at all.

In case you experience any trouble while doing so, please do not hesitate to contact us.

Previous changelog โ€ข Next changelog

Last Author
kislinsk
Last Edited
May 4 2023, 3:03 PM