Skip to content

Commit e1bac5f

Browse files
authored
Make SettingsAction and toolbar QPointers (#238)
Convert SettingsAction and HorizontalToolbarAction members to QPointer types and create them with new, updating construction and all call sites accordingly. Update ScatterplotPlugin::getSettingsAction() to return a reference to the dereferenced QPointer. Replace direct member accesses with pointer-style (->) calls and adjust several call sites to obtain SettingsAction via dynamic_cast from parent()/parent()->parent() where appropriate (DatasetsAction, DensityPlotAction). Miscellaneous fixes: update toolbar widget creation, parent assignment, and serialization calls to use the new pointer members; small formatting and reference adjustments throughout impacted files.
1 parent 05df957 commit e1bac5f

File tree

4 files changed

+69
-69
lines changed

4 files changed

+69
-69
lines changed

src/DatasetsAction.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ DatasetsAction::DatasetsAction(QObject* parent, const QString& title) :
2828
if (scatterplotPlugin == nullptr)
2929
return;
3030

31-
auto& settingsAction = scatterplotPlugin->getSettingsAction();
31+
auto& settingsAction = *dynamic_cast<SettingsAction*>(parent);
3232
auto& plotAction = settingsAction.getPlotAction();
3333
auto& pointPlotAction = plotAction.getPointPlotAction();
3434

@@ -132,7 +132,7 @@ void DatasetsAction::setupPositionDatasetPickerAction(ScatterplotPlugin* scatter
132132

133133
void DatasetsAction::setupColorDatasetPickerAction(ScatterplotPlugin* scatterplotPlugin)
134134
{
135-
auto& settingsAction = scatterplotPlugin->getSettingsAction();
135+
auto& settingsAction = *dynamic_cast<SettingsAction*>(parent());
136136

137137
_colorDatasetPickerAction.setFilterFunction([this, scatterplotPlugin](mv::Dataset<DatasetImpl> dataset) -> bool {
138138
if (!(dataset->getDataType() == PointType || dataset->getDataType() == ColorType || dataset->getDataType() == ClusterType))

src/DensityPlotAction.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,15 @@ void DensityPlotAction::initialize(ScatterplotPlugin* scatterplotPlugin)
3030
_scatterplotPlugin = scatterplotPlugin;
3131

3232
const auto computeDensity = [this]() -> void {
33-
if (static_cast<std::int32_t>(_scatterplotPlugin->getSettingsAction().getRenderModeAction().getCurrentIndex()) == ScatterplotWidget::RenderMode::SCATTERPLOT)
33+
if (static_cast<std::int32_t>(dynamic_cast<SettingsAction*>(parent()->parent())->getRenderModeAction().getCurrentIndex()) == ScatterplotWidget::RenderMode::SCATTERPLOT)
3434
return;
3535

3636
_scatterplotPlugin->getScatterplotWidget().setSigma(_sigmaAction.getValue());
3737

3838
const auto maxDensity = _scatterplotPlugin->getScatterplotWidget().getDensityRenderer().getMaxDensity();
3939

4040
if (maxDensity > 0)
41-
_scatterplotPlugin->getSettingsAction().getColoringAction().getColorMap1DAction().getRangeAction(ColorMapAction::Axis::X).setRange({ 0.0f, maxDensity });
41+
dynamic_cast<SettingsAction*>(parent()->parent())->getColoringAction().getColorMap1DAction().getRangeAction(ColorMapAction::Axis::X).setRange({ 0.0f, maxDensity });
4242
};
4343

4444
connect(&_sigmaAction, &DecimalAction::valueChanged, this, computeDensity);
@@ -59,7 +59,7 @@ void DensityPlotAction::initialize(ScatterplotPlugin* scatterplotPlugin)
5959
computeDensity();
6060
});
6161

62-
connect(&_scatterplotPlugin->getSettingsAction().getRenderModeAction(), &OptionAction::currentIndexChanged, this, computeDensity);
62+
connect(&dynamic_cast<SettingsAction*>(parent()->parent())->getRenderModeAction(), &OptionAction::currentIndexChanged, this, computeDensity);
6363

6464
updateSigmaAction();
6565
computeDensity();

0 commit comments

Comments
 (0)