Skip to content

Commit 3f358b1

Browse files
committed
Work on incorporating the navigation action
1 parent b281cea commit 3f358b1

4 files changed

Lines changed: 34 additions & 16 deletions

File tree

src/ScatterplotPlugin.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,6 @@ ScatterplotPlugin::ScatterplotPlugin(const PluginFactory* factory) :
6969

7070
_dropWidget = new DropWidget(_scatterPlotWidget);
7171

72-
_scatterPlotWidget->getNavigationAction().setParent(this);
73-
7472
getWidget().setFocusPolicy(Qt::ClickFocus);
7573

7674
_primaryToolbarAction.addAction(&_settingsAction.getDatasetsAction());
@@ -820,8 +818,6 @@ void ScatterplotPlugin::fromVariantMap(const QVariantMap& variantMap)
820818

821819
_primaryToolbarAction.fromParentVariantMap(variantMap);
822820
_settingsAction.fromParentVariantMap(variantMap);
823-
824-
_scatterPlotWidget->getNavigationAction().fromParentVariantMap(variantMap);
825821
}
826822

827823
QVariantMap ScatterplotPlugin::toVariantMap() const
@@ -831,8 +827,6 @@ QVariantMap ScatterplotPlugin::toVariantMap() const
831827
_primaryToolbarAction.insertIntoVariantMap(variantMap);
832828
_settingsAction.insertIntoVariantMap(variantMap);
833829

834-
_scatterPlotWidget->getNavigationAction().insertIntoVariantMap(variantMap);
835-
836830
return variantMap;
837831
}
838832

src/ScatterplotWidget.cpp

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ ScatterplotWidget::ScatterplotWidget(mv::plugin::ViewPlugin* parentPlugin) :
4343
_backgroundColor(255, 255, 255, 255),
4444
_coloringMode(ColoringMode::Constant),
4545
_dataRectangleAction(this, "Data rectangle"),
46-
_navigationAction(this, "Navigation"),
4746
_pixelSelectionTool(this),
4847
_samplerPixelSelectionTool(this),
4948
_pixelRatio(1.0),
@@ -120,10 +119,13 @@ ScatterplotWidget::ScatterplotWidget(mv::plugin::ViewPlugin* parentPlugin) :
120119
}
121120
});
122121

122+
connect(&getPointRendererNavigator(), &Navigator2D::zoomRectangleWorldChanged, this, [this]() -> void { update(); });
123+
connect(&getDensityRendererNavigator(), &Navigator2D::zoomRectangleWorldChanged, this, [this]() -> void { update(); });
124+
123125
/*
124126
const auto zoomRectangleChanged = [this]() -> void {
125-
_pointRenderer.getNavigator().setZoomRectangleWorld(_navigationAction.getZoomRectangleAction().toRectF());
126-
_densityRenderer.getNavigator().setZoomRectangleWorld(_navigationAction.getZoomRectangleAction().toRectF());
127+
_pointRenderer.getPointRendererNavigator().setZoomRectangleWorld(_navigationAction.getZoomRectangleAction().toRectF());
128+
_densityRenderer.getPointRendererNavigator().setZoomRectangleWorld(_navigationAction.getZoomRectangleAction().toRectF());
127129
128130
update();
129131
};
@@ -132,10 +134,10 @@ ScatterplotWidget::ScatterplotWidget(mv::plugin::ViewPlugin* parentPlugin) :
132134
133135
connect(&_navigationAction.getZoomRectangleAction(), &DecimalRectangleAction::rectangleChanged, this, zoomRectangleChanged);
134136
135-
connect(&_pointRenderer.getNavigator(), &Navigator2D::zoomRectangleWorldChanged, this, [this, zoomRectangleChanged](const QRectF& previousZoomRectangleWorld, const QRectF& currentZoomRectangleWorld) -> void {
137+
connect(&_pointRenderer.getPointRendererNavigator(), &Navigator2D::zoomRectangleWorldChanged, this, [this, zoomRectangleChanged](const QRectF& previousZoomRectangleWorld, const QRectF& currentZoomRectangleWorld) -> void {
136138
disconnect(&_navigationAction.getZoomRectangleAction(), &DecimalRectangleAction::rectangleChanged, this, nullptr);
137139
{
138-
_navigationAction.getZoomDataExtentsAction().setEnabled(_pointRenderer.getNavigator().hasUserNavigated());
140+
_navigationAction.getZoomDataExtentsAction().setEnabled(_pointRenderer.getPointRendererNavigator().hasUserNavigated());
139141
140142
_navigationAction.getZoomRectangleAction().setLeft(currentZoomRectangleWorld.left());
141143
_navigationAction.getZoomRectangleAction().setRight(currentZoomRectangleWorld.right());
@@ -147,10 +149,10 @@ ScatterplotWidget::ScatterplotWidget(mv::plugin::ViewPlugin* parentPlugin) :
147149
update();
148150
});
149151
150-
connect(&_densityRenderer.getNavigator(), &Navigator2D::zoomRectangleWorldChanged, this, [this, zoomRectangleChanged](const QRectF& previousZoomRectangleWorld, const QRectF& currentZoomRectangleWorld) -> void {
152+
connect(&_densityRenderer.getPointRendererNavigator(), &Navigator2D::zoomRectangleWorldChanged, this, [this, zoomRectangleChanged](const QRectF& previousZoomRectangleWorld, const QRectF& currentZoomRectangleWorld) -> void {
151153
disconnect(&_navigationAction.getZoomRectangleAction(), &DecimalRectangleAction::rectangleChanged, this, nullptr);
152154
{
153-
_navigationAction.getZoomDataExtentsAction().setEnabled(_pointRenderer.getNavigator().hasUserNavigated());
155+
_navigationAction.getZoomDataExtentsAction().setEnabled(_pointRenderer.getPointRendererNavigator().hasUserNavigated());
154156
155157
_navigationAction.getZoomRectangleAction().setLeft(currentZoomRectangleWorld.left());
156158
_navigationAction.getZoomRectangleAction().setRight(currentZoomRectangleWorld.right());

src/ScatterplotWidget.h

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,6 @@ class ScatterplotWidget : public QOpenGLWidget, protected QOpenGLFunctions_3_3_C
113113
return _dataRectangleAction.getBounds();
114114
}
115115

116-
NavigationAction& getNavigationAction() { return _navigationAction; }
117-
118116
mv::Vector3f getColorMapRange() const;
119117
void setColorMapRange(const float& min, const float& max);
120118

@@ -249,6 +247,20 @@ class ScatterplotWidget : public QOpenGLWidget, protected QOpenGLFunctions_3_3_C
249247
/** Assign a color map image to the point and density renderers */
250248
void setColorMap(const QImage& colorMapImage);
251249

250+
public: // Navigators
251+
252+
/**
253+
* Get the navigator for the point renderer
254+
* @return Reference to the navigator
255+
*/
256+
mv::Navigator2D& getPointRendererNavigator() { return _pointRenderer.getNavigator(); }
257+
258+
/**
259+
* Get the navigator for the density renderer
260+
* @return Reference to the navigator
261+
*/
262+
mv::Navigator2D& getDensityRendererNavigator() { return _densityRenderer.getNavigator(); }
263+
252264
signals:
253265
void initialized();
254266
void created();
@@ -290,7 +302,6 @@ private slots:
290302
QColor _backgroundColor; /** Background color */
291303
ColoringMode _coloringMode; /** Type of point/density coloring */
292304
DecimalRectangleAction _dataRectangleAction; /** Rectangle action for the bounds of the loaded data */
293-
NavigationAction _navigationAction; /** All navigation-related actions are grouped in this action */
294305
QImage _colorMapImage; /** 1D/2D color map image */
295306
PixelSelectionTool _pixelSelectionTool; /** 2D pixel selection tool */
296307
PixelSelectionTool _samplerPixelSelectionTool; /** 2D pixel selection tool */

src/SettingsAction.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
#include <QMenu>
88

9+
#include "ScatterplotWidget.h"
10+
911
using namespace mv::gui;
1012

1113
SettingsAction::SettingsAction(QObject* parent, const QString& title) :
@@ -71,6 +73,12 @@ void SettingsAction::fromVariantMap(const QVariantMap& variantMap)
7173
_renderModeAction.fromParentVariantMap(variantMap);
7274
_selectionAction.fromParentVariantMap(variantMap);
7375
_miscellaneousAction.fromParentVariantMap(variantMap);
76+
77+
if (variantMap.contains("PointRendererNavigation"))
78+
_scatterplotPlugin->getScatterplotWidget().getPointRendererNavigator().getNavigationAction().fromVariantMap(variantMap["PointRendererNavigation"].toMap());
79+
80+
if (variantMap.contains("DensityRendererNavigation"))
81+
_scatterplotPlugin->getScatterplotWidget().getDensityRendererNavigator().getNavigationAction().fromVariantMap(variantMap["DensityRendererNavigation"].toMap());
7482
}
7583

7684
QVariantMap SettingsAction::toVariantMap() const
@@ -85,5 +93,8 @@ QVariantMap SettingsAction::toVariantMap() const
8593
_selectionAction.insertIntoVariantMap(variantMap);
8694
_miscellaneousAction.insertIntoVariantMap(variantMap);
8795

96+
variantMap["PointRendererNavigation"] = _scatterplotPlugin->getScatterplotWidget().getPointRendererNavigator().getNavigationAction().toVariantMap();
97+
variantMap["DensityRendererNavigation"] = _scatterplotPlugin->getScatterplotWidget().getDensityRendererNavigator().getNavigationAction().toVariantMap();
98+
8899
return variantMap;
89100
}

0 commit comments

Comments
 (0)