Files
GoldenCheetah/src/RideItem.h
Sean Rhea ef200085a8 compute metrics in RideMetric
Move the logic for how to compute RideMetrics from a RideFile, including
dependency tracking, out of RideItem and into RideMetric.  I'm going to start
using them for intervals as well as rides, and I don't want to construct a
RideItem for each interval.  It also seems more natural here.  For
performance, RideItem still caches the computed metrics for a RideFile.
2009-12-22 15:23:02 -05:00

66 lines
1.8 KiB
C++

/*
* Copyright (c) 2006 Sean C. Rhea (srhea@srhea.net)
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 2 of the License, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef _GC_RideItem_h
#define _GC_RideItem_h 1
#include <QtGui>
#include "RideMetric.h"
class RideFile;
class Zones;
class RideItem : public QTreeWidgetItem {
protected:
QVector<double> time_in_zone;
RideFile *ride_;
QStringList errors_;
bool isdirty;
public:
QString path;
QString fileName;
QDateTime dateTime;
QDateTime computeMetricsTime;
RideFile *ride();
const QStringList errors() { return errors_; }
const Zones *zones;
QString notesFileName;
QHash<QString,RideMetricPtr> metrics;
RideItem(int type, QString path,
QString fileName, const QDateTime &dateTime,
const Zones *zones, QString notesFileName);
void setDirty(bool);
bool isDirty() { return isdirty; }
void setFileName(QString, QString);
void computeMetrics();
void freeMemory();
int zoneRange();
int numZones();
double timeInZone(int zone);
};
#endif // _GC_RideItem_h