Skip to content

Commit ad5758d

Browse files
committed
datalogger: made plots work with kdoc kwidgets
Signed-off-by: IonutMuthi <[email protected]>
1 parent 7570019 commit ad5758d

File tree

2 files changed

+29
-5
lines changed

2 files changed

+29
-5
lines changed

plugins/datalogger/include/datalogger/monitorplot.hpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434
#include <plotbufferpreviewer.h>
3535
#include <plotcomponent.h>
3636
#include "scopy-datalogger_export.h"
37+
#include <gui/docking/dockwrapperinterface.h>
38+
#include <gui/docking/dockableareainterface.h>
3739

3840
namespace scopy {
3941

@@ -104,6 +106,10 @@ class SCOPY_DATALOGGER_EXPORT MonitorPlot : public PlotComponent
104106
double m_xAxisIntervalMax;
105107

106108
QLabel *startTimeLabel;
109+
110+
DockableAreaInterface *m_dockableArea;
111+
DockWrapperInterface *m_dockWidet;
112+
QWidget *m_monitorPlotWidget;
107113
};
108114
} // namespace datamonitor
109115
} // namespace scopy

plugins/datalogger/src/monitorplot.cpp

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232
#include <plotnavigator.hpp>
3333
#include <style.h>
3434
#include <pluginbase/preferences.h>
35+
#include <gui/docking/dockablearea.h>
36+
#include <gui/docking/dockwrapper.h>
3537

3638
using namespace scopy;
3739
using namespace datamonitor;
@@ -41,7 +43,7 @@ MonitorPlot::MonitorPlot(QString name, uint32_t uuid, QWidget *parent)
4143
{
4244
layout = new QVBoxLayout();
4345
setLayout(layout);
44-
layout->setContentsMargins(0, 0, 0, 10);
46+
layout->setContentsMargins(0, 0, 0, 0);
4547

4648
Preferences *p = Preferences::GetInstance();
4749
dateTimeFormat = p->get("dataloggerplugin_date_time_format").toString();
@@ -53,7 +55,18 @@ MonitorPlot::MonitorPlot(QString name, uint32_t uuid, QWidget *parent)
5355
}
5456
});
5557

56-
m_plot = new PlotWidget(this);
58+
m_dockableArea = createDockableArea(this);
59+
QWidget *dockableAreaWidget = dynamic_cast<QWidget *>(m_dockableArea);
60+
Style::setBackgroundColor(dockableAreaWidget, json::theme::background_subtle, true);
61+
layout->addWidget(dockableAreaWidget);
62+
63+
m_monitorPlotWidget = new QWidget(this);
64+
m_monitorPlotWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
65+
QVBoxLayout *monitorPlotWidgetLayout = new QVBoxLayout(m_monitorPlotWidget);
66+
monitorPlotWidgetLayout->setContentsMargins(0, 0, 0, 10);
67+
68+
m_plot = new PlotWidget(m_monitorPlotWidget);
69+
m_plot->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
5770

5871
auto nameLbl = m_plot->getPlotInfo()->addLabelInfo(IP_LEFT, IP_TOP);
5972
nameLbl->setText(m_name);
@@ -72,7 +85,7 @@ MonitorPlot::MonitorPlot(QString name, uint32_t uuid, QWidget *parent)
7285

7386
startTimeLabel = new QLabel(this);
7487

75-
HoverWidget *startTime = new HoverWidget(nullptr, m_plot, this);
88+
HoverWidget *startTime = new HoverWidget(nullptr, m_plot, m_monitorPlotWidget);
7689
startTime->setContent(startTimeLabel);
7790
startTime->setAnchorPos(HoverPosition::HP_TOPRIGHT);
7891
startTime->setContentPos(HoverPosition::HP_BOTTOMLEFT);
@@ -82,9 +95,14 @@ MonitorPlot::MonitorPlot(QString name, uint32_t uuid, QWidget *parent)
8295

8396
setStartTime();
8497
setupXAxis();
98+
8599
generateBufferPreviewer();
86100

87-
layout->addWidget(m_plot);
101+
m_dockWidet = createDockWrapper("Data Monitor Plot");
102+
m_dockWidet->setInnerWidget(m_monitorPlotWidget);
103+
m_dockableArea->addDockWrapper(m_dockWidet);
104+
105+
m_monitorPlotWidget->layout()->addWidget(m_plot);
88106
m_plotLayout->addLayout(layout);
89107

90108
m_monitorCurves = new QMap<QString, MonitorPlotCurve *>();
@@ -296,7 +314,7 @@ void MonitorPlot::generateBufferPreviewer()
296314
updateBufferPreviewer(time);
297315
});
298316
m_plot->navigator()->setResetOnNewBase(false);
299-
layout->addWidget(m_bufferPreviewer);
317+
m_monitorPlotWidget->layout()->addWidget(m_bufferPreviewer);
300318
}
301319

302320
#include "moc_monitorplot.cpp"

0 commit comments

Comments
 (0)