use a QVector for time_in_zone

This commit is contained in:
Sean Rhea
2009-09-27 20:00:47 -04:00
parent 47cc777b04
commit e7e34c107e
5 changed files with 12 additions and 19 deletions

View File

@@ -1071,7 +1071,7 @@ void MainWindow::generateWeeklySummary()
}
int zone_range = -1;
double *time_in_zone = NULL;
QVector<double> 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 += "</center>";
delete weeklyDistance;

View File

@@ -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 += "<h2>Power Zones</h2>";
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.

View File

@@ -29,7 +29,7 @@ class RideItem : public QTreeWidgetItem {
protected:
double *time_in_zone;
QVector<double> time_in_zone;
public:

View File

@@ -668,11 +668,11 @@ QList <QString> 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<double> &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 += "<table align=\"center\" width=\"70%\" border=\"0\">";
@@ -689,7 +689,7 @@ QString Zones::summarize(int rnum, double *time_in_zone, int num_zones) const
summary += "<td align=\"center\">High</td>";
summary += "<td align=\"center\">Time</td>";
summary += "</tr>";
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;

View File

@@ -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<double> &time_in_zone) const;
int getCP(int rnum) const;
void setCP(int rnum, int cp);
QString getDefaultZoneName(int z);