/*
Copyright © 2017 Hasan Yavuz Özderya
Copyright © 2018 Hasan Yavuz Özderya
This file is part of serialplot.
serialplot is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
serialplot is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with serialplot. If not, see <http://www.gnu.org/licenses/>.
*/
#include <algorithm>
#include <QMetaEnum>
#include <QtDebug>
#include "qwt_symbol.h"
#include "plot.h"
#include "plotmanager.h"
@@ -184,49 +184,53 @@ void PlotManager::setMulti(bool enabled)
setupLayout(isMulti);
if (isMulti)
{
// add new widgets and attach
for (auto curve : curves)
auto plot = addPlotWidget();
plot->setVisible(curve->isVisible());
curve->attach(plot);
}
else
// add a single widget
// attach all curves
checkNoVisChannels();
// will skip if no plot widgets exist (can happen during constructor)
if (plotWidgets.length())
void PlotManager::setupLayout(bool multiPlot)
// delete previous layout if it exists
if (_plotArea->layout() != 0)
delete _plotArea->layout();
if (multiPlot)
// setup a scroll area
scrollArea = new QScrollArea();
auto scrolledPlotArea = new QWidget(scrollArea);
scrollArea->setWidget(scrolledPlotArea);
scrollArea->setWidgetResizable(true);
_plotArea->setLayout(new QVBoxLayout());
_plotArea->layout()->addWidget(scrollArea);
_plotArea->layout()->setContentsMargins(0,0,0,0);
layout = new QVBoxLayout(scrolledPlotArea);
Status change: