Skip to content

Commit 2484bfc

Browse files
andrei47wAlexandraTrifan
authored andcommitted
IMU package: enable 3D view only if OpenGL preference is active
- on platforms which don't support OpenGL, Qt3D may also not work as expected Signed-off-by: Andrei Popa <andrei.popa@analog.com>
1 parent 0ffdb9b commit 2484bfc

File tree

2 files changed

+53
-46
lines changed

2 files changed

+53
-46
lines changed

packages/imu/plugins/imuanalyzer/src/imuanalyzerinterface.cpp

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,16 @@
2020

2121
#include "imuanalyzerinterface.hpp"
2222

23+
#include <pluginbase/preferences.h>
24+
2325
using namespace scopy;
2426

2527
Q_DECLARE_METATYPE(data3P)
2628

2729
IMUAnalyzerInterface::IMUAnalyzerInterface(QString uri, QWidget *parent)
2830
: QWidget{parent}
31+
, m_sceneRender(nullptr)
32+
, m_rstView(nullptr)
2933
{
3034
qRegisterMetaType<data3P>("data3P");
3135

@@ -60,20 +64,27 @@ IMUAnalyzerInterface::IMUAnalyzerInterface(QString uri, QWidget *parent)
6064
m_runBtn = new RunBtn(this);
6165
m_tool->addWidgetToTopContainerHelper(m_runBtn, TTA_RIGHT);
6266

67+
bool useOpenGL = Preferences::get("general_use_opengl").toBool();
68+
6369
QTabWidget *tabWidget = new QTabWidget(this);
6470
m_tool->addWidgetToCentralContainerHelper(tabWidget);
6571

66-
m_sceneRender = new SceneRenderer();
67-
tabWidget->addTab(m_sceneRender, "3D View");
68-
69-
m_rstView = new MenuControlButton(this);
70-
m_rstView->setName("Reset View");
71-
m_rstView->checkBox()->setVisible(false);
72-
m_rstView->button()->setVisible(false);
73-
m_rstView->setCheckable(false);
74-
m_tool->addWidgetToBottomContainerHelper(m_rstView, TTA_LEFT);
75-
76-
connect(m_rstView, &QPushButton::clicked, m_sceneRender, &SceneRenderer::resetView);
72+
if(useOpenGL) {
73+
m_sceneRender = new SceneRenderer();
74+
tabWidget->addTab(m_sceneRender, "3D View");
75+
76+
m_rstView = new MenuControlButton(this);
77+
m_rstView->setName("Reset View");
78+
m_rstView->checkBox()->setVisible(false);
79+
m_rstView->button()->setVisible(false);
80+
m_rstView->setCheckable(false);
81+
m_tool->addWidgetToBottomContainerHelper(m_rstView, TTA_LEFT);
82+
83+
connect(m_rstView, &QPushButton::clicked, m_sceneRender, &SceneRenderer::resetView);
84+
connect(this, &IMUAnalyzerInterface::generateRot, m_sceneRender, &SceneRenderer::setRot);
85+
connect(tabWidget, &QTabWidget::currentChanged, this,
86+
[=, this](int index) { m_rstView->setVisible(index == 0); });
87+
}
7788

7889
m_measureBtn = new MenuControlButton(this);
7990
m_measureBtn->setName("Measure");
@@ -90,8 +101,6 @@ IMUAnalyzerInterface::IMUAnalyzerInterface(QString uri, QWidget *parent)
90101
m_dataV->hide();
91102
});
92103

93-
connect(this, &IMUAnalyzerInterface::generateRot, m_sceneRender, &SceneRenderer::setRot);
94-
95104
connect(m_runBtn, &QPushButton::toggled, [=, this](bool toggled) {
96105
m_runThread = !m_runThread;
97106
if(toggled) {
@@ -127,13 +136,6 @@ IMUAnalyzerInterface::IMUAnalyzerInterface(QString uri, QWidget *parent)
127136

128137
m_tool->openRightContainerHelper(toggled);
129138
});
130-
131-
connect(tabWidget, &QTabWidget::currentChanged, [=, this](int index) {
132-
if(index == 0)
133-
m_rstView->show();
134-
else
135-
m_rstView->hide();
136-
});
137139
}
138140

139141
IMUAnalyzerInterface::~IMUAnalyzerInterface()

packages/imu/plugins/imuanalyzer/src/imuanalyzersettings.cpp

Lines changed: 31 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -60,30 +60,35 @@ ImuAnalyzerSettings::ImuAnalyzerSettings(SceneRenderer *scRend, BubbleLevelRende
6060

6161
bubbleLevelSettingsWidget->contentLayout()->addWidget(displayPoints);
6262

63-
MenuSectionWidget *sceneRendererSettings = new MenuSectionWidget(this);
64-
MenuCollapseSection *sceneRendererSettingsWidget =
65-
new MenuCollapseSection("3D Settings", MenuCollapseSection::MHCW_ARROW,
66-
MenuCollapseSection::MHW_BASEWIDGET, sceneRendererSettings);
67-
68-
QPushButton *cubeColorButton = new QPushButton("Select New Cube Color");
69-
sceneRendererSettingsWidget->contentLayout()->addWidget(cubeColorButton);
70-
71-
connect(this, &ImuAnalyzerSettings::updateCubeColor, scRend, &SceneRenderer::updateCubeColor);
72-
connect(cubeColorButton, &QPushButton::clicked, [&]() {
73-
QColor color = QColorDialog::getColor(Qt::white, this, "Choose a Color");
74-
if(color.isValid())
75-
emit updateCubeColor(color);
76-
});
77-
78-
QPushButton *planeColorButton = new QPushButton("Select New Plane Color");
79-
sceneRendererSettingsWidget->contentLayout()->addWidget(planeColorButton);
80-
81-
connect(this, &ImuAnalyzerSettings::updatePlaneColor, scRend, &SceneRenderer::updatePlaneColor);
82-
connect(planeColorButton, &QPushButton::clicked, [&]() {
83-
QColor color = QColorDialog::getColor(Qt::white, this, "Choose a Color");
84-
if(color.isValid())
85-
emit updatePlaneColor(color);
86-
});
63+
MenuSectionWidget *sceneRendererSettings = nullptr;
64+
if(scRend) {
65+
sceneRendererSettings = new MenuSectionWidget(this);
66+
MenuCollapseSection *sceneRendererSettingsWidget =
67+
new MenuCollapseSection("3D Settings", MenuCollapseSection::MHCW_ARROW,
68+
MenuCollapseSection::MHW_BASEWIDGET, sceneRendererSettings);
69+
70+
QPushButton *cubeColorButton = new QPushButton("Select New Cube Color");
71+
sceneRendererSettingsWidget->contentLayout()->addWidget(cubeColorButton);
72+
73+
connect(this, &ImuAnalyzerSettings::updateCubeColor, scRend, &SceneRenderer::updateCubeColor);
74+
connect(cubeColorButton, &QPushButton::clicked, [&]() {
75+
QColor color = QColorDialog::getColor(Qt::white, this, "Choose a Color");
76+
if(color.isValid())
77+
emit updateCubeColor(color);
78+
});
79+
80+
QPushButton *planeColorButton = new QPushButton("Select New Plane Color");
81+
sceneRendererSettingsWidget->contentLayout()->addWidget(planeColorButton);
82+
83+
connect(this, &ImuAnalyzerSettings::updatePlaneColor, scRend, &SceneRenderer::updatePlaneColor);
84+
connect(planeColorButton, &QPushButton::clicked, [&]() {
85+
QColor color = QColorDialog::getColor(Qt::white, this, "Choose a Color");
86+
if(color.isValid())
87+
emit updatePlaneColor(color);
88+
});
89+
90+
sceneRendererSettings->layout()->addWidget(sceneRendererSettingsWidget);
91+
}
8792

8893
QList<IIOWidget *> attributeWidget = IIOWidgetBuilder(nullptr).device(m_device).buildAll();
8994
for(auto widget : attributeWidget) {
@@ -92,12 +97,12 @@ ImuAnalyzerSettings::ImuAnalyzerSettings(SceneRenderer *scRend, BubbleLevelRende
9297

9398
generalSettings->layout()->addWidget(generalSettingsWidget);
9499
bubbleLevelSettings->layout()->addWidget(bubbleLevelSettingsWidget);
95-
sceneRendererSettings->layout()->addWidget(sceneRendererSettingsWidget);
96100

97101
lay->addWidget(header);
98102
lay->addWidget(generalSettings);
99103
lay->addWidget(bubbleLevelSettings);
100-
lay->addWidget(sceneRendererSettings);
104+
if(sceneRendererSettings)
105+
lay->addWidget(sceneRendererSettings);
101106

102107
lay->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding));
103108
}

0 commit comments

Comments
 (0)