RideItem::zones is just a pointer

...not a pointer to a pointer.
This commit is contained in:
Sean Rhea
2009-12-02 10:54:22 -05:00
parent eb9eddfb66
commit 772de9f364
8 changed files with 46 additions and 57 deletions

View File

@@ -62,11 +62,11 @@ class AllPlotBackground: public QwtPlotItem
if (! rideItem)
return;
Zones **zones = rideItem->zones;
Zones *zones = rideItem->zones;
int zone_range = rideItem->zoneRange();
if (parent->shadeZones() && zones && *zones && (zone_range >= 0)) {
QList <int> zone_lows = (*zones)->getZoneLows(zone_range);
if (parent->shadeZones() && (zone_range >= 0)) {
QList <int> zone_lows = zones->getZoneLows(zone_range);
int num_zones = zone_lows.size();
if (num_zones > 0) {
for (int z = 0; z < num_zones; z ++) {
@@ -112,13 +112,13 @@ class AllPlotZoneLabel: public QwtPlotItem
return;
Zones **zones = rideItem->zones;
Zones *zones = rideItem->zones;
int zone_range = rideItem->zoneRange();
// create new zone labels if we're shading
if (parent->shadeZones() && zones && *zones && (zone_range >= 0)) {
QList <int> zone_lows = (*zones)->getZoneLows(zone_range);
QList <QString> zone_names = (*zones)->getZoneNames(zone_range);
if (parent->shadeZones() && (zone_range >= 0)) {
QList <int> zone_lows = zones->getZoneLows(zone_range);
QList <QString> zone_names = zones->getZoneNames(zone_range);
int num_zones = zone_lows.size();
assert(zone_names.size() == num_zones);
if (zone_number < num_zones) {
@@ -254,11 +254,11 @@ void AllPlot::refreshZoneLabels()
if (rideItem) {
int zone_range = rideItem->zoneRange();
Zones **zones = rideItem->zones;
Zones *zones = rideItem->zones;
// generate labels for existing zones
if (zones && *zones && (zone_range >= 0)) {
int num_zones = (*zones)->numZones(zone_range);
if (zone_range >= 0) {
int num_zones = zones->numZones(zone_range);
for (int z = 0; z < num_zones; z ++) {
AllPlotZoneLabel *label = new AllPlotZoneLabel(this, z);
label->attach(this);

View File

@@ -485,7 +485,7 @@ CpintPlot::plot_allCurve(CpintPlot *thisPlot,
// generate zones from derived CP value
if (cp > 0) {
QList <int> power_zone;
int n_zones = (*zones)->lowsFromCP(&power_zone, (int) int(cp));
int n_zones = zones->lowsFromCP(&power_zone, (int) int(cp));
int high = n_values - 1;
int zone = 0;
while (zone < n_zones) {
@@ -499,7 +499,7 @@ CpintPlot::plot_allCurve(CpintPlot *thisPlot,
}
QColor color = zoneColor(zone, n_zones);
QString name = (*zones)->getDefaultZoneName(zone);
QString name = zones->getDefaultZoneName(zone);
QwtPlotCurve *curve = new QwtPlotCurve(name);
curve->setRenderHint(QwtPlotItem::RenderAntialiased);
QPen pen(color);

View File

@@ -72,7 +72,7 @@ class CpintPlot : public QwtPlot
QVector<QDate> bestDates;
QDate startDate;
QDate endDate;
Zones **zones;
Zones *zones;
// keys are CPI files contributing to bests (at least originally)
QHash<QString,bool> cpiDataInBests;
bool energyMode_;

View File

@@ -165,7 +165,7 @@ MainWindow::MainWindow(const QDir &home) :
QDateTime dt;
if (parseRideFileName(name, &notesFileName, &dt)) {
last = new RideItem(RIDE_TYPE, home.path(),
name, dt, &zones, notesFileName);
name, dt, zones, notesFileName);
allRides->addChild(last);
calendar->addRide(reinterpret_cast<RideItem*>(last));
}
@@ -348,7 +348,7 @@ MainWindow::addRide(QString name, bool bSelect /*=true*/)
assert(false);
}
RideItem *last = new RideItem(RIDE_TYPE, home.path(),
name, dt, &zones, notesFileName);
name, dt, zones, notesFileName);
QVariant isAscending = settings->value(GC_ALLRIDES_ASCENDING,Qt::Checked); // default is ascending sort
int index = 0;

View File

@@ -52,15 +52,15 @@ class PfPvPlotZoneLabel: public QwtPlotItem
zone_number = _zone_number;
RideItem *rideItem = parent->rideItem;
Zones **zones = rideItem->zones;
Zones *zones = rideItem->zones;
int zone_range = rideItem->zoneRange();
setZ(1.0 + zone_number / 100.0);
// create new zone labels if we're shading
if (zones && *zones && (zone_range >= 0)) {
QList <int> zone_lows = (*zones)->getZoneLows(zone_range);
QList <QString> zone_names = (*zones)->getZoneNames(zone_range);
if (zone_range >= 0) {
QList <int> zone_lows = zones->getZoneLows(zone_range);
QList <QString> zone_names = zones->getZoneNames(zone_range);
int num_zones = zone_lows.size();
assert(zone_names.size() == num_zones);
if (zone_number < num_zones) {
@@ -198,15 +198,15 @@ PfPvPlot::refreshZoneItems()
if (! rideItem)
return;
Zones **zones = rideItem->zones;
Zones *zones = rideItem->zones;
int zone_range = rideItem->zoneRange();
if (zones && *zones && (zone_range >= 0)) {
setCP((*zones)->getCP(zone_range));
if (zone_range >= 0) {
setCP(zones->getCP(zone_range));
// populate the zone curves
QList <int> zone_power = (*zones)->getZoneLows(zone_range);
QList <QString> zone_name = (*zones)->getZoneNames(zone_range);
QList <int> zone_power = zones->getZoneLows(zone_range);
QList <QString> zone_name = zones->getZoneNames(zone_range);
int num_zones = zone_power.size();
assert(zone_name.size() == num_zones);
if (num_zones > 0) {

View File

@@ -90,11 +90,11 @@ public:
if (! rideItem)
return;
Zones **zones = rideItem->zones;
Zones *zones = rideItem->zones;
int zone_range = rideItem->zoneRange();
if (parent->shadeZones() && zones && *zones && (zone_range >= 0)) {
QList <int> zone_lows = (*zones)->getZoneLows(zone_range);
if (parent->shadeZones() && (zone_range >= 0)) {
QList <int> zone_lows = zones->getZoneLows(zone_range);
int num_zones = zone_lows.size();
if (num_zones > 0) {
for (int z = 0; z < num_zones; z ++) {
@@ -140,15 +140,15 @@ public:
if (! rideItem)
return;
Zones **zones = rideItem->zones;
Zones *zones = rideItem->zones;
int zone_range = rideItem->zoneRange();
setZ(1.0 + zone_number / 100.0);
// create new zone labels if we're shading
if (parent->shadeZones() && zones && *zones && (zone_range >= 0)) {
QList <int> zone_lows = (*zones)->getZoneLows(zone_range);
QList <QString> zone_names = (*zones)->getZoneNames(zone_range);
if (parent->shadeZones() && (zone_range >= 0)) {
QList <int> zone_lows = zones->getZoneLows(zone_range);
QList <QString> zone_names = zones->getZoneNames(zone_range);
int num_zones = zone_lows.size();
assert(zone_names.size() == num_zones);
if (zone_number < num_zones) {
@@ -283,12 +283,12 @@ PowerHist::refreshZoneLabels()
return;
if ((selected == wattsShaded) || (selected == wattsUnshaded)) {
Zones **zones = rideItem->zones;
Zones *zones = rideItem->zones;
int zone_range = rideItem->zoneRange();
// generate labels for existing zones
if (zones && *zones && (zone_range >= 0)) {
int num_zones = (*zones)->numZones(zone_range);
if (zone_range >= 0) {
int num_zones = zones->numZones(zone_range);
for (int z = 0; z < num_zones; z ++) {
PowerHistZoneLabel *label = new PowerHistZoneLabel(this, z);
label->attach(this);

View File

@@ -29,7 +29,7 @@
RideItem::RideItem(int type,
QString path, QString fileName, const QDateTime &dateTime,
Zones **zones, QString notesFileName) :
Zones *zones, QString notesFileName) :
QTreeWidgetItem(type), path(path), fileName(fileName),
dateTime(dateTime), ride(NULL), zones(zones), notesFileName(notesFileName)
{
@@ -111,24 +111,13 @@ static void summarize(bool even,
int RideItem::zoneRange()
{
return (
(zones && *zones) ?
(*zones)->whichRange(dateTime.date()) :
-1
);
return zones->whichRange(dateTime.date());
}
int RideItem::numZones()
{
if (zones && *zones) {
int zone_range = zoneRange();
return ((zone_range >= 0) ?
(*zones)->numZones(zone_range) :
0
);
}
else
return 0;
int zone_range = zoneRange();
return (zone_range >= 0) ? zones->numZones(zone_range) : 0;
}
double RideItem::timeInZone(int zone)
@@ -193,7 +182,7 @@ RideItem::computeMetrics()
{
const QDateTime nilTime;
if ((computeMetricsTime != nilTime) &&
(!zones || !*zones || (computeMetricsTime >= (*zones)->modificationTime))) {
(computeMetricsTime >= zones->modificationTime)) {
return;
}
@@ -211,7 +200,7 @@ RideItem::computeMetrics()
int num_zones = numZones();
time_in_zone.clear();
if (zone_range >= 0) {
num_zones = (*zones)->numZones(zone_range);
num_zones = zones->numZones(zone_range);
time_in_zone.resize(num_zones);
}
@@ -219,7 +208,7 @@ RideItem::computeMetrics()
foreach (const RideFilePoint *point, ride->dataPoints()) {
if (point->watts >= 0.0) {
if (num_zones > 0) {
int zone = (*zones)->whichZone(zone_range, point->watts);
int zone = zones->whichZone(zone_range, point->watts);
if (zone >= 0)
time_in_zone[zone] += secs_delta;
}
@@ -249,7 +238,7 @@ RideItem::computeMetrics()
if (!metrics.contains(deps[j]))
goto later;
RideMetric *metric = factory.newMetric(name);
metric->compute(ride, *zones, zone_range, metrics);
metric->compute(ride, zones, zone_range, metrics);
metrics.insert(name, metric);
i.remove();
}
@@ -262,7 +251,7 @@ QString
RideItem::htmlSummary()
{
if (summary.isEmpty() ||
(zones && *zones && (summaryGenerationTime < (*zones)->modificationTime))) {
(summaryGenerationTime < zones->modificationTime)) {
summaryGenerationTime = QDateTime::currentDateTime();
@@ -410,7 +399,7 @@ RideItem::htmlSummary()
if (!time_in_zone.empty()) {
summary += "<h2>Power Zones</h2>";
summary += (*zones)->summarize(zoneRange(), time_in_zone);
summary += zones->summarize(zoneRange(), time_in_zone);
}
// TODO: Ergomo uses non-consecutive interval numbers.

View File

@@ -39,7 +39,7 @@ class RideItem : public QTreeWidgetItem {
QString summary;
QDateTime summaryGenerationTime, computeMetricsTime;
RideFile *ride;
Zones **zones;
Zones *zones;
QString notesFileName;
typedef QHash<QString,RideMetric*> MetricMap;
@@ -49,7 +49,7 @@ class RideItem : public QTreeWidgetItem {
RideItem(int type, QString path,
QString fileName, const QDateTime &dateTime,
Zones **zones, QString notesFileName);
Zones *zones, QString notesFileName);
~RideItem();