Fixes to Flowview and Graphing windows to make them work with new
QCustomPlot version
This commit is contained in:
@@ -708,8 +708,8 @@ void FlowViewWindow::updateGraphLocation()
|
|||||||
{
|
{
|
||||||
if (secondsMode)
|
if (secondsMode)
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
ui->graphView->xAxis->setRange(frameCache[start].timestamp / 1000000.0, frameCache[end].timestamp / 1000000.0);
|
ui->graphView->xAxis->setRange(frameCache[start].timestamp / 1000000.0, frameCache[end].timestamp / 1000000.0);
|
||||||
|
/*
|
||||||
ui->graphView->xAxis->setTickStep((frameCache[end].timestamp - frameCache[start].timestamp)/ 3000000.0);
|
ui->graphView->xAxis->setTickStep((frameCache[end].timestamp - frameCache[start].timestamp)/ 3000000.0);
|
||||||
ui->graphView->xAxis->setSubTickCount(0);
|
ui->graphView->xAxis->setSubTickCount(0);
|
||||||
ui->graphView->xAxis->setNumberFormat("f");
|
ui->graphView->xAxis->setNumberFormat("f");
|
||||||
@@ -718,8 +718,8 @@ void FlowViewWindow::updateGraphLocation()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
ui->graphView->xAxis->setRange(frameCache[start].timestamp, frameCache[end].timestamp);
|
ui->graphView->xAxis->setRange(frameCache[start].timestamp, frameCache[end].timestamp);
|
||||||
|
/*
|
||||||
ui->graphView->xAxis->setTickStep((frameCache[end].timestamp - frameCache[start].timestamp)/ 3.0);
|
ui->graphView->xAxis->setTickStep((frameCache[end].timestamp - frameCache[start].timestamp)/ 3.0);
|
||||||
ui->graphView->xAxis->setSubTickCount(0);
|
ui->graphView->xAxis->setSubTickCount(0);
|
||||||
ui->graphView->xAxis->setNumberFormat("f");
|
ui->graphView->xAxis->setNumberFormat("f");
|
||||||
|
|||||||
+25
-3
@@ -55,6 +55,7 @@ GraphingWindow::GraphingWindow(const QVector<CANFrame> *frames, QWidget *parent)
|
|||||||
//connect(ui->graphingView, SIGNAL(titleDoubleClick(QMouseEvent*,QCPTextElement*)), this, SLOT(titleDoubleClick(QMouseEvent*,QCPTextElement*)));
|
//connect(ui->graphingView, SIGNAL(titleDoubleClick(QMouseEvent*,QCPTextElement*)), this, SLOT(titleDoubleClick(QMouseEvent*,QCPTextElement*)));
|
||||||
connect(ui->graphingView, SIGNAL(axisDoubleClick(QCPAxis*,QCPAxis::SelectablePart,QMouseEvent*)), this, SLOT(axisLabelDoubleClick(QCPAxis*,QCPAxis::SelectablePart)));
|
connect(ui->graphingView, SIGNAL(axisDoubleClick(QCPAxis*,QCPAxis::SelectablePart,QMouseEvent*)), this, SLOT(axisLabelDoubleClick(QCPAxis*,QCPAxis::SelectablePart)));
|
||||||
connect(ui->graphingView, SIGNAL(legendDoubleClick(QCPLegend*,QCPAbstractLegendItem*,QMouseEvent*)), this, SLOT(legendDoubleClick(QCPLegend*,QCPAbstractLegendItem*)));
|
connect(ui->graphingView, SIGNAL(legendDoubleClick(QCPLegend*,QCPAbstractLegendItem*,QMouseEvent*)), this, SLOT(legendDoubleClick(QCPLegend*,QCPAbstractLegendItem*)));
|
||||||
|
connect(ui->graphingView, SIGNAL(legendClick(QCPLegend*,QCPAbstractLegendItem*,QMouseEvent*)), this, SLOT(legendSingleClick(QCPLegend*,QCPAbstractLegendItem*)));
|
||||||
|
|
||||||
connect(MainWindow::getReference(), SIGNAL(framesUpdated(int)), this, SLOT(updatedFrames(int)));
|
connect(MainWindow::getReference(), SIGNAL(framesUpdated(int)), this, SLOT(updatedFrames(int)));
|
||||||
|
|
||||||
@@ -230,9 +231,27 @@ void GraphingWindow::axisLabelDoubleClick(QCPAxis *axis, QCPAxis::SelectablePart
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GraphingWindow::legendSingleClick(QCPLegend *legend, QCPAbstractLegendItem *item)
|
||||||
|
{
|
||||||
|
// select a graph by clicking on the legend
|
||||||
|
qDebug() << "Legend Single Click " << item;
|
||||||
|
Q_UNUSED(legend)
|
||||||
|
if (item) // only react if item was clicked (user could have clicked on border padding of legend where there is no item, then item is 0)
|
||||||
|
{
|
||||||
|
QCPPlottableLegendItem *plItem = qobject_cast<QCPPlottableLegendItem*>(item);
|
||||||
|
QCPGraph *pGraph = qobject_cast<QCPGraph *>(plItem->plottable());
|
||||||
|
QCPDataSelection sel;
|
||||||
|
QCPDataRange rang;
|
||||||
|
rang.setBegin(0);
|
||||||
|
rang.setEnd(pGraph->dataCount());
|
||||||
|
sel.addDataRange(rang);
|
||||||
|
pGraph->setSelection(sel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void GraphingWindow::legendDoubleClick(QCPLegend *legend, QCPAbstractLegendItem *item)
|
void GraphingWindow::legendDoubleClick(QCPLegend *legend, QCPAbstractLegendItem *item)
|
||||||
{
|
{
|
||||||
// Rename a graph by double clicking on its legend item
|
// edit a graph by double clicking on its legend item
|
||||||
qDebug() << "Legend Double Click " << item;
|
qDebug() << "Legend Double Click " << item;
|
||||||
Q_UNUSED(legend)
|
Q_UNUSED(legend)
|
||||||
if (item) // only react if item was clicked (user could have clicked on border padding of legend where there is no item, then item is 0)
|
if (item) // only react if item was clicked (user could have clicked on border padding of legend where there is no item, then item is 0)
|
||||||
@@ -1008,8 +1027,11 @@ void GraphingWindow::createGraph(GraphParams ¶ms, bool createGraphParam)
|
|||||||
graphParams.append(params);
|
graphParams.append(params);
|
||||||
refParam = &graphParams.last();
|
refParam = &graphParams.last();
|
||||||
}
|
}
|
||||||
//ui->graphingView->graph()->setSelectedBrush(Qt::NoBrush);
|
|
||||||
//ui->graphingView->graph()->setSelectedPen(selectedPen);
|
selDecorator = new QCPSelectionDecorator(); //this has to be a pointer as it is freed internally to qcustomplot classes
|
||||||
|
selDecorator->setBrush(Qt::NoBrush);
|
||||||
|
selDecorator->setPen(selectedPen);
|
||||||
|
ui->graphingView->graph()->setSelectionDecorator(selDecorator);
|
||||||
|
|
||||||
if (params.graphName == NULL || params.graphName.length() == 0)
|
if (params.graphName == NULL || params.graphName.length() == 0)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ private slots:
|
|||||||
void titleDoubleClick(QMouseEvent *event, QCPTextElement *title);
|
void titleDoubleClick(QMouseEvent *event, QCPTextElement *title);
|
||||||
void axisLabelDoubleClick(QCPAxis* axis, QCPAxis::SelectablePart part);
|
void axisLabelDoubleClick(QCPAxis* axis, QCPAxis::SelectablePart part);
|
||||||
void legendDoubleClick(QCPLegend* legend, QCPAbstractLegendItem* item);
|
void legendDoubleClick(QCPLegend* legend, QCPAbstractLegendItem* item);
|
||||||
|
void legendSingleClick(QCPLegend* legend, QCPAbstractLegendItem* item);
|
||||||
void plottableDoubleClick(QCPAbstractPlottable* plottable,int dataIdx, QMouseEvent* event);
|
void plottableDoubleClick(QCPAbstractPlottable* plottable,int dataIdx, QMouseEvent* event);
|
||||||
void selectionChanged();
|
void selectionChanged();
|
||||||
void mousePress();
|
void mousePress();
|
||||||
@@ -75,6 +76,7 @@ private:
|
|||||||
const QVector<CANFrame> *modelFrames;
|
const QVector<CANFrame> *modelFrames;
|
||||||
QList<GraphParams> graphParams;
|
QList<GraphParams> graphParams;
|
||||||
QPen selectedPen;
|
QPen selectedPen;
|
||||||
|
QCPSelectionDecorator *selDecorator;
|
||||||
bool needScaleSetup; //do we need to set x,y graphing extents?
|
bool needScaleSetup; //do we need to set x,y graphing extents?
|
||||||
bool secondsMode;
|
bool secondsMode;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user