##// END OF EJS Templates
Fix some glitches which occurred when dragging in the visualization something from the sides.
Fix some glitches which occurred when dragging in the visualization something from the sides.

File last commit:

r730:2d96f9af06b9
r886:4ed691514436
Show More
QCustomPlotSynchronizer.cpp
30 lines | 1016 B | text/x-c | CppLexer
/ gui / src / Visualization / QCustomPlotSynchronizer.cpp
Alexandre Leroux
Sets sames margin sides for graphs in a same zone
r730 #include "Visualization/QCustomPlotSynchronizer.h"
#include "Visualization/VisualizationGraphWidget.h"
#include "Visualization/qcustomplot.h"
struct QCustomPlotSynchronizer::QCustomPlotSynchronizerPrivate {
explicit QCustomPlotSynchronizerPrivate()
: m_MarginGroup{std::make_unique<QCPMarginGroup>(nullptr)}
{
}
/// Sets the same margin sides for all added plot elements
std::unique_ptr<QCPMarginGroup> m_MarginGroup;
};
QCustomPlotSynchronizer::QCustomPlotSynchronizer()
: impl{spimpl::make_unique_impl<QCustomPlotSynchronizerPrivate>()}
{
}
void QCustomPlotSynchronizer::addGraph(VisualizationGraphWidget &graph) const
{
// Adds all plot elements of the graph to the margin group: all these elements will then have
// the same margin sides
auto &plot = graph.plot();
for (auto axisRect : plot.axisRects()) {
// Sames margin sides at left and right
axisRect->setMarginGroup(QCP::msLeft | QCP::msRight, impl->m_MarginGroup.get());
}
}