Skip to content
Snippets Groups Projects
Commit 3d4443a9 authored by Veith Röthlingshöfer's avatar Veith Röthlingshöfer
Browse files

Further worked on bar chart in plotter

parent 4a6885bf
No related branches found
No related tags found
No related merge requests found
......@@ -67,7 +67,7 @@ ArmarXPlotter::ArmarXPlotter() :
setTag("Plotter");
ui.setupUi(getWidget());
timer = new QTimer(getWidget());
bars = new std::vector<QwtThermo*>();
////////////////
// Setup Plotter
///////////////
......@@ -250,8 +250,6 @@ void ArmarXPlotter::onGraphStyleChanged(int idx)
break;
case 1: //bar chart
createThermos(); //TODO dont do this every time
stackedLayout->setCurrentIndex(graphStyle); //to test
break;
default:
......@@ -280,9 +278,10 @@ void ArmarXPlotter::updateGraph()
// int size = shownInterval*1000/updateInterval;
GraphDataMap::iterator it = dataMap.begin();
std::vector<QwtThermo*>::iterator barIt = bars->begin();
IceUtil::Time curTime = IceUtil::Time::now();
for (; it != dataMap.end(); ++it)
for (; it != dataMap.end(); ++it, ++barIt)
{
QVector<QPointF> pointList;
......@@ -377,7 +376,13 @@ void ArmarXPlotter::updateGraph()
QwtPlotCurve* curve = curves[it->first];
curve->setData(pointSeries);
}
}
if(barIt != bars->end())
{
(*barIt)->setValue(p.y());
}
}
ui.qwtPlot->setAxisScale(QwtPlot::xBottom, shownInterval * -1, 0.f);
......@@ -414,6 +419,11 @@ void ArmarXPlotter::autoScale(bool toggled)
ui.qwtPlot->setAxisAutoScale(QwtPlot::yLeft, toggled);
ui.qwtPlot->replot();
for(u_int i = 0; i < bars->size(); i++)
{
bars->at(i)->setAutoScale();
}
}
......@@ -480,6 +490,7 @@ void ArmarXPlotter::setupCurves()
{
{
ScopedLock lock(dataMutex);
QHBoxLayout *barlayout = new QHBoxLayout;
for (int i = 0; i < selectedChannels.size(); i++)
{
......@@ -493,6 +504,13 @@ void ArmarXPlotter::setupCurves()
{
QwtPlotCurve* curve = createCurve(selectedChannels.at(i));
curves[selectedChannels.at(i).toStdString()] = curve;
//create bar graphs
QwtThermo *t = new QwtThermo(getWidget());
t->setAccessibleName(selectedChannels.at(i));
bars->push_back(t);
barlayout->addWidget(t);
}
else
{
......@@ -512,12 +530,24 @@ void ArmarXPlotter::setupCurves()
ARMARX_INFO << key << ": " << *VariantPtr::dynamicCast(e.second);
QwtPlotCurve* curve = createCurve(QString::fromStdString(key));
curves[key] = curve;
//create bar graphs
QwtThermo *t = new QwtThermo(getWidget());
t->setAccessibleName(QString::fromStdString(key));
bars->push_back(t);
barlayout->addWidget(t);
}
}
}
}
ui.qwtPlot->replot();
QWidget *barsWidget = new QWidget(getWidget());
barsWidget->setLayout(barlayout);
barsWidget->setAccessibleName("barsWidget");
stackedLayout->addWidget(barsWidget);
ARMARX_INFO_S << "Created " << bars->size() << " bar charts" << armarx::flush;
}
timer->start(updateInterval);
......@@ -671,24 +701,6 @@ void ArmarXPlotter::logToFile(const IceUtil::Time& time, const std::map<std::str
}
}
void ArmarXPlotter::createThermos()
{
//MEMORY LEAK!!! This gets called every time the combo box is switch to bar chart
bars = new std::vector<QwtThermo*>();
QHBoxLayout *layout = new QHBoxLayout;
for(int i = 0; i < selectedChannels.size(); i++)
{
QwtThermo *t = new QwtThermo(getWidget());
bars->push_back(t);
layout->addWidget(t);
}
QWidget *barsWidget = new QWidget(getWidget());
barsWidget->setLayout(layout);
stackedLayout->addWidget(barsWidget);
ARMARX_INFO_S << "Created " << bars->size() << " bar charts" << armarx::flush;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment