From 5ecb26e72849ebf01ffd7eaeba7f2d5a6a5029c7 Mon Sep 17 00:00:00 2001 From: Mark Liversedge Date: Fri, 12 Dec 2014 10:40:32 +0000 Subject: [PATCH] Migrate getAllFilenames() .. from MetricAggregator to RideCache --- src/Athlete.cpp | 17 ++++------------- src/MetricAggregator.cpp | 16 ---------------- src/MetricAggregator.h | 1 - src/RideCache.cpp | 10 ++++++++++ src/RideCache.h | 1 + src/RideFileCache.cpp | 3 ++- 6 files changed, 17 insertions(+), 31 deletions(-) diff --git a/src/Athlete.cpp b/src/Athlete.cpp index 3817f8717..a273f2a76 100644 --- a/src/Athlete.cpp +++ b/src/Athlete.cpp @@ -133,7 +133,6 @@ Athlete::Athlete(Context *context, const QDir &homeDir) // seconds step of the upgrade - now everything of configuration needed should be in place in Context v3.upgradeLate(context); - // Routes routes = new Routes(context, home->config()); @@ -158,6 +157,10 @@ Athlete::Athlete(Context *context, const QDir &homeDir) if (errors.count() == 0) setWithings(parser.readings()); } + // now most dependencies are in get cache + // must be before metricDB as we transition it out... + rideCache = new RideCache(context); + // metrics DB metricDB = new MetricAggregator(context); // just to catch config updates! metricDB->refreshMetrics(); @@ -204,8 +207,6 @@ Athlete::Athlete(Context *context, const QDir &homeDir) allIntervals->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsDropEnabled); allIntervals->setText(0, tr("Intervals")); - rideCache = new RideCache(context); - // trap signals connect(context, SIGNAL(configChanged()), this, SLOT(configChanged())); connect(context,SIGNAL(rideAdded(RideItem*)),this,SLOT(checkCPX(RideItem*))); @@ -411,16 +412,6 @@ Athlete::configChanged() QVariant unit = appsettings->cvalue(cyclist, GC_UNIT); useMetricUnits = (unit.toString() == GC_UNIT_METRIC); - -/*XXX not sure about this - // forget all the cached weight values in case weight changed - foreach (RideItem *rideItem, rideCache->rides()) { - if (rideItem->ride(false)) { - rideItem->ride(false)->setWeight(0); - rideItem->ride(false)->getWeight(); - } - } -XXX */ } void diff --git a/src/MetricAggregator.cpp b/src/MetricAggregator.cpp index f60bd8d0d..e6a2d483e 100644 --- a/src/MetricAggregator.cpp +++ b/src/MetricAggregator.cpp @@ -72,22 +72,6 @@ void MetricAggregator::refreshMetrics() { refreshMetrics(QDateTime()); } -QStringList -MetricAggregator::allActivityFilenames() -{ - QStringList returning; - - // get a Hash map of statistic records and timestamps - QSqlQuery query(dbaccess->connection()); - bool rc = query.exec("SELECT filename FROM metrics ORDER BY ride_date;"); - while (rc && query.next()) { - QString filename = query.value(0).toString(); - returning << filename; - } - - return returning; -} - // Refresh not up to date metrics and metrics after date void MetricAggregator::refreshMetrics(QDateTime forceAfterThisDate) diff --git a/src/MetricAggregator.h b/src/MetricAggregator.h index a96b299c0..37f2eafcf 100644 --- a/src/MetricAggregator.h +++ b/src/MetricAggregator.h @@ -57,7 +57,6 @@ class MetricAggregator : public QObject QList getAllMeasuresFor(QDateTime start, QDateTime end); QList getAllMeasuresFor(DateRange); SummaryMetrics getRideMetrics(QString filename); - QStringList allActivityFilenames(); signals: void dataChanged(); // when metricDB table changed diff --git a/src/RideCache.cpp b/src/RideCache.cpp index b6ccf74ef..aae96a995 100644 --- a/src/RideCache.cpp +++ b/src/RideCache.cpp @@ -434,3 +434,13 @@ RideCache::getAllDates() } return returning; } + +QStringList +RideCache::getAllFilenames() +{ + QStringList returning; + foreach(RideItem *item, rides()) { + returning << item->fileName; + } + return returning; +} diff --git a/src/RideCache.h b/src/RideCache.h index 29998ddb8..befcb4365 100644 --- a/src/RideCache.h +++ b/src/RideCache.h @@ -49,6 +49,7 @@ class RideCache : public QObject // query the cache QList getAllDates(); + QStringList getAllFilenames(); // is running ? bool isRunning() { return future.isRunning(); } diff --git a/src/RideFileCache.cpp b/src/RideFileCache.cpp index de4c6a117..5310da2b6 100644 --- a/src/RideFileCache.cpp +++ b/src/RideFileCache.cpp @@ -20,6 +20,7 @@ #include "MainWindow.h" #include "Context.h" #include "Athlete.h" +#include "RideCache.h" #include "Zones.h" #include "HrZones.h" #include "PaceZones.h" @@ -1851,7 +1852,7 @@ RideFileCache::getAllBestsFor(Context *context, QList metrics, QDa if (worklist.count() == 0) return results; // no work to do // get a list of rides & iterate over them - foreach(QString filename, context->athlete->metricDB->allActivityFilenames()) { + foreach(QString filename, context->athlete->rideCache->getAllFilenames()) { QDateTime datetime; QRegExp rx ("^((\\d\\d\\d\\d)_(\\d\\d)_(\\d\\d)_(\\d\\d)_(\\d\\d)_(\\d\\d))\\.(.+)$");