From 3090f0f1def6140c793a415760da5cdb410ca205 Mon Sep 17 00:00:00 2001 From: Arseniy-Movshev Date: Sun, 2 Jul 2023 14:56:41 +0100 Subject: Add a method for getting data over multiple days --- qmlplugin/weightDataLoader.cpp | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) (limited to 'qmlplugin/weightDataLoader.cpp') diff --git a/qmlplugin/weightDataLoader.cpp b/qmlplugin/weightDataLoader.cpp index 2331252..c585995 100644 --- a/qmlplugin/weightDataLoader.cpp +++ b/qmlplugin/weightDataLoader.cpp @@ -34,11 +34,15 @@ QVariant WeightDataLoader::getTodayData() { } QVariant WeightDataLoader::getDataForDate(QDate date) { + return QVariant::fromValue(getRawDataForDate(date)); +} + +QList WeightDataLoader::getRawDataForDate(QDate date) { QList m_filedata; QFile file(fileNameForDate(date, "weight")); if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug() << "failed to open file"; - return QVariant::fromValue(m_filedata); + return m_filedata; } QTextStream inStream(&file); QString line; @@ -47,10 +51,32 @@ QVariant WeightDataLoader::getDataForDate(QDate date) { QPointF point; point.setX(line.split(":")[0].toInt()); point.setY(line.split(":")[1].toInt()); + qDebug() << point; m_filedata.append(point); } file.close(); - return QVariant::fromValue(m_filedata); + return m_filedata; +} + +QVariant WeightDataLoader::getDataFromTo(QDate date1, QDate date2) { + QList filedata; + if (date1 > date2) { + QDate temp = date1; + date1 = date2; + date2 = temp; + } + for (QDate i = date1; i <= date2; i = i.addDays(1)) { + qDebug() << "currently loading " << i; + QList data = getRawDataForDate(i); + qDebug() << filedata.count(); + if (filedata.count() == 0) { + filedata = data; + qDebug() << filedata.count(); + } else { + filedata += data; + } + } + return QVariant::fromValue(filedata); } void WeightDataLoader::addDataPoint(qreal value) { -- cgit v1.2.3-54-g00ecf