Skip to content

Commit 6227b3c

Browse files
committed
Add table widget
1 parent ed3f7e3 commit 6227b3c

File tree

1 file changed

+36
-31
lines changed

1 file changed

+36
-31
lines changed

src/ScatterplotPlugin.cpp

Lines changed: 36 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,16 @@
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+
3741
Q_PLUGIN_METADATA(IID "studio.manivault.ScatterplotPlugin")
3842

3943
using 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

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

Comments
 (0)