Skip to content

Commit e9b378c

Browse files
committed
Use LabelProxyAction for Size/Opacity pickers
Replace direct DatasetPickerAction additions for point size and opacity with LabelProxyAction wrappers (labels "Size" and "Opacity") and include actions/LabelProxyAction.h instead of QMenu. Remove the now-unused setupPointSizeDatasetPickerAction and setupPointOpacityDatasetPickerAction declarations and implementations, and clean up related filter/invalidation code. This simplifies the dataset picker UI wiring and removes dead/commented code in DatasetsAction.cpp/.h.
1 parent 6d17335 commit e9b378c

File tree

2 files changed

+3
-102
lines changed

2 files changed

+3
-102
lines changed

src/DatasetsAction.cpp

Lines changed: 3 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
#include <ClusterData/ClusterData.h>
66
#include <ColorData/ColorData.h>
77

8-
#include <QMenu>
8+
#include <actions/LabelProxyAction.h>
99

1010
using namespace mv;
1111
using namespace mv::gui;
@@ -34,8 +34,8 @@ DatasetsAction::DatasetsAction(QObject* parent, const QString& title) :
3434

3535
addAction(&_positionDatasetPickerAction);
3636
addAction(&_colorDatasetPickerAction);
37-
addAction(const_cast<DatasetPickerAction*>(&pointPlotAction.getSizeAction().getSourceDatasetPickerAction()));
38-
addAction(const_cast<DatasetPickerAction*>(&pointPlotAction.getOpacityAction().getSourceDatasetPickerAction()));
37+
addAction(new LabelProxyAction(this, "Size", const_cast<DatasetPickerAction*>(&pointPlotAction.getSizeAction().getSourceDatasetPickerAction())));
38+
addAction(new LabelProxyAction(this, "Opacity", const_cast<DatasetPickerAction*>(&pointPlotAction.getOpacityAction().getSourceDatasetPickerAction())));
3939

4040
_positionDatasetPickerAction.setDefaultWidgetFlag(OptionAction::Clearable);
4141
_colorDatasetPickerAction.setDefaultWidgetFlag(OptionAction::Clearable);
@@ -44,8 +44,6 @@ DatasetsAction::DatasetsAction(QObject* parent, const QString& title) :
4444

4545
const auto invalidateFilters = [this, scatterplotPlugin]() -> void {
4646
_colorDatasetPickerAction.invalidateFilter();
47-
//_pointSizeDatasetPickerAction.invalidateFilter();
48-
//_pointOpacityDatasetPickerAction.invalidateFilter();
4947
};
5048

5149
connect(&_positionDatasetPickerAction, &DatasetPickerAction::datasetPicked, [this, scatterplotPlugin, invalidateFilters](Dataset<DatasetImpl> pickedDataset) -> void {
@@ -115,8 +113,6 @@ void DatasetsAction::setupDatasetPickerActions(ScatterplotPlugin* scatterplotPlu
115113
{
116114
setupPositionDatasetPickerAction(scatterplotPlugin);
117115
setupColorDatasetPickerAction(scatterplotPlugin);
118-
setupPointSizeDatasetPickerAction(scatterplotPlugin);
119-
setupPointOpacityDatasetPickerAction(scatterplotPlugin);
120116
}
121117

122118
void DatasetsAction::setupPositionDatasetPickerAction(ScatterplotPlugin* scatterplotPlugin)
@@ -171,89 +167,6 @@ void DatasetsAction::setupColorDatasetPickerAction(ScatterplotPlugin* scatterplo
171167
});
172168
}
173169

174-
void DatasetsAction::setupPointSizeDatasetPickerAction(ScatterplotPlugin* scatterplotPlugin)
175-
{
176-
auto& settingsAction = scatterplotPlugin->getSettingsAction();
177-
auto& pointPlotAction = settingsAction.getPlotAction().getPointPlotAction();
178-
auto& pointSizeAction = pointPlotAction.getSizeAction();
179-
/*
180-
_pointSizeDatasetPickerAction.setFilterFunction([this, scatterplotPlugin](mv::Dataset<DatasetImpl> dataset) -> bool {
181-
if (!scatterplotPlugin->getPositionDataset().isValid())
182-
return false;
183-
184-
if (dataset->getDataType() != PointType)
185-
return false;
186-
187-
return true;
188-
});
189-
190-
connect(&_pointSizeDatasetPickerAction, &DatasetPickerAction::currentIndexChanged, this, [this, &pointPlotAction, &pointSizeAction, scatterplotPlugin](const int32_t& currentIndex) -> void {
191-
const auto& pointSizeDataset = _pointSizeDatasetPickerAction.getCurrentDataset();
192-
193-
if (pointSizeDataset.isValid())
194-
disconnect(&_pointSizeDataset, &Dataset<>::guiNameChanged, this, nullptr);
195-
196-
_pointSizeDataset = pointSizeDataset;
197-
198-
connect(&_pointSizeDataset, &Dataset<>::guiNameChanged, scatterplotPlugin, &ScatterplotPlugin::updateHeadsUpDisplay);
199-
200-
pointPlotAction.setCurrentPointSizeDataset(_pointSizeDataset);
201-
202-
if (!_pointSizeDataset.isValid())
203-
pointSizeAction.setCurrentSourceIndex(ScalarSourceModel::DefaultRow::Constant);
204-
});
205-
206-
connect(&pointSizeAction, &ScalarAction::sourceSelectionChanged, this, [this, &pointSizeAction](const uint32_t& sourceSelectionIndex) -> void {
207-
_pointSizeDatasetPickerAction.setCurrentDataset(pointSizeAction.isSourceDataset() ? pointSizeAction.getCurrentDataset() : nullptr);
208-
209-
if (!pointSizeAction.isSourceDataset())
210-
_pointSizeDatasetPickerAction.setCurrentIndex(-1);
211-
});
212-
*/
213-
}
214-
215-
void DatasetsAction::setupPointOpacityDatasetPickerAction(ScatterplotPlugin* scatterplotPlugin)
216-
{
217-
auto& settingsAction = scatterplotPlugin->getSettingsAction();
218-
auto& pointPlotAction = settingsAction.getPlotAction().getPointPlotAction();
219-
auto& pointOpacityAction = pointPlotAction.getOpacityAction();
220-
221-
/*
222-
_pointOpacityDatasetPickerAction.setFilterFunction([this, scatterplotPlugin](mv::Dataset<DatasetImpl> dataset) -> bool {
223-
if (!scatterplotPlugin->getPositionDataset().isValid())
224-
return false;
225-
226-
if (dataset->getDataType() != PointType)
227-
return false;
228-
229-
return true;
230-
});
231-
232-
connect(&_pointOpacityDatasetPickerAction, &DatasetPickerAction::currentIndexChanged, this, [this, &pointPlotAction, &pointOpacityAction, scatterplotPlugin](const int32_t& currentIndex) -> void {
233-
const auto& pointOpacityDataset = _pointOpacityDatasetPickerAction.getCurrentDataset();
234-
235-
if (pointOpacityDataset.isValid())
236-
disconnect(&_pointOpacityDataset, &Dataset<>::guiNameChanged, this, nullptr);
237-
238-
_pointOpacityDataset = pointOpacityDataset;
239-
240-
connect(&_pointOpacityDataset, &Dataset<>::guiNameChanged, scatterplotPlugin, &ScatterplotPlugin::updateHeadsUpDisplay);
241-
242-
pointPlotAction.setCurrentPointOpacityDataset(_pointOpacityDataset);
243-
244-
if (!_pointOpacityDataset.isValid())
245-
pointOpacityAction.setCurrentSourceIndex(ScalarSourceModel::DefaultRow::Constant);
246-
});
247-
248-
connect(&pointOpacityAction, &ScalarAction::sourceSelectionChanged, this, [this, &pointOpacityAction](const uint32_t& sourceSelectionIndex) -> void {
249-
_pointOpacityDatasetPickerAction.setCurrentDataset(pointOpacityAction.isSourceDataset() ? pointOpacityAction.getCurrentDataset() : nullptr);
250-
251-
if (!pointOpacityAction.isSourceDataset())
252-
_pointOpacityDatasetPickerAction.setCurrentIndex(-1);
253-
});
254-
*/
255-
}
256-
257170
void DatasetsAction::invalidateDatasetPickerActionFilters()
258171
{
259172
_positionDatasetPickerAction.invalidateFilter();

src/DatasetsAction.h

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -71,18 +71,6 @@ class DatasetsAction : public GroupAction
7171
*/
7272
void setupColorDatasetPickerAction(ScatterplotPlugin* scatterplotPlugin);
7373

74-
/**
75-
* Set up the point size dataset picker action with the point size datasets from the scatter plot plugin
76-
* @param scatterplotPlugin Pointer to scatter plot plugin whose point size datasets are used to populate the dataset picker action
77-
*/
78-
void setupPointSizeDatasetPickerAction(ScatterplotPlugin* scatterplotPlugin);
79-
80-
/**
81-
* Set up the point opacity dataset picker action with the point opacity datasets from the scatter plot plugin
82-
* @param scatterplotPlugin Pointer to scatter plot plugin whose point opacity datasets are used to populate the dataset picker action
83-
*/
84-
void setupPointOpacityDatasetPickerAction(ScatterplotPlugin* scatterplotPlugin);
85-
8674
/** Update the filters of the dataset picker actions based on the current datasets in the scatter plot plugin */
8775
void invalidateDatasetPickerActionFilters();
8876

0 commit comments

Comments
 (0)