From 91217150243a643d3adf861954d7f3f2d2fb7246 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Thu, 25 Nov 2021 14:09:10 +0100 Subject: [PATCH] Fix LogsModel::findClosest() to not return a entry before logging started --- libnymea-app/models/logsmodel.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libnymea-app/models/logsmodel.cpp b/libnymea-app/models/logsmodel.cpp index 929259a1..bf14a307 100644 --- a/libnymea-app/models/logsmodel.cpp +++ b/libnymea-app/models/logsmodel.cpp @@ -232,17 +232,21 @@ LogEntry *LogsModel::get(int index) const LogEntry *LogsModel::findClosest(const QDateTime &dateTime) { -// qWarning() << "********************Finding closest for:" << dateTime.time().toString(); + qWarning() << "********************Finding closest for:" << dateTime.time().toString(); int newest = 0; int oldest = m_list.count() - 1; LogEntry *entry = nullptr; int step = 0; + LogEntry *allTimeOldestEntry = m_list.at(oldest); + if (dateTime < allTimeOldestEntry->timestamp()) { + return nullptr; + } while (oldest > newest && step < m_list.count()) { LogEntry *oldestEntry = m_list.at(oldest); LogEntry *newestEntry = m_list.at(newest); int middle = (oldest - newest) / 2 + newest; LogEntry *middleEntry = m_list.at(middle); -// qWarning() << "Oldest:" << oldestEntry->timestamp().time().toString() << "Middle:" << middleEntry->timestamp().time().toString() << "Newest:" << newestEntry->timestamp().time().toString() << ":" << (oldest - newest); + qWarning() << "Oldest:" << oldestEntry->timestamp().time().toString() << "Middle:" << middleEntry->timestamp().time().toString() << "Newest:" << newestEntry->timestamp().time().toString() << ":" << (oldest - newest); if (dateTime <= oldestEntry->timestamp()) { return oldestEntry; }