2828#include < QMetaType>
2929#include < QtCore>
3030#include < QPushbutton>
31+ #include < QTableWidget>
3132
3233#include < algorithm>
3334#include < functional>
3435#include < vector>
3536#include < actions/ViewPluginSamplerAction.h>
3637
38+ #define VIEW_SAMPLING_HTML
39+ // #define VIEW_SAMPLING_WIDGET
40+
3741Q_PLUGIN_METADATA (IID " studio.manivault.ScatterplotPlugin" )
3842
3943using namespace mv;
@@ -233,31 +237,10 @@ ScatterplotPlugin::ScatterplotPlugin(const PluginFactory* factory) :
233237 auto & selectionAction = _settingsAction.getSelectionAction ();
234238
235239 getSamplerAction ().initialize (this , &selectionAction.getPixelSelectionAction (), &selectionAction.getSamplerPixelSelectionAction ());
236- // getSamplerAction().setHtmlViewGeneratorFunction([this](const ViewPluginSamplerAction::SampleContext& toolTipContext) -> QString {
237- // qDebug() << __FUNCTION__;
238- // QStringList localPointIndices, globalPointIndices;
239-
240- // for (const auto& localPointIndex : toolTipContext["LocalPointIndices"].toList())
241- // localPointIndices << QString::number(localPointIndex.toInt());
242-
243- // for (const auto& globalPointIndex : toolTipContext["GlobalPointIndices"].toList())
244- // globalPointIndices << QString::number(globalPointIndex.toInt());
245-
246- // if (localPointIndices.isEmpty())
247- // return {};
248-
249- // return QString("<table> \
250- // <tr> \
251- // <td><b>Point ID's: </b></td> \
252- // <td>%1</td> \
253- // </tr> \
254- // </table>").arg(globalPointIndices.join(", "));
255- // });
256240
257- auto widget = new QPushButton ();
258-
259- getSamplerAction ().setWidgetViewGeneratorFunction ([this , widget](const ViewPluginSamplerAction::SampleContext& toolTipContext) -> QWidget* {
260- QStringList localPointIndices, globalPointIndices;
241+ #ifdef VIEW_SAMPLING_HTML
242+ getSamplerAction ().setHtmlViewGeneratorFunction ([this ](const ViewPluginSamplerAction::SampleContext& toolTipContext) -> QString {
243+ QStringList localPointIndices, globalPointIndices;
261244
262245 for (const auto & localPointIndex : toolTipContext[" LocalPointIndices" ].toList ())
263246 localPointIndices << QString::number (localPointIndex.toInt ());
@@ -268,10 +251,36 @@ ScatterplotPlugin::ScatterplotPlugin(const PluginFactory* factory) :
268251 if (localPointIndices.isEmpty ())
269252 return {};
270253
271- widget->setText (QString (" Point ID's: %1" ).arg (globalPointIndices.join (" , " )));
254+ return QString (" <table> \
255+ <tr> \
256+ <td><b>Point ID's: </b></td> \
257+ <td>%1</td> \
258+ </tr> \
259+ </table>" ).arg (globalPointIndices.join (" , " ));
260+ });
261+ #endif
262+
263+ #ifdef VIEW_SAMPLING_WIDGET
264+ auto pointIndicesTableWidget = new QTableWidget (5 , 2 );
265+
266+ pointIndicesTableWidget->setHorizontalHeaderLabels ({ " Local point index" , " Global point index" });
272267
273- return widget;
268+ getSamplerAction ().setWidgetViewGeneratorFunction ([this , pointIndicesTableWidget](const ViewPluginSamplerAction::SampleContext& sampleContext) -> QWidget* {
269+ const auto localPointIndices = sampleContext[" LocalPointIndices" ].toList ();
270+ const auto globalPointIndices = sampleContext[" GlobalPointIndices" ].toList ();
271+
272+ pointIndicesTableWidget->setRowCount (localPointIndices.count ());
273+
274+ for (int i = 0 ; i < localPointIndices.count (); ++i) {
275+ pointIndicesTableWidget->setItem (i, 0 , new QTableWidgetItem (QString::number (localPointIndices[i].toInt ())));
276+ pointIndicesTableWidget->setItem (i, 1 , new QTableWidgetItem (QString::number (globalPointIndices[i].toInt ())));
277+ }
278+
279+ pointIndicesTableWidget->resizeColumnsToContents ();
280+
281+ return pointIndicesTableWidget;
274282 });
283+ #endif
275284
276285 // getSamplerAction().setViewingMode(ViewPluginSamplerAction::ViewingMode::Tooltip);
277286 // getSamplerAction().getEnabledAction().setChecked(false);
@@ -443,17 +452,13 @@ void ScatterplotPlugin::selectPoints()
443452
444453void ScatterplotPlugin::samplePoints ()
445454{
446-
447-
448455 auto & samplerPixelSelectionTool = _scatterPlotWidget->getSamplerPixelSelectionTool ();
449456
450457 qDebug () << __FUNCTION__ << samplerPixelSelectionTool.isActive () << _scatterPlotWidget->isNavigating () << samplerPixelSelectionTool.isEnabled ();
451458
452- if (!_positionDataset.isValid () || _scatterPlotWidget->isNavigating () || !samplerPixelSelectionTool.isEnabled ())
459+ if (!_positionDataset.isValid () || !samplerPixelSelectionTool. isActive () || _scatterPlotWidget->isNavigating () || !samplerPixelSelectionTool.isEnabled ())
453460 return ;
454461
455-
456-
457462 auto selectionAreaImage = samplerPixelSelectionTool.getAreaPixmap ().toImage ();
458463
459464 std::vector<std::uint32_t > targetSelectionIndices;
0 commit comments