From 1021fb906647321d8b08e0c9b421516793e3ba87 Mon Sep 17 00:00:00 2001 From: Maria Bialota Date: Thu, 13 Jun 2019 11:28:37 +0200 Subject: [PATCH] Point scan speed in MVP Change-Id: Ifddc5e97471a0c12957e7996e0ad2e1f309e581b --- src/model/PointScanSpeedModel.cpp | 13 ++++++++ src/model/PointScanSpeedModel.hpp | 25 +++++++++++++++ src/presenter/PointScanSpeedPresenter.cpp | 37 ++++++++++++++++++++++ src/presenter/PointScanSpeedPresenter.hpp | 22 +++++++++++++ .../UniversalSwitchSettingsPagePresenter.cpp | 4 ++- src/utils/UniversalSwitchConstants.hpp | 3 ++ 6 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 src/model/PointScanSpeedModel.cpp create mode 100644 src/model/PointScanSpeedModel.hpp create mode 100644 src/presenter/PointScanSpeedPresenter.cpp create mode 100644 src/presenter/PointScanSpeedPresenter.hpp diff --git a/src/model/PointScanSpeedModel.cpp b/src/model/PointScanSpeedModel.cpp new file mode 100644 index 0000000..17da332 --- /dev/null +++ b/src/model/PointScanSpeedModel.cpp @@ -0,0 +1,13 @@ +#include "PointScanSpeedModel.hpp" +#include "Singleton.hpp" + +PointScanSpeedModel::PointScanSpeedModel() +{ + valueHandle_ = Singleton::instance().registerAndGet(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_PT_SPEED, DEFAULT_SCAN_PT_SPEED, [this](auto val) { + this->value_ = val; + }); + + value_.attach([](auto val) { + Singleton::instance().set(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_PT_SPEED, val); + }); +} diff --git a/src/model/PointScanSpeedModel.hpp b/src/model/PointScanSpeedModel.hpp new file mode 100644 index 0000000..adaf1f1 --- /dev/null +++ b/src/model/PointScanSpeedModel.hpp @@ -0,0 +1,25 @@ +#ifndef POINT_SCAN_SPEED_MODEL_HPP_ +#define POINT_SCAN_SPEED_MODEL_HPP_ + +#include "ObservableProperty.hpp" +#include "VConf.hpp" +#include "utils.hpp" +#include "UniversalSwitchConstants.hpp" + +class PointScanSpeedModel +{ + public: + PointScanSpeedModel(); + ObservableProperty value_; + + const utils::Range range_ = {RANGE_MIN_SCAN_SPEED, RANGE_MAX_SCAN_SPEED}; + const double step_ = STEP_SCAN_SPEED; + const double defaultValue_ = DEFAULT_SCAN_PT_SPEED; + const bool editable_ = true; + + private: + VConfInterface::CallbackHandle valueHandle_; + +}; + +#endif diff --git a/src/presenter/PointScanSpeedPresenter.cpp b/src/presenter/PointScanSpeedPresenter.cpp new file mode 100644 index 0000000..006bd46 --- /dev/null +++ b/src/presenter/PointScanSpeedPresenter.cpp @@ -0,0 +1,37 @@ +#include "PointScanSpeedPresenter.hpp" + +PointScanSpeedPresenter::PointScanSpeedPresenter() + : SpinnerPresenter("IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING_PT_SPEED") +{ + value_ = model_.value_.value(); + value_.attach([this](auto val) { + model_.value_ = val; + }); + + +} + +utils::Range PointScanSpeedPresenter::getRange() +{ + return model_.range_; +} + +bool PointScanSpeedPresenter::isEditable() +{ + return model_.editable_; +} + +double PointScanSpeedPresenter::getStep() +{ + return model_.step_; +} + +std::string PointScanSpeedPresenter::getFormat() +{ + return "%d"; +} + +std::string PointScanSpeedPresenter::getLabel() +{ + return "IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_SET_VALUE_DESC_SCAN_SPEED"; +} diff --git a/src/presenter/PointScanSpeedPresenter.hpp b/src/presenter/PointScanSpeedPresenter.hpp new file mode 100644 index 0000000..0c82529 --- /dev/null +++ b/src/presenter/PointScanSpeedPresenter.hpp @@ -0,0 +1,22 @@ +#ifndef POINT_SCAN_SPEED_PRESENTER_HPP_ +#define POINT_SCAN_SPEED_PRESENTER_HPP_ + +#include "PointScanSpeedModel.hpp" +#include "SpinnerPresenter.hpp" + +class PointScanSpeedPresenter : public SpinnerPresenter +{ + public: + PointScanSpeedPresenter(); + + utils::Range getRange(); + bool isEditable(); + double getStep(); + std::string getFormat(); + std::string getLabel(); + + private: + PointScanSpeedModel model_; +}; + +#endif diff --git a/src/presenter/UniversalSwitchSettingsPagePresenter.cpp b/src/presenter/UniversalSwitchSettingsPagePresenter.cpp index 13c3ba9..6f828b1 100644 --- a/src/presenter/UniversalSwitchSettingsPagePresenter.cpp +++ b/src/presenter/UniversalSwitchSettingsPagePresenter.cpp @@ -4,13 +4,14 @@ #include "AutoScanIntervalPresenter.hpp" #include "AutoTapPresenter.hpp" #include "ManageMenuOptionsPagePresenter.hpp" +#include "NumberOfAutoScanLoopsPresenter.hpp" #include "PauseOnFirstPresenter.hpp" +#include "PointScanSpeedPresenter.hpp" #include "SoundPresenter.hpp" #include "TapDurationPresenter.hpp" #include "AutoTapPresenter.hpp" #include "AutoMoveIntervalPresenter.hpp" #include "VoicePresenter.hpp" -#include "NumberOfAutoScanLoopsPresenter.hpp" UniversalSwitchSettingsPagePresenter::UniversalSwitchSettingsPagePresenter() { @@ -107,6 +108,7 @@ void UniversalSwitchSettingsPagePresenter::createScanningGropu() std::to_string(model_.pointScanSpeed_.value()), [this](auto item) { DEBUG("Scan point speed"); + Singleton::instance().push(std::make_unique()); })); item = items.back().get(); model_.pointScanSpeed_.attach([item](auto value) { diff --git a/src/utils/UniversalSwitchConstants.hpp b/src/utils/UniversalSwitchConstants.hpp index 4490c55..7b379a7 100644 --- a/src/utils/UniversalSwitchConstants.hpp +++ b/src/utils/UniversalSwitchConstants.hpp @@ -68,8 +68,11 @@ #define RANGE_MIN_SCANS_NUM 1 #define RANGE_MAX_SCANS_NUM 10 +#define RANGE_MIN_SCAN_SPEED 1 +#define RANGE_MAX_SCAN_SPEED 30 #define STEP_SCANS_NUM 1 +#define STEP_SCAN_SPEED 1 #define BUS "org.tizen.UniversalSwitch" #define PATH "/org/tizen/UniversalSwitch" -- 2.7.4