Skip to content

Commit d3c0ede

Browse files
authored
Merge pull request #195 from ManiVaultStudio/master
Merge `master` into `release/core_bican_bg/bican_bg`
2 parents a39beba + ec35367 commit d3c0ede

File tree

2 files changed

+46
-20
lines changed

2 files changed

+46
-20
lines changed

src/ScatterplotPlugin.cpp

Lines changed: 44 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -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

267271
ScatterplotPlugin::~ScatterplotPlugin()
@@ -270,35 +274,23 @@ ScatterplotPlugin::~ScatterplotPlugin()
270274

271275
void 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

380381
void 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+
972996
void 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";

src/ScatterplotPlugin.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,8 @@ class ScatterplotPlugin : public ViewPlugin
9494
void updateData();
9595
void updateSelection();
9696

97+
void updateHeadsUpDisplay();
98+
9799
public: // Serialization
98100

99101
/**

0 commit comments

Comments
 (0)