From 34e06f7cf5b856b9c180e690ca1baf61010cbc84 Mon Sep 17 00:00:00 2001 From: Lukasz Wlazly Date: Mon, 24 Jun 2019 11:23:05 +0200 Subject: [PATCH] Fix synchronization between list item and dependent menu Change-Id: I84d79fc0129f65ac6de022de6908b78974fd1dc9 --- .../UniversalSwitchSettingsPagePresenter.cpp | 24 ++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/presenter/UniversalSwitchSettingsPagePresenter.cpp b/src/presenter/UniversalSwitchSettingsPagePresenter.cpp index 491a79e..af32d40 100644 --- a/src/presenter/UniversalSwitchSettingsPagePresenter.cpp +++ b/src/presenter/UniversalSwitchSettingsPagePresenter.cpp @@ -136,7 +136,8 @@ void UniversalSwitchSettingsPagePresenter::createAdditionalSettingsGroup() pauseOnFirstModel_.value_.value())); auto item = items.back().get(); auto pauseOnFirstCb = [this, item](auto value) { - if (pauseOnFirstModel_.value_.value()) + item->widgetState_ = pauseOnFirstModel_.state_.value(); + if (pauseOnFirstModel_.state_.value()) item->description_ = TranslatedString::create("IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_SECONDS", pauseOnFirstModel_.value_.value()).str(); else item->description_ = "IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_OFF"; @@ -161,6 +162,7 @@ void UniversalSwitchSettingsPagePresenter::createAdditionalSettingsGroup() tapDurationModel_.state_.value())); item = items.back().get(); auto tapDurationCb = [this, item](auto value) { + item->widgetState_ = tapDurationModel_.state_.value(); if (tapDurationModel_.state_.value()) item->description_ = TranslatedString::create("IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_SECONDS", tapDurationModel_.value_.value()).str(); else @@ -185,6 +187,7 @@ void UniversalSwitchSettingsPagePresenter::createAdditionalSettingsGroup() singleInteractionIntervalModel_.state_.value())); item = items.back().get(); auto snglIntCb = [this, item](auto value) { + item->widgetState_ = singleInteractionIntervalModel_.state_.value(); if (singleInteractionIntervalModel_.state_.value()) item->description_ = TranslatedString::create("IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_SECONDS", singleInteractionIntervalModel_.value_.value()).str(); else @@ -210,6 +213,7 @@ void UniversalSwitchSettingsPagePresenter::createAdditionalSettingsGroup() autoTapModel_.state_.value())); item = items.back().get(); auto autoTapCb = [this, item](auto value) { + item->widgetState_ = autoTapModel_.state_.value(); if (autoTapModel_.state_.value()) item->description_ = TranslatedString::create("IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_SECONDS", autoTapModel_.value_.value()).str(); else @@ -235,6 +239,7 @@ void UniversalSwitchSettingsPagePresenter::createAdditionalSettingsGroup() autoMoveIntervalModel_.state_.value())); item = items.back().get(); auto autoMoveCb = [this, item](auto value) { + item->widgetState_ = autoMoveIntervalModel_.state_.value(); if (autoMoveIntervalModel_.state_.value()) item->description_ = TranslatedString::create("IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_SECONDS", autoMoveIntervalModel_.value_.value()).str(); else @@ -294,6 +299,9 @@ void UniversalSwitchSettingsPagePresenter::createFeedbackGroup() item->widgetState_ = value; item->description_ = value ? utils::doubleToPercent(soundModel_.value_.value()) + " of media volume" : "IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_OFF"; }); + soundModel_.value_.attach([item, this](auto value) { + item->description_ = soundModel_.state_.value() ? utils::doubleToPercent(soundModel_.value_.value()) + " of media volume" : "IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_OFF"; + }); auto speechRate = "Speech rate: " + utils::doubleToString(voiceModel_.rate_.value(), 1); auto mediaVolume = "Speech volume: " + utils::doubleToPercent(voiceModel_.volume_.value()) + " of media volume"; @@ -316,7 +324,19 @@ void UniversalSwitchSettingsPagePresenter::createFeedbackGroup() item = items.back().get(); voiceModel_.state_.attach([item, this](auto value) { item->widgetState_ = value; - auto speechRate = "Speech rate: " + utils::doubleToString(voiceModel_.rate_.value(), 1); + auto speechRate = "Speech rate: " + utils::doubleToPercent(voiceModel_.rate_.value()); + auto mediaVolume = "Speech volume: " + utils::doubleToPercent(voiceModel_.volume_.value()) + " of media volume"; + auto desc = voiceModel_.state_.value() ? speechRate + "
" + mediaVolume : std::string{"IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_OFF"}; + item->description_ = desc; + }); + voiceModel_.rate_.attach([item, this](auto value) { + auto speechRate = "Speech rate: " + utils::doubleToPercent(voiceModel_.rate_.value()); + auto mediaVolume = "Speech volume: " + utils::doubleToPercent(voiceModel_.volume_.value()) + " of media volume"; + auto desc = voiceModel_.state_.value() ? speechRate + "
" + mediaVolume : std::string{"IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_OFF"}; + item->description_ = desc; + }); + voiceModel_.volume_.attach([item, this](auto value) { + auto speechRate = "Speech rate: " + utils::doubleToPercent(voiceModel_.rate_.value()); auto mediaVolume = "Speech volume: " + utils::doubleToPercent(voiceModel_.volume_.value()) + " of media volume"; auto desc = voiceModel_.state_.value() ? speechRate + "
" + mediaVolume : std::string{"IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_OFF"}; item->description_ = desc; -- 2.7.4