From ba44c4a682e0a647dba23a1d9647519ee51227a7 Mon Sep 17 00:00:00 2001 From: Alexander Vieth Date: Mon, 30 Mar 2026 10:34:05 +0200 Subject: [PATCH 1/5] Fix crash because intermediate function result goes out of scope, same as: https://github.com/ManiVaultStudio/Scatterplot/commit/29c0bc0f00b4bf46655b63eb767181f4ca8beafc --- DVRTransferFunction/src/TransferFunctionPlugin.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DVRTransferFunction/src/TransferFunctionPlugin.cpp b/DVRTransferFunction/src/TransferFunctionPlugin.cpp index 1a57c8c..7615759 100644 --- a/DVRTransferFunction/src/TransferFunctionPlugin.cpp +++ b/DVRTransferFunction/src/TransferFunctionPlugin.cpp @@ -87,7 +87,7 @@ TransferFunctionPlugin::TransferFunctionPlugin(const PluginFactory* factory) : if (datasetsMimeData->getDatasets().count() > 1) return dropRegions; - const auto& dataset = datasetsMimeData->getDatasets().first(); + const auto dataset = datasetsMimeData->getDatasets().first(); const auto datasetGuiName = dataset->text(); const auto datasetId = dataset->getId(); const auto dataType = dataset->getDataType(); From ba816fdae0e63bfb0298a01ee9a6699b33bd1aa8 Mon Sep 17 00:00:00 2001 From: Alexander Vieth Date: Mon, 30 Mar 2026 10:34:18 +0200 Subject: [PATCH 2/5] This plugin only handles points --- DVRTransferFunction/src/TransferFunctionPlugin.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/DVRTransferFunction/src/TransferFunctionPlugin.cpp b/DVRTransferFunction/src/TransferFunctionPlugin.cpp index 7615759..b6e4678 100644 --- a/DVRTransferFunction/src/TransferFunctionPlugin.cpp +++ b/DVRTransferFunction/src/TransferFunctionPlugin.cpp @@ -91,11 +91,6 @@ TransferFunctionPlugin::TransferFunctionPlugin(const PluginFactory* factory) : const auto datasetGuiName = dataset->text(); const auto datasetId = dataset->getId(); const auto dataType = dataset->getDataType(); - const auto dataTypes = DataTypes({ PointType , ColorType, ClusterType }); - - // Check if the data type can be dropped - if (!dataTypes.contains(dataType)) - dropRegions << new DropWidget::DropRegion(this, "Incompatible data", "This type of data is not supported", "exclamation-circle", false); // Points dataset is about to be dropped if (dataType == PointType) { @@ -125,6 +120,10 @@ TransferFunctionPlugin::TransferFunctionPlugin(const PluginFactory* factory) : } } } + else + { + dropRegions << new DropWidget::DropRegion(this, "Incompatible data", "This type of data is not supported", "exclamation-circle", false); + } return dropRegions; }); From 4cadaf67a425d8445761d1ca1055eb631854a72a Mon Sep 17 00:00:00 2001 From: Alexander Vieth Date: Mon, 30 Mar 2026 10:39:58 +0200 Subject: [PATCH 3/5] Move variables to if --- DVRTransferFunction/src/TransferFunctionPlugin.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/DVRTransferFunction/src/TransferFunctionPlugin.cpp b/DVRTransferFunction/src/TransferFunctionPlugin.cpp index b6e4678..12d9681 100644 --- a/DVRTransferFunction/src/TransferFunctionPlugin.cpp +++ b/DVRTransferFunction/src/TransferFunctionPlugin.cpp @@ -88,12 +88,11 @@ TransferFunctionPlugin::TransferFunctionPlugin(const PluginFactory* factory) : return dropRegions; const auto dataset = datasetsMimeData->getDatasets().first(); - const auto datasetGuiName = dataset->text(); - const auto datasetId = dataset->getId(); - const auto dataType = dataset->getDataType(); // Points dataset is about to be dropped - if (dataType == PointType) { + if (dataset->getDataType() == PointType) { + const auto datasetGuiName = dataset->text(); + const auto datasetId = dataset->getId(); // Get points dataset from the core auto candidateDataset = mv::data().getDataset(datasetId); From 4c7edcfc310b07bb66d10f75d744a3fb509de1fc Mon Sep 17 00:00:00 2001 From: Alexander Vieth Date: Mon, 30 Mar 2026 10:40:07 +0200 Subject: [PATCH 4/5] default destructor --- DVRTransferFunction/src/TransferFunctionPlugin.cpp | 4 ---- DVRTransferFunction/src/TransferFunctionPlugin.h | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/DVRTransferFunction/src/TransferFunctionPlugin.cpp b/DVRTransferFunction/src/TransferFunctionPlugin.cpp index 12d9681..d7f6fbb 100644 --- a/DVRTransferFunction/src/TransferFunctionPlugin.cpp +++ b/DVRTransferFunction/src/TransferFunctionPlugin.cpp @@ -153,10 +153,6 @@ TransferFunctionPlugin::TransferFunctionPlugin(const PluginFactory* factory) : getLearningCenterAction().addVideos(QStringList({ "Practitioner", "Developer" })); } -TransferFunctionPlugin::~TransferFunctionPlugin() -{ -} - void TransferFunctionPlugin::init() { auto layout = new QVBoxLayout(); diff --git a/DVRTransferFunction/src/TransferFunctionPlugin.h b/DVRTransferFunction/src/TransferFunctionPlugin.h index dad326d..a5e41ba 100644 --- a/DVRTransferFunction/src/TransferFunctionPlugin.h +++ b/DVRTransferFunction/src/TransferFunctionPlugin.h @@ -31,7 +31,7 @@ class TransferFunctionPlugin : public ViewPlugin public: TransferFunctionPlugin(const PluginFactory* factory); - ~TransferFunctionPlugin() override; + ~TransferFunctionPlugin() override = default; void init() override; From 8d50be0b66b85a46b1f40b33f5a8e6c0679d6c5a Mon Sep 17 00:00:00 2001 From: Alexander Vieth Date: Mon, 30 Mar 2026 10:40:18 +0200 Subject: [PATCH 5/5] Remove unused variable --- DVRTransferFunction/src/TransferFunctionPlugin.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/DVRTransferFunction/src/TransferFunctionPlugin.h b/DVRTransferFunction/src/TransferFunctionPlugin.h index a5e41ba..16381a6 100644 --- a/DVRTransferFunction/src/TransferFunctionPlugin.h +++ b/DVRTransferFunction/src/TransferFunctionPlugin.h @@ -95,8 +95,6 @@ class TransferFunctionPlugin : public ViewPlugin QPointer _materialSettings; /** Material settings action */ QPointer _primaryToolbarAction; /** Horizontal toolbar for primary content */ - static const std::int32_t LAZY_UPDATE_INTERVAL = 2; - }; // =============================================================================