diff --git a/src/TrainTool.cpp b/src/TrainTool.cpp index 853012b97..13d661038 100644 --- a/src/TrainTool.cpp +++ b/src/TrainTool.cpp @@ -151,6 +151,16 @@ TrainTool::TrainTool(MainWindow *parent, const QDir &home) : GcWindow(parent), h forward->setStyleSheet("background-color: rgba( 255, 255, 255, 0% ); border: 0px;"); toolbuttons->addWidget(forward); + QIcon lapIcon(":images/oxygen/lap.png"); + QPushButton *lap = new QPushButton(lapIcon, "", this); + lap->setFocusPolicy(Qt::NoFocus); + lap->setIconSize(QSize(20,20)); + lap->setAutoFillBackground(false); + lap->setAutoDefault(false); + lap->setFlat(true); + lap->setStyleSheet("background-color: rgba( 255, 255, 255, 0% ); border: 0px;"); + toolbuttons->addWidget(lap); + intensitySlider = new QSlider(Qt::Horizontal, this); intensitySlider->setAutoFillBackground(false); intensitySlider->setFocusPolicy(Qt::NoFocus); @@ -191,6 +201,7 @@ TrainTool::TrainTool(MainWindow *parent, const QDir &home) : GcWindow(parent), h connect(stop, SIGNAL(clicked()), this, SLOT(Stop())); connect(forward, SIGNAL(clicked()), this, SLOT(FFwd())); connect(rewind, SIGNAL(clicked()), this, SLOT(Rewind())); + connect(lap, SIGNAL(clicked()), this, SLOT(newLap())); connect(intensitySlider, SIGNAL(valueChanged(int)), this, SLOT(adjustIntensity())); // not used but kept in case re-instated in the future @@ -887,17 +898,21 @@ void TrainTool::guiUpdate() // refreshes the telemetry // can be called from the controller - when user presses "Lap" button void TrainTool::newLap() { - displayLap++; + if (deviceController == NULL) return; - pwrcount = 0; - cadcount = 0; - hrcount = 0; - spdcount = 0; + if ((status&RT_RUNNING) == RT_RUNNING) { + displayLap++; - lap_time.restart(); - lap_elapsed_msec = 0; + pwrcount = 0; + cadcount = 0; + hrcount = 0; + spdcount = 0; - main->notifyNewLap(); + lap_time.restart(); + lap_elapsed_msec = 0; + + main->notifyNewLap(); + } } // can be called from the controller diff --git a/src/TrainTool.h b/src/TrainTool.h index 34002feb1..cca9d8daf 100644 --- a/src/TrainTool.h +++ b/src/TrainTool.h @@ -97,7 +97,6 @@ class TrainTool : public GcWindow // was realtimewindow,merged into tool // update charts/dials and manage controller void updateData(RealtimeData &); // to update telemetry by push devices - void newLap(); // start new Lap! void nextDisplayMode(); // show next display mode void setDeviceController(); // based upon selected device void setStreamController(); // based upon selected device @@ -135,6 +134,7 @@ class TrainTool : public GcWindow void FFwdLap(); // jump forward to next Lap marker void Higher(); // set load/gradient higher void Lower(); // set load/gradient higher + void newLap(); // start new Lap! // Timed actions void guiUpdate(); // refreshes the telemetry diff --git a/src/application.qrc b/src/application.qrc index 67030c362..4e227e4c6 100644 --- a/src/application.qrc +++ b/src/application.qrc @@ -74,6 +74,7 @@ images/oxygen/stop.png images/oxygen/ffwd.png images/oxygen/rewind.png + images/oxygen/lap.png images/toolbar/close-icon.png images/toolbar/save.png images/toolbar/search.png diff --git a/src/images/oxygen/lap.png b/src/images/oxygen/lap.png new file mode 100644 index 000000000..24478199a Binary files /dev/null and b/src/images/oxygen/lap.png differ