diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 4f266eb7c..ac919108a 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -1071,7 +1071,7 @@ void MainWindow::generateWeeklySummary() } int zone_range = -1; - double *time_in_zone = NULL; + QVector time_in_zone; int num_zones = -1; bool zones_ok = true; @@ -1123,9 +1123,8 @@ void MainWindow::generateWeeklySummary() if (zone_range == -1) { zone_range = item->zoneRange(); num_zones = item->numZones(); - time_in_zone = new double[num_zones]; - for (int j = 0; j < num_zones; ++j) - time_in_zone[j] = 0; + time_in_zone.clear(); + time_in_zone.resize(num_zones); } else if (item->zoneRange() != zone_range) { zones_ok = false; @@ -1196,13 +1195,10 @@ void MainWindow::generateWeeklySummary() if (!zones_ok) summary += "Error: Week spans more than one zone range."; else { - summary += zones->summarize(zone_range, time_in_zone, num_zones); + summary += zones->summarize(zone_range, time_in_zone); } } - if (time_in_zone) - delete [] time_in_zone; - summary += ""; delete weeklyDistance; diff --git a/src/RideItem.cpp b/src/RideItem.cpp index be6e1825a..e91c807a7 100644 --- a/src/RideItem.cpp +++ b/src/RideItem.cpp @@ -40,8 +40,6 @@ RideItem::RideItem(int type, setText(2, dateTime.toString("h:mm AP")); setTextAlignment(1, Qt::AlignRight); setTextAlignment(2, Qt::AlignRight); - - time_in_zone = NULL; } RideItem::~RideItem() @@ -215,9 +213,8 @@ RideItem::htmlSummary() ((num_zones = (*zones)->numZones(zone_range)) > 0) ) { - time_in_zone = new double[num_zones]; - for (int i = 0; i < num_zones; ++i) - time_in_zone[i] = 0.0; + time_in_zone.clear(); + time_in_zone.resize(num_zones); } const RideMetricFactory &factory = RideMetricFactory::instance(); @@ -393,7 +390,7 @@ RideItem::htmlSummary() if (num_zones > 0) { summary += "

Power Zones

"; - summary += (*zones)->summarize(zone_range, time_in_zone, num_zones); + summary += (*zones)->summarize(zone_range, time_in_zone); } // TODO: Ergomo uses non-consecutive interval numbers. diff --git a/src/RideItem.h b/src/RideItem.h index ac5d846c4..723c5f303 100644 --- a/src/RideItem.h +++ b/src/RideItem.h @@ -29,7 +29,7 @@ class RideItem : public QTreeWidgetItem { protected: - double *time_in_zone; + QVector time_in_zone; public: diff --git a/src/Zones.cpp b/src/Zones.cpp index dd8219d80..b5a7aff72 100644 --- a/src/Zones.cpp +++ b/src/Zones.cpp @@ -668,11 +668,11 @@ QList Zones::getZoneNames(int rnum) { return return_values; } -QString Zones::summarize(int rnum, double *time_in_zone, int num_zones) const +QString Zones::summarize(int rnum, QVector &time_in_zone) const { assert(rnum < ranges.size()); ZoneRange *range = ranges[rnum]; - assert(num_zones == range->zones.size()); + assert(time_in_zone.size() == range->zones.size()); QString summary; if(range->cp > 0){ summary += ""; @@ -689,7 +689,7 @@ QString Zones::summarize(int rnum, double *time_in_zone, int num_zones) const summary += ""; summary += ""; summary += ""; - for (int zone = 0; zone < num_zones; ++zone) { + for (int zone = 0; zone < time_in_zone.size(); ++zone) { if (time_in_zone[zone] > 0.0) { QString name, desc; int lo, hi; diff --git a/src/Zones.h b/src/Zones.h index b1e198e60..4500d15c4 100644 --- a/src/Zones.h +++ b/src/Zones.h @@ -85,7 +85,7 @@ class Zones : public QObject void zoneInfo(int range, int zone, QString &name, QString &description, int &low, int &high) const; - QString summarize(int rnum, double *time_in_zone, int num_zones) const; + QString summarize(int rnum, QVector &time_in_zone) const; int getCP(int rnum) const; void setCP(int rnum, int cp); QString getDefaultZoneName(int z);
HighTime