Refactor MainWindow Part 2 of 5

Decoupled classes from MainWindow to reference Context
and Athlete (and introduced a couple of new headers).

We no longer pass around a MainWindow pointer to children
but pass a context instead.

There are still a few pieces left in MainWindow that need
to move to a better place;
    * Setting/clearing filter selection
    * Working with Intervals
    * Adding/Deleting Rides
    * Save on Exit

As mentioned previously there are lots of other parts to
this refactor left to do;
    * break MainWindow Gui elements into Toolbar and Views

    * migrate from RideItem and Ridelist to ActivityCollection
      and Activity classes that are not tied into gui elements.

    * introduce Application Context and AthleteCollection
This commit is contained in:
Mark Liversedge
2013-07-10 13:57:30 +01:00
parent cd54ce16c8
commit 05f1d577db
235 changed files with 2196 additions and 1948 deletions

View File

@@ -18,14 +18,15 @@
#include "BestIntervalDialog.h"
#include "MainWindow.h"
#include "Context.h"
#include "IntervalItem.h"
#include "RideFile.h"
#include <QMap>
#include <assert.h>
#include <math.h>
BestIntervalDialog::BestIntervalDialog(MainWindow *mainWindow) :
mainWindow(mainWindow)
BestIntervalDialog::BestIntervalDialog(Context *context) :
context(context)
{
setAttribute(Qt::WA_DeleteOnClose);
setWindowTitle("Find Best Intervals");
@@ -144,7 +145,7 @@ struct CompareBests {
void
BestIntervalDialog::findClicked()
{
const RideFile *ride = mainWindow->context->currentRide();
const RideFile *ride = context->currentRide();
if (!ride) {
QMessageBox::critical(this, tr("Select Ride"), tr("No ride selected!"));
return;
@@ -319,9 +320,9 @@ BestIntervalDialog::addClicked()
double start = resultsTable->item(i,3)->text().toDouble();
double stop = resultsTable->item(i,4)->text().toDouble();
QString name = resultsTable->item(i,2)->text();
const RideFile *ride = mainWindow->context->currentRide();
const RideFile *ride = context->currentRide();
QTreeWidgetItem *allIntervals = mainWindow->mutableIntervalItems();
QTreeWidgetItem *allIntervals = context->mainWindow->mutableIntervalItems();
QTreeWidgetItem *last =
new IntervalItem(ride, name, start, stop,
ride->timeToDistance(start),
@@ -332,5 +333,5 @@ BestIntervalDialog::addClicked()
allIntervals->addChild(last);
}
}
mainWindow->updateRideFileIntervals();
context->mainWindow->updateRideFileIntervals();
}