From af048e8615f559231d5d551682722b75561a7fe6 Mon Sep 17 00:00:00 2001 From: Leopixelo Date: Sat, 28 Jun 2025 23:31:39 +0200 Subject: [PATCH] fix timestamp to always be in milliseconds --- re/graphingwindow.cpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/re/graphingwindow.cpp b/re/graphingwindow.cpp index 7099fba..c40db52 100644 --- a/re/graphingwindow.cpp +++ b/re/graphingwindow.cpp @@ -279,9 +279,16 @@ void GraphingWindow::plottableDoubleClick(QCPAbstractPlottable* plottable, int d int id = 0; //apply transforms to get the X axis value where we double clicked double coord = plottable->keyAxis()->pixelToCoord(event->localPos().x()); + // convert coord to seconds + if (Utility::timeStyle == TS_MICROS) + coord /= 1000000; + else if (Utility::timeStyle == TS_MILLIS) + coord /= 1000; + else if (Utility::timeStyle == TS_CLOCK) // coord is given in seconds but with an offset of one hour + coord -= 3600; + id = plottable->property("id").toInt(); - if (Utility::timeStyle == TS_SECONDS) emit sendCenterTimeID(id, coord); - else emit sendCenterTimeID(id, coord / 1000000.0); + emit sendCenterTimeID(id, coord); double x, y; QCPGraph *graph = reinterpret_cast(plottable); @@ -311,7 +318,13 @@ void GraphingWindow::gotCenterTimeID(uint32_t ID, double timestamp) QCPRange range = ui->graphingView->xAxis->range(); double offset = range.size() / 2.0; - if (Utility::timeStyle != TS_SECONDS) timestamp *= 1000000.0; //timestamp is always in seconds when being passed so convert if necessary + // timestamp is always givin in seconds + if (Utility::timeStyle == TS_MICROS) + timestamp *= 1000000; + else if (Utility::timeStyle == TS_MILLIS) + timestamp *= 1000; + else if (Utility::timeStyle == TS_CLOCK) + timestamp += 3600; // offset of one hour needed ui->graphingView->xAxis->setRange(timestamp - offset, timestamp + offset); ui->graphingView->replot(); }