mirror of
https://github.com/GoldenCheetah/GoldenCheetah.git
synced 2026-02-13 16:18:42 +00:00
Fix formulas not working on Trends for additional athletes
DataFilter requires an activity selected for formulas to work even in Trends view, so they fail until you switch to Activities view and back to Trends. To avoid this we ensure an activity is selected for any view selected at startup. Required for #4718
This commit is contained in:
@@ -147,6 +147,29 @@ AbstractView::resizeEvent(QResizeEvent *)
|
||||
active = false;
|
||||
}
|
||||
|
||||
void
|
||||
AbstractView::notifyViewStateRestored()
|
||||
{
|
||||
// lets select the first ride if it has not been set,
|
||||
// currently required to use DataFilter in any view.
|
||||
if (context->ride == nullptr) {
|
||||
|
||||
// lets select the first ride
|
||||
QDateTime now = QDateTime::currentDateTime();
|
||||
for (int i = context->athlete->rideCache->rides().count(); i > 0; --i) {
|
||||
if (context->athlete->rideCache->rides()[i - 1]->dateTime <= now) {
|
||||
context->athlete->selectRideFile(context->athlete->rideCache->rides()[i - 1]->fileName);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// otherwise just select the latest ride
|
||||
if (context->athlete->rideCache->rides().count() != 0) {
|
||||
context->athlete->selectRideFile(context->athlete->rideCache->rides().last()->fileName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
AbstractView::notifyViewPerspectiveAdded(Perspective* page)
|
||||
{
|
||||
|
||||
@@ -185,11 +185,11 @@ class AbstractView : public QWidget
|
||||
bool loaded;
|
||||
|
||||
// Support view specific behaviour
|
||||
virtual void notifyViewStateRestored() {}
|
||||
virtual void notifyViewStateRestored();
|
||||
virtual void notifyViewPerspectiveAdded(Perspective* page);
|
||||
virtual void notifyViewSidebarChanged() {}
|
||||
virtual void setViewSpecificPerspective() {};
|
||||
virtual void notifyViewSplitterMoved() {};
|
||||
virtual void setViewSpecificPerspective() {}
|
||||
virtual void notifyViewSplitterMoved() {}
|
||||
|
||||
private slots:
|
||||
void onIdle();
|
||||
|
||||
@@ -126,24 +126,6 @@ AnalysisView::isBlank()
|
||||
else return true;
|
||||
}
|
||||
|
||||
void
|
||||
AnalysisView::notifyViewStateRestored() {
|
||||
|
||||
// lets select the first ride
|
||||
QDateTime now = QDateTime::currentDateTime();
|
||||
for (int i = context->athlete->rideCache->rides().count(); i > 0; --i) {
|
||||
if (context->athlete->rideCache->rides()[i - 1]->dateTime <= now) {
|
||||
context->athlete->selectRideFile(context->athlete->rideCache->rides()[i - 1]->fileName);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// otherwise just the latest
|
||||
if (context->currentRideItem() == NULL && context->athlete->rideCache->rides().count() != 0) {
|
||||
context->athlete->selectRideFile(context->athlete->rideCache->rides().last()->fileName);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
AnalysisView::notifyViewSidebarChanged() {
|
||||
|
||||
|
||||
@@ -49,7 +49,6 @@ class AnalysisView : public AbstractView
|
||||
|
||||
protected:
|
||||
|
||||
void notifyViewStateRestored() override;
|
||||
void notifyViewSidebarChanged() override;
|
||||
void setViewSpecificPerspective() override;
|
||||
void notifyViewSplitterMoved() override;
|
||||
|
||||
Reference in New Issue
Block a user