diff -r dfefb6003498 -r c55e1f2a4db4 mainwindow.cc --- a/mainwindow.cc Sun Jan 29 00:38:40 2012 +0100 +++ b/mainwindow.cc Sun Jan 29 01:51:02 2012 +0100 @@ -9,6 +9,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui_(new Ui::MainWindow), + igc_(0), plot_(new QwtPlot(tr("Altitude"), this)) { ui_->setupUi(this); @@ -41,6 +42,8 @@ MainWindow::~MainWindow() { delete ui_; + delete igc_; + delete plot_; } void MainWindow::open(const QString &s) @@ -72,9 +75,16 @@ setWindowTitle(QFileInfo(fileName).baseName()); statusBar()->showMessage(tr("opening %1").arg(fileName), 5000); - igc_.read(input_); + delete igc_; + igc_ = new IGC(input_); + showInfo(); + showProfile(); +} + +void MainWindow::showInfo() +{ // now let's fill the table QTableWidget *t = ui_->table; int r = 0; @@ -88,57 +98,32 @@ // fill t->setRowCount(t->rowCount() + 1); t->setItem(r, K, new QTableWidgetItem(tr("Pilot"))); - t->setItem(r, V, new QTableWidgetItem(igc_.pilot())); + t->setItem(r, V, new QTableWidgetItem(igc_->pilot())); ++r; t->setRowCount(t->rowCount() + 1); t->setItem(r, K, new QTableWidgetItem(tr("Date"))); - t->setItem(r, V, new QTableWidgetItem(igc_ - .date() + t->setItem(r, V, new QTableWidgetItem(igc_->date() .toString(DefaultLocaleLongDate))); ++r; t->setRowCount(t->rowCount() + 1); t->setItem(r, K, new QTableWidgetItem(tr("Glider"))); - t->setItem(r, V, new QTableWidgetItem(igc_.glider())); + t->setItem(r, V, new QTableWidgetItem(igc_->glider())); ++r; t->setRowCount(t->rowCount() + 1); t->setItem(r, K, new QTableWidgetItem(tr("Place"))); - t->setItem(r, V, new QTableWidgetItem(igc_.start().longitude() + " / " + igc_.start().latitude())); + t->setItem(r, V, new QTableWidgetItem(igc_->start().longitude() + " / " + igc_->start().latitude())); ++r; - showProfile(); } void MainWindow::showProfile() { - const Fixes f = igc_.fixes(); -#ifdef MYPLOT - QList< QPair > altitudesBaro; - QList< QPair > altitudesGPS; -#endif - QVector pointsGPS; - QVector pointsBaro; - - - for (Fixes::const_iterator i = f.begin(); - i != f.end(); - i++) { -#ifdef MYPLOT - altitudesBaro << i->altitudeFix(Fix::baro); - altitudesGPS << i->altitudeFix(Fix::gps); -#endif - pointsGPS << QPointF(QTime().secsTo(i->time()), i->altitude(Fix::gps)); - pointsBaro << QPointF(QTime().secsTo(i->time()), i->altitude(Fix::baro)); - } - -#ifdef MYPLOT - myPlot_.draw(altitudesBaro.begin(), altitudesBaro.end()); - myPlot_.draw(altitudesGPS.begin(), altitudesGPS.end()); - ui_->altitude->setScene(&myPlot_); -#endif + QVector pointsGPS = igc_->altitude(Fix::gps); + QVector pointsBaro = igc_->altitude(Fix::baro); QwtPlotCurve *gps = new QwtPlotCurve(tr("Altitude GPS")); QwtPlotCurve *baro = new QwtPlotCurve(tr("Altitude barometric"));