@@ -72,10 +72,33 @@ ColoringAction::ColoringAction(QObject* parent, const QString& title) :
7272
7373 const auto currentColorDataset = getCurrentColorDataset ();
7474
75- if (currentColorDataset.isValid ()) {
76- const auto currentColorDatasetTypeIsPointType = currentColorDataset->getDataType () == PointType;
75+ if (_currentColorPointsDataset.isValid ()) {
76+ disconnect (&_currentColorPointsDataset, &Dataset<Points>::dataDimensionsChanged, this , nullptr );
77+ }
7778
78- _dimensionAction.setPointsDataset (currentColorDatasetTypeIsPointType ? Dataset<Points>(currentColorDataset) : Dataset<Points>());
79+ _currentColorPointsDataset = Dataset<Points>();
80+
81+ if (currentColorDataset.isValid ()) {
82+ if (currentColorDataset->getDataType () == PointType) {
83+ _currentColorPointsDataset = currentColorDataset.get <Points>();
84+
85+ if (_currentColorPointsDataset.isValid ()) {
86+ connect (&_currentColorPointsDataset, &Dataset<Points>::dataDimensionsChanged, this , [this ]() {
87+ if (_currentColorPointsDataset.isValid ()) {
88+ _dimensionAction.setPointsDataset (_currentColorPointsDataset);
89+ updateScatterPlotWidgetColors ();
90+ }
91+ });
92+
93+ _dimensionAction.setPointsDataset (_currentColorPointsDataset);
94+ }
95+ else {
96+ _dimensionAction.setPointsDataset (Dataset<Points>());
97+ }
98+ }
99+ else {
100+ _dimensionAction.setPointsDataset (Dataset<Points>());
101+ }
79102 // _dimensionAction.setVisible(currentColorDatasetTypeIsPointType);
80103
81104 emit currentColorDatasetChanged (currentColorDataset);
0 commit comments