diff options
author | Lakshman <acrlakshman@gmail.com> | 2014-04-08 00:00:50 -0400 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2014-04-10 09:21:43 -0700 |
commit | 6a8d929876f5a8d0279d2a83248a5d7b59e0ae39 (patch) | |
tree | 97ce70f6851a4e2d756a946607298f6325edf9d3 /qt-ui/profile | |
parent | 20bde81023938a64fd417e75af3b85f19789f9ac (diff) | |
download | subsurface-6a8d929876f5a8d0279d2a83248a5d7b59e0ae39.tar.gz |
Feature to show or hide heart rate graph
Adds new push button "HR" to the button bar on the dive profile to
toggle display of heart rate.
TODO: New icon for the heart rate button is needed.
Fixes #485
Signed-off-by: Lakshman Anumolu <acrlakshman@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui/profile')
-rw-r--r-- | qt-ui/profile/diveprofileitem.cpp | 22 | ||||
-rw-r--r-- | qt-ui/profile/diveprofileitem.h | 5 | ||||
-rw-r--r-- | qt-ui/profile/profilewidget2.cpp | 17 |
3 files changed, 39 insertions, 5 deletions
diff --git a/qt-ui/profile/diveprofileitem.cpp b/qt-ui/profile/diveprofileitem.cpp index 2ffc7ec02..51d6a3f79 100644 --- a/qt-ui/profile/diveprofileitem.cpp +++ b/qt-ui/profile/diveprofileitem.cpp @@ -221,6 +221,7 @@ DiveHeartrateItem::DiveHeartrateItem() pen.setCosmetic(true); pen.setWidth(1); setPen(pen); + visible = true; } void DiveHeartrateItem::modelDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight) @@ -297,6 +298,27 @@ void DiveHeartrateItem::paint(QPainter *painter, const QStyleOptionGraphicsItem painter->drawPolyline(polygon()); } +void DiveHeartrateItem::preferencesChanged() +{ + QSettings s; + s.beginGroup("TecDetails"); + setVisible(s.value(visibilityKey).toBool()); + if (s.value(visibilityKey).toBool()) + visible = true; + else + visible = false; +} + +void DiveHeartrateItem::setVisibilitySettingsKey(const QString &key) +{ + visibilityKey = key; +} + +bool DiveHeartrateItem::isVisible() +{ + return visible == true; +} + DiveTemperatureItem::DiveTemperatureItem() { QPen pen; diff --git a/qt-ui/profile/diveprofileitem.h b/qt-ui/profile/diveprofileitem.h index 480776546..c7fa59841 100644 --- a/qt-ui/profile/diveprofileitem.h +++ b/qt-ui/profile/diveprofileitem.h @@ -100,9 +100,14 @@ public: DiveHeartrateItem(); virtual void modelDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight); virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); + virtual void preferencesChanged(); + void setVisibilitySettingsKey(const QString &setVisibilitySettingsKey); + bool isVisible(); private: void createTextItem(int seconds, int hr); + QString visibilityKey; + bool visible; }; class DiveGasPressureItem : public AbstractProfilePolygonItem { diff --git a/qt-ui/profile/profilewidget2.cpp b/qt-ui/profile/profilewidget2.cpp index 047634e15..95f8f49ee 100644 --- a/qt-ui/profile/profilewidget2.cpp +++ b/qt-ui/profile/profilewidget2.cpp @@ -193,6 +193,8 @@ void ProfileWidget2::setupItemOnScene() setupItem(gasPressureItem, timeAxis, cylinderPressureAxis, dataModel, DivePlotDataModel::TEMPERATURE, DivePlotDataModel::TIME, 1); setupItem(temperatureItem, timeAxis, temperatureAxis, dataModel, DivePlotDataModel::TEMPERATURE, DivePlotDataModel::TIME, 1); setupItem(heartBeatItem, timeAxis, heartBeatAxis, dataModel, DivePlotDataModel::HEARTBEAT, DivePlotDataModel::TIME, 1); + heartBeatItem->setVisibilitySettingsKey("hrgraph"); + heartBeatItem->preferencesChanged(); setupItem(diveProfileItem, timeAxis, profileYAxis, dataModel, DivePlotDataModel::DEPTH, DivePlotDataModel::TIME, 0); #define CREATE_PP_GAS(ITEM, VERTICAL_COLUMN, COLOR, COLOR_ALERT, THRESHOULD_SETTINGS, VISIBILITY_SETTINGS) \ @@ -400,11 +402,15 @@ void ProfileWidget2::plotDives(QList<dive *> dives) temperatureAxis->setMinimum(pInfo.mintemp); temperatureAxis->setMaximum(pInfo.maxtemp); - if (pInfo.maxhr) { - heartBeatAxis->setMinimum(pInfo.minhr); - heartBeatAxis->setMaximum(pInfo.maxhr); - heartBeatAxis->updateTicks(); // this shows the ticks - heartBeatAxis->setVisible(true); + if (heartBeatItem->isVisible()) { + if (pInfo.maxhr) { + heartBeatAxis->setMinimum(pInfo.minhr); + heartBeatAxis->setMaximum(pInfo.maxhr); + heartBeatAxis->updateTicks(); // this shows the ticks + heartBeatAxis->setVisible(true); + } else { + heartBeatAxis->setVisible(false); + } } else { heartBeatAxis->setVisible(false); } @@ -656,6 +662,7 @@ void ProfileWidget2::setProfileState() temperatureAxis->setPos(itemPos.temperature.pos.on); heartBeatAxis->setPos(itemPos.heartBeat.pos.on); heartBeatAxis->setLine(itemPos.heartBeat.expanded); + heartBeatItem->setVisible(s.value("hrgraph").toBool()); meanDepth->setVisible(true); diveComputerText->setVisible(true); |