From 5e3a35bfa2fe36440e8473842501481a5f710d21 2017-07-27 14:39:40 From: Alexandre Leroux Date: 2017-07-27 14:39:40 Subject: [PATCH] Settings binding (5) Retrieves the tolerance values in the settings --- diff --git a/gui/src/Visualization/VisualizationGraphWidget.cpp b/gui/src/Visualization/VisualizationGraphWidget.cpp index 1cf0265..34c1ebc 100644 --- a/gui/src/Visualization/VisualizationGraphWidget.cpp +++ b/gui/src/Visualization/VisualizationGraphWidget.cpp @@ -5,6 +5,7 @@ #include #include +#include #include #include #include @@ -21,6 +22,13 @@ const auto HORIZONTAL_ZOOM_MODIFIER = Qt::NoModifier; /// Key pressed to enable zoom on vertical axis const auto VERTICAL_ZOOM_MODIFIER = Qt::ControlModifier; +/// Gets a tolerance value from application settings. If the setting can't be found, the default +/// value passed in parameter is returned +double toleranceValue(const QString &key, double defaultValue) noexcept +{ + return QSettings{}.value(key, defaultValue).toDouble(); +} + } // namespace struct VisualizationGraphWidget::VisualizationGraphWidgetPrivate { @@ -106,8 +114,10 @@ void VisualizationGraphWidget::addVariableUsingGraph(std::shared_ptr v auto variableDateTimeWithTolerance = dateTime; - // add 20% tolerance for each side - auto tolerance = 0.2 * (dateTime.m_TEnd - dateTime.m_TStart); + // add tolerance for each side + auto toleranceFactor + = toleranceValue(GENERAL_TOLERANCE_AT_INIT_KEY, GENERAL_TOLERANCE_AT_INIT_DEFAULT_VALUE); + auto tolerance = toleranceFactor * (dateTime.m_TEnd - dateTime.m_TStart); variableDateTimeWithTolerance.m_TStart -= tolerance; variableDateTimeWithTolerance.m_TEnd += tolerance; @@ -220,8 +230,8 @@ void VisualizationGraphWidget::onGraphMenuRequested(const QPoint &pos) noexcept void VisualizationGraphWidget::onRangeChanged(const QCPRange &t1, const QCPRange &t2) { - qCInfo(LOG_VisualizationGraphWidget()) << tr("VisualizationGraphWidget::onRangeChanged") - << QThread::currentThread()->objectName(); + qCInfo(LOG_VisualizationGraphWidget()) + << tr("VisualizationGraphWidget::onRangeChanged") << QThread::currentThread()->objectName(); auto dateTimeRange = SqpDateTime{t1.lower, t1.upper}; @@ -232,7 +242,8 @@ void VisualizationGraphWidget::onRangeChanged(const QCPRange &t1, const QCPRange auto variable = it->first; auto currentDateTime = dateTimeRange; - auto toleranceFactor = 0.2; + auto toleranceFactor = toleranceValue(GENERAL_TOLERANCE_AT_UPDATE_KEY, + GENERAL_TOLERANCE_AT_UPDATE_DEFAULT_VALUE); auto tolerance = toleranceFactor * (currentDateTime.m_TEnd - currentDateTime.m_TStart); auto variableDateTimeWithTolerance = currentDateTime; variableDateTimeWithTolerance.m_TStart -= tolerance;