diff --git a/src/PointPlotAction.cpp b/src/PointPlotAction.cpp index e5c33ab..2425ab6 100644 --- a/src/PointPlotAction.cpp +++ b/src/PointPlotAction.cpp @@ -162,6 +162,10 @@ void PointPlotAction::initialize(ScatterplotPlugin* scatterplotPlugin) connect(&_opacityAction, &ScalarAction::magnitudeChanged, this, &PointPlotAction::updateScatterPlotWidgetPointOpacityScalars); connect(&_opacityAction, &ScalarAction::offsetChanged, this, &PointPlotAction::updateScatterPlotWidgetPointOpacityScalars); connect(&_opacityAction, &ScalarAction::sourceSelectionChanged, this, &PointPlotAction::updateScatterPlotWidgetPointOpacityScalars); + connect(&_opacityAction.getSourceDatasetPickerAction(), &DatasetPickerAction::datasetPicked, this, [this](Dataset<> picked) -> void { + setCurrentPointOpacityDataset(Dataset(picked)); + }); + connect(&_opacityAction, &ScalarAction::sourceDataChanged, this, &PointPlotAction::updateScatterPlotWidgetPointOpacityScalars); connect(&_opacityAction, &ScalarAction::scalarRangeChanged, this, &PointPlotAction::updateScatterPlotWidgetPointOpacityScalars); } diff --git a/src/ScalarAction.cpp b/src/ScalarAction.cpp index 57653e4..24f86b6 100644 --- a/src/ScalarAction.cpp +++ b/src/ScalarAction.cpp @@ -29,13 +29,16 @@ ScalarAction::ScalarAction(QObject* parent, const QString& title, const float& m if (auto scatterplotPlugin = dynamic_cast(findPluginAncestor())) { auto positionDataset = scatterplotPlugin->getPositionDataset(); auto scalarSourcePointsDataset = Dataset(getCurrentDataset()); - const auto numScalars = scalarSourcePointsDataset->getNumPoints(); - const auto numPositions = positionDataset->getNumPoints(); - if (numScalars != numPositions) { - emitSourceSelectionChanged = false; + if (scalarSourcePointsDataset.isValid() && positionDataset.isValid()) { + const auto numScalars = scalarSourcePointsDataset->getNumPoints(); + const auto numPositions = positionDataset->getNumPoints(); - scatterplotPlugin->addNotification(QString("The number of points in the scalar source dataset does not match the number of points in the position dataset. (numPositions=%1, numScalars:%2)").arg(QString::number(numPositions), QString::number(numScalars))); + if (numScalars != numPositions) { + emitSourceSelectionChanged = false; + + scatterplotPlugin->addNotification(QString("The number of points in the scalar source dataset does not match the number of points in the position dataset. (numPositions=%1, numScalars:%2)").arg(QString::number(numPositions), QString::number(numScalars))); + } } } } else {