@@ -262,6 +262,10 @@ ScatterplotPlugin::ScatterplotPlugin(const PluginFactory* factory) :
262262 getSamplerAction ().getEnabledAction ().setChecked (false );
263263
264264 getLearningCenterAction ().addVideos (QStringList ({ " Practitioner" , " Developer" }));
265+
266+ setOverlayActionsTargetWidget (_scatterPlotWidget);
267+
268+
265269}
266270
267271ScatterplotPlugin::~ScatterplotPlugin ()
@@ -270,35 +274,23 @@ ScatterplotPlugin::~ScatterplotPlugin()
270274
271275void ScatterplotPlugin::init ()
272276{
277+ getWidget ().setMouseTracking (true );
278+
273279 auto layout = new QVBoxLayout ();
274280
275281 layout->setContentsMargins (0 , 0 , 0 , 0 );
276282 layout->setSpacing (0 );
277283 layout->addWidget (_primaryToolbarAction.createWidget (&getWidget ()));
278284 layout->addWidget (_scatterPlotWidget, 100 );
279285
280- auto navigationWidget = new QWidget ();
281- auto navigationLayout = new QHBoxLayout ();
282-
283- navigationLayout->setContentsMargins (4 , 4 , 4 , 4 );
284-
285- navigationLayout->addStretch (1 );
286- {
287- auto renderersNavigationGroupAction = new HorizontalGroupAction (this , " Navigation" );
288-
289- renderersNavigationGroupAction->setShowLabels (false );
290-
291- renderersNavigationGroupAction->addAction (const_cast <NavigationAction*>(&_scatterPlotWidget->getPointRendererNavigator ().getNavigationAction ()));
286+ auto & navigationAction = _scatterPlotWidget->getPointRendererNavigator ().getNavigationAction ();
292287
293- _scatterPlotWidget->getPointRendererNavigator ().getNavigationAction ().setParent (&_settingsAction);
288+ if (auto navigationWidget = navigationAction.createWidget (&getWidget ())) {
289+ layout->addWidget (navigationWidget);
290+ layout->setAlignment (navigationWidget, Qt::AlignCenter);
294291
295- navigationLayout-> addWidget (renderersNavigationGroupAction-> createWidget (& getWidget ()) );
292+ navigationAction. setParent (&_settingsAction );
296293 }
297- navigationLayout->addStretch (1 );
298-
299- navigationWidget->setLayout (navigationLayout);
300-
301- layout->addWidget (navigationWidget);
302294
303295 getWidget ().setLayout (layout);
304296
@@ -375,6 +367,15 @@ void ScatterplotPlugin::init()
375367 return pointIndicesTableWidget;
376368 });
377369#endif
370+
371+ updateHeadsUpDisplay ();
372+
373+ connect (&_positionDataset, &Dataset<>::changed, this , &ScatterplotPlugin::updateHeadsUpDisplay);
374+ connect (&_positionDataset, &Dataset<>::guiNameChanged, this , &ScatterplotPlugin::updateHeadsUpDisplay);
375+ connect (&_settingsAction.getColoringAction (), &ColoringAction::currentColorDatasetChanged, this , &ScatterplotPlugin::updateHeadsUpDisplay);
376+ connect (&_settingsAction.getColoringAction ().getColorByAction (), &OptionAction::currentIndexChanged, this , &ScatterplotPlugin::updateHeadsUpDisplay);
377+ connect (&_settingsAction.getPlotAction ().getPointPlotAction ().getSizeAction (), &ScalarAction::sourceDataChanged, this , &ScatterplotPlugin::updateHeadsUpDisplay);
378+ connect (&_settingsAction.getPlotAction ().getPointPlotAction ().getOpacityAction (), &ScalarAction::sourceDataChanged, this , &ScatterplotPlugin::updateHeadsUpDisplay);
378379}
379380
380381void ScatterplotPlugin::loadData (const Datasets& datasets)
@@ -969,6 +970,29 @@ void ScatterplotPlugin::updateSelection()
969970 }
970971}
971972
973+ void ScatterplotPlugin::updateHeadsUpDisplay ()
974+ {
975+ getHeadsUpDisplayAction ().removeAllHeadsUpDisplayItems ();
976+
977+ if (_positionDataset.isValid ()) {
978+ const auto datasetsItem = getHeadsUpDisplayAction ().addHeadsUpDisplayItem (" Datasets" , " " , " " );
979+
980+ getHeadsUpDisplayAction ().addHeadsUpDisplayItem (" Position by:" , _positionDataset->getGuiName (), " " , datasetsItem);
981+
982+ auto addMetaDataToHeadsUpDisplay = [this ](const QString& metaDataName, const Dataset<> data, const util::HeadsUpDisplayItemSharedPtr& itemPtr) {
983+ if (data.isValid ())
984+ getHeadsUpDisplayAction ().addHeadsUpDisplayItem (QString (" %1 by:" ).arg (metaDataName), data->getGuiName (), " " , itemPtr);
985+ };
986+
987+ addMetaDataToHeadsUpDisplay (" Color" , _settingsAction.getColoringAction ().getCurrentColorDataset (), datasetsItem);
988+ addMetaDataToHeadsUpDisplay (" Size" , _settingsAction.getPlotAction ().getPointPlotAction ().getSizeAction ().getCurrentDataset (), datasetsItem);
989+ addMetaDataToHeadsUpDisplay (" Opacity" , _settingsAction.getPlotAction ().getPointPlotAction ().getOpacityAction ().getCurrentDataset (), datasetsItem);
990+
991+ } else {
992+ getHeadsUpDisplayAction ().addHeadsUpDisplayItem (" No datasets loaded" , " " , " " );
993+ }
994+ }
995+
972996void ScatterplotPlugin::fromVariantMap (const QVariantMap& variantMap)
973997{
974998 ViewPlugin::fromVariantMap (variantMap);
@@ -982,7 +1006,7 @@ void ScatterplotPlugin::fromVariantMap(const QVariantMap& variantMap)
9821006 _primaryToolbarAction.fromParentVariantMap (variantMap);
9831007 _settingsAction.fromParentVariantMap (variantMap);
9841008
985-
1009+ updateHeadsUpDisplay ();
9861010
9871011 if (pointRenderer.getNavigator ().getNavigationAction ().getSerializationCountFrom () == 0 ) {
9881012 qDebug () << " Resetting view" ;
0 commit comments