You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.5 KiB
66 lines
1.5 KiB
#include "Linecharts.h" |
|
|
|
Linecharts::Linecharts(QWidget *parent) : |
|
QStackedWidget(parent), |
|
plots(), |
|
active(true) |
|
{ |
|
} |
|
|
|
|
|
void Linecharts::setActive(bool active) |
|
{ |
|
this->active = active; |
|
QWidget* prevWidget = currentWidget(); |
|
if (prevWidget) |
|
{ |
|
LinechartWidget* chart = dynamic_cast<LinechartWidget*>(prevWidget); |
|
if (chart) |
|
{ |
|
chart->setActive(active); |
|
} |
|
} |
|
} |
|
|
|
|
|
void Linecharts::selectSystem(int systemid) |
|
{ |
|
QWidget* prevWidget = currentWidget(); |
|
if (prevWidget) |
|
{ |
|
LinechartWidget* chart = dynamic_cast<LinechartWidget*>(prevWidget); |
|
if (chart) |
|
{ |
|
chart->setActive(false); |
|
} |
|
} |
|
QWidget* widget = plots.value(systemid, NULL); |
|
if (widget) |
|
{ |
|
setCurrentWidget(widget); |
|
LinechartWidget* chart = dynamic_cast<LinechartWidget*>(widget); |
|
if (chart) |
|
{ |
|
chart->setActive(true); |
|
} |
|
} |
|
} |
|
|
|
void Linecharts::addSystem(UASInterface* uas) |
|
{ |
|
if (!plots.contains(uas->getUASID())) |
|
{ |
|
LinechartWidget* widget = new LinechartWidget(uas->getUASID(), this); |
|
addWidget(widget); |
|
plots.insert(uas->getUASID(), widget); |
|
connect(uas, SIGNAL(valueChanged(int,QString,double,quint64)), widget, SLOT(appendData(int,QString,double,quint64))); |
|
// Set system active if this is the only system |
|
if (active) |
|
{ |
|
if (plots.size() == 1) |
|
{ |
|
selectSystem(uas->getUASID()); |
|
} |
|
} |
|
} |
|
}
|
|
|