1
0
mirror of https://github.com/tumic0/GPXSee.git synced 2024-11-27 21:24:47 +01:00

Code cleanup

This commit is contained in:
Martin Tůma 2015-10-17 12:08:30 +02:00
parent c21ef0b587
commit ac3614f81c
9 changed files with 56 additions and 41 deletions

View File

@ -15,13 +15,18 @@ ElevationGraph::ElevationGraph(QWidget *parent) : Graph(parent)
Graph::setXScale(0.001); Graph::setXScale(0.001);
} }
void ElevationGraph::loadData(const QVector<QPointF> &data) void ElevationGraph::loadGPX(const GPX &gpx)
{ {
qreal ascent = 0, descent = 0; QVector<QPointF> data;
qreal min = data.at(0).y(); qreal min, max, ascent = 0, descent = 0;
qreal max = data.at(0).y();
gpx.elevationGraph(data);
if (data.isEmpty())
return;
min = max = data.at(0).y();
for (int i = 1; i < data.size(); i++) { for (int i = 1; i < data.size(); i++) {
qreal cur = data.at(i).y(); qreal cur = data.at(i).y();
qreal prev = data.at(i-1).y(); qreal prev = data.at(i-1).y();
@ -42,10 +47,10 @@ void ElevationGraph::loadData(const QVector<QPointF> &data)
_max = qMax(_max, max); _max = qMax(_max, max);
_min = qMin(_min, min); _min = qMin(_min, min);
addInfo(tr("Ascent"), QString::number((int)_ascent) + " " + _yUnits); addInfo(tr("Ascent"), QString::number(_ascent, 'f', 0) + " " + _yUnits);
addInfo(tr("Descent"), QString::number((int)_descent) + " " + _yUnits); addInfo(tr("Descent"), QString::number(_descent, 'f', 0) + " " + _yUnits);
addInfo(tr("Maximum"), QString::number((int)_max) + " " + _yUnits); addInfo(tr("Maximum"), QString::number(_max, 'f', 0) + " " + _yUnits);
addInfo(tr("Minimum"), QString::number((int)_min) + " " + _yUnits); addInfo(tr("Minimum"), QString::number(_min, 'f', 0) + " " + _yUnits);
Graph::loadData(data); Graph::loadData(data);
} }

View File

@ -2,6 +2,7 @@
#define ELEVATIONGRAPH_H #define ELEVATIONGRAPH_H
#include "graph.h" #include "graph.h"
#include "gpx.h"
class ElevationGraph : public Graph class ElevationGraph : public Graph
{ {
@ -10,7 +11,7 @@ class ElevationGraph : public Graph
public: public:
ElevationGraph(QWidget *parent = 0); ElevationGraph(QWidget *parent = 0);
void loadData(const QVector<QPointF> &data); void loadGPX(const GPX &gpx);
void clear(); void clear();
private: private:

View File

@ -234,7 +234,6 @@ void Graph::clear()
if (_info->scene() == _scene) if (_info->scene() == _scene)
_scene->removeItem(_info); _scene->removeItem(_info);
_sliderInfo->show(); _sliderInfo->show();
_info->clear(); _info->clear();
@ -252,6 +251,9 @@ void Graph::clear()
void Graph::emitSliderPositionChanged(const QPointF &pos) void Graph::emitSliderPositionChanged(const QPointF &pos)
{ {
if (_graphs.isEmpty())
return;
qreal val = pos.x() / _slider->area().width(); qreal val = pos.x() / _slider->area().width();
emit sliderPositionChanged(val); emit sliderPositionChanged(val);

View File

@ -218,33 +218,21 @@ void GUI::openFile()
bool GUI::openFile(const QString &fileName) bool GUI::openFile(const QString &fileName)
{ {
GPX gpx; GPX gpx;
QVector<QPointF> elevation;
QVector<QPointF> speed;
QVector<QPointF> track;
if (!fileName.isEmpty()) { if (!fileName.isEmpty()) {
if (gpx.loadFile(fileName)) { if (gpx.loadFile(fileName)) {
gpx.elevationGraph(elevation); _elevationGraph->loadGPX(gpx);
gpx.speedGraph(speed); _speedGraph->loadGPX(gpx);
gpx.track(track); _track->loadGPX(gpx);
_elevationGraph->loadData(elevation);
_speedGraph->loadData(speed, gpx.time());
_track->loadData(track);
if (_showPOIAction->isChecked()) if (_showPOIAction->isChecked())
_track->loadPOI(_poi); _track->loadPOI(_poi);
_fileActionGroup->setEnabled(true);
if (++_files > 1)
_fileNameLabel->setText(tr("%1 tracks").arg(_files));
else
_fileNameLabel->setText(fileName);
_distance += gpx.distance(); _distance += gpx.distance();
_distanceLabel->setText(QString::number(_distance / 1000, 'f', 1)
+ " " + tr("km"));
_time += gpx.time(); _time += gpx.time();
_timeLabel->setText(timeSpan(_time));
updateStatusBarInfo(fileName);
_fileActionGroup->setEnabled(true);
return true; return true;
} else { } else {
@ -332,6 +320,18 @@ void GUI::showPOI()
_track->clearPOI(); _track->clearPOI();
} }
void GUI::updateStatusBarInfo(const QString &fileName)
{
if (++_files > 1)
_fileNameLabel->setText(tr("%1 tracks").arg(_files));
else
_fileNameLabel->setText(fileName);
_distanceLabel->setText(QString::number(_distance / 1000, 'f', 1)
+ " " + tr("km"));
_timeLabel->setText(timeSpan(_time));
}
void GUI::graphChanged(int index) void GUI::graphChanged(int index)
{ {
if (_trackGraphs->widget(index) == _elevationGraph) if (_trackGraphs->widget(index) == _elevationGraph)

View File

@ -41,13 +41,13 @@ private:
void createMenus(); void createMenus();
void createToolBars(); void createToolBars();
void createStatusBar(); void createStatusBar();
void createTrackView(); void createTrackView();
void createTrackGraphs(); void createTrackGraphs();
void keyPressEvent(QKeyEvent * event);
void saveFile(const QString &fileName); void saveFile(const QString &fileName);
void updateStatusBarInfo(const QString &fileName);
void keyPressEvent(QKeyEvent * event);
QMenu *_fileMenu; QMenu *_fileMenu;
QMenu *_aboutMenu; QMenu *_aboutMenu;

View File

@ -15,17 +15,18 @@ SpeedGraph::SpeedGraph(QWidget *parent) : Graph(parent)
Graph::setPrecision(1); Graph::setPrecision(1);
} }
void SpeedGraph::loadData(const QVector<QPointF> &data, qreal time) void SpeedGraph::loadGPX(const GPX &gpx)
{ {
QVector<QPointF> data;
qreal max = 0, sum = 0, w = 0, avg; qreal max = 0, sum = 0, w = 0, avg;
qreal dist;
if (data.size() < 2)
gpx.speedGraph(data);
if (data.isEmpty())
return; return;
dist = data.at(data.size() - 1).x() - data.at(0).x(); avg = gpx.distance() / gpx.time();
avg = dist / time; _avg.append(QPointF(gpx.distance(), avg));
_avg.append(QPointF(dist, avg));
for (int i = 0; i < data.size(); i++) for (int i = 0; i < data.size(); i++)
max = qMax(max, data.at(i).y()); max = qMax(max, data.at(i).y());

View File

@ -3,6 +3,7 @@
#include <QList> #include <QList>
#include "graph.h" #include "graph.h"
#include "gpx.h"
class SpeedGraph : public Graph class SpeedGraph : public Graph
{ {
@ -11,7 +12,7 @@ class SpeedGraph : public Graph
public: public:
SpeedGraph(QWidget *parent = 0); SpeedGraph(QWidget *parent = 0);
void loadData(const QVector<QPointF> &data, qreal time); void loadGPX(const GPX &gpx);
void clear(); void clear();
private: private:

View File

@ -26,13 +26,17 @@ Track::~Track()
delete _scene; delete _scene;
} }
void Track::loadData(const QVector<QPointF> &track) void Track::loadGPX(const GPX &gpx)
{ {
QVector<QPointF> track;
QPainterPath path; QPainterPath path;
QGraphicsPathItem *pi; QGraphicsPathItem *pi;
MarkerItem *mi; MarkerItem *mi;
QColor color = _colorShop.color(); QColor color = _colorShop.color();
gpx.track(track);
if (track.size() < 2) if (track.size() < 2)
return; return;

View File

@ -7,6 +7,7 @@
#include <QList> #include <QList>
#include <QPrinter> #include <QPrinter>
#include "poi.h" #include "poi.h"
#include "gpx.h"
#include "colorshop.h" #include "colorshop.h"
@ -21,7 +22,7 @@ public:
Track(QWidget *parent = 0); Track(QWidget *parent = 0);
~Track(); ~Track();
void loadData(const QVector<QPointF> &track); void loadGPX(const GPX &gpx);
void loadPOI(const POI &poi); void loadPOI(const POI &poi);
void clearPOI(); void clearPOI();