Skip to content

Commit add50e9

Browse files
committed
Refactor dataset picker invalidation and reset
Introduce helper lambdas to centralize dataset picker state updates: invalidateFilters() to invalidate dependent filters and resetAuxiliaryDatasets() to clear aux picker selections (setCurrentIndex(-1)). Connect the position picker signal to run the invalidation and connect position dataset change signals to reset auxiliary pickers so color/size/opacity selections are cleared when position datasets change. This removes duplicated calls and ensures auxiliary pickers don't hold stale selections.
1 parent 2410be6 commit add50e9

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

src/DatasetsAction.cpp

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,24 @@ DatasetsAction::DatasetsAction(QObject* parent, const QString& title) :
4242

4343
setupDatasetPickerActions(scatterplotPlugin);
4444

45-
connect(&_positionDatasetPickerAction, &DatasetPickerAction::datasetPicked, [this, scatterplotPlugin](Dataset<DatasetImpl> pickedDataset) -> void {
45+
const auto invalidateFilters = [this, scatterplotPlugin]() -> void {
4646
_colorDatasetPickerAction.invalidateFilter();
4747
_pointSizeDatasetPickerAction.invalidateFilter();
4848
_pointOpacityDatasetPickerAction.invalidateFilter();
49+
};
50+
51+
connect(&_positionDatasetPickerAction, &DatasetPickerAction::datasetPicked, [this, scatterplotPlugin, invalidateFilters](Dataset<DatasetImpl> pickedDataset) -> void {
52+
invalidateFilters();
4953
});
5054

51-
_colorDatasetPickerAction.invalidateFilter();
52-
_pointSizeDatasetPickerAction.invalidateFilter();
53-
_pointOpacityDatasetPickerAction.invalidateFilter();
55+
const auto resetAuxilliaryDatasets = [this]() -> void {
56+
_colorDatasetPickerAction.setCurrentIndex(-1);
57+
_pointSizeDatasetPickerAction.setCurrentIndex(-1);
58+
_pointOpacityDatasetPickerAction.setCurrentIndex(-1);
59+
};
60+
61+
connect(&scatterplotPlugin->getPositionDataset(), &Dataset<Points>::changed, this, resetAuxilliaryDatasets);
62+
connect(&scatterplotPlugin->getPositionSourceDataset(), &Dataset<Points>::changed, this, resetAuxilliaryDatasets);
5463
}
5564

5665
void DatasetsAction::connectToPublicAction(WidgetAction* publicAction, bool recursive)

0 commit comments

Comments
 (0)