ChangeValueDisplays now have ConfirmInterface and ErrorHandlerInterface
This commit is contained in:
@ -3,25 +3,29 @@
|
||||
// local includes
|
||||
#include "actioninterface.h"
|
||||
#include "accessorinterface.h"
|
||||
#include "confirminterface.h"
|
||||
#include "errorhandlerinterface.h"
|
||||
|
||||
namespace espgui {
|
||||
template<typename T>
|
||||
class SetValueAction : public virtual ActionInterface
|
||||
{
|
||||
public:
|
||||
SetValueAction(T value, AccessorInterface<T> &accessorInterface, ActionInterface &actionInterface) :
|
||||
SetValueAction(T value,AccessorInterface<T> &accessorInterface,
|
||||
ConfirmInterface &confirmInterface, ErrorHandlerInterface &errorHandlerInterface) :
|
||||
m_value{value},
|
||||
m_accessorInterface{accessorInterface},
|
||||
m_actionInterface{actionInterface}
|
||||
m_confirmInterface{confirmInterface},
|
||||
m_errorHandlerInterface{errorHandlerInterface}
|
||||
{
|
||||
}
|
||||
|
||||
void triggered() override
|
||||
{
|
||||
// TODO: implement error handling and show popup in case of error
|
||||
m_accessorInterface.setValue(m_value);
|
||||
|
||||
m_actionInterface.triggered();
|
||||
if (auto result = m_accessorInterface.setValue(m_value); result)
|
||||
m_confirmInterface.confirm();
|
||||
else
|
||||
m_errorHandlerInterface.errorOccured(std::move(result).error());
|
||||
}
|
||||
|
||||
T value() const { return m_value; }
|
||||
@ -29,6 +33,7 @@ public:
|
||||
private:
|
||||
const T m_value;
|
||||
AccessorInterface<T> &m_accessorInterface;
|
||||
ActionInterface &m_actionInterface;
|
||||
ConfirmInterface &m_confirmInterface;
|
||||
ErrorHandlerInterface &m_errorHandlerInterface;
|
||||
};
|
||||
} // namespace espgui
|
||||
|
@ -14,8 +14,8 @@ constexpr char TEXT_BACK[] = "Back";
|
||||
|
||||
ChangeValueDisplay<bool>::ChangeValueDisplay()
|
||||
{
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<bool>, StaticText<TEXT_TRUE>>>(true, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<bool>, StaticText<TEXT_FALSE>>>(false, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<bool>, StaticText<TEXT_TRUE>>>(true, *this, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<bool>, StaticText<TEXT_FALSE>>>(false, *this, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, BackProxyAction, StaticText<TEXT_BACK>, StaticMenuItemIcon<&icons::back>>>(*this);
|
||||
}
|
||||
|
||||
|
@ -3,7 +3,8 @@
|
||||
// local includes
|
||||
#include "changevaluedisplay.h"
|
||||
#include "menudisplay.h"
|
||||
#include "actioninterface.h"
|
||||
#include "confirminterface.h"
|
||||
#include "errorhandlerinterface.h"
|
||||
|
||||
namespace espgui {
|
||||
|
||||
@ -11,7 +12,8 @@ template<>
|
||||
class ChangeValueDisplay<bool> :
|
||||
public MenuDisplay,
|
||||
public virtual AccessorInterface<bool>,
|
||||
public virtual ActionInterface
|
||||
public virtual ConfirmInterface,
|
||||
public virtual ErrorHandlerInterface
|
||||
{
|
||||
using Base = MenuDisplay;
|
||||
|
||||
|
@ -23,9 +23,9 @@ constexpr char TEXT_BACK[] = "Back";
|
||||
|
||||
ChangeValueDisplay<espchrono::DayLightSavingMode>::ChangeValueDisplay()
|
||||
{
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<espchrono::DayLightSavingMode>, StaticText<TEXT_NONE>>>(espchrono::DayLightSavingMode::None, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<espchrono::DayLightSavingMode>, StaticText<TEXT_EUROPEANSUMMERTIME>>>(espchrono::DayLightSavingMode::EuropeanSummerTime, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<espchrono::DayLightSavingMode>, StaticText<TEXT_USDAYLIGHTTIME>>>(espchrono::DayLightSavingMode::UsDaylightTime, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<espchrono::DayLightSavingMode>, StaticText<TEXT_NONE>>>(espchrono::DayLightSavingMode::None, *this, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<espchrono::DayLightSavingMode>, StaticText<TEXT_EUROPEANSUMMERTIME>>>(espchrono::DayLightSavingMode::EuropeanSummerTime, *this, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<espchrono::DayLightSavingMode>, StaticText<TEXT_USDAYLIGHTTIME>>>(espchrono::DayLightSavingMode::UsDaylightTime, *this, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, BackProxyAction, StaticText<TEXT_BACK>, StaticMenuItemIcon<&icons::back>>>(*this);
|
||||
}
|
||||
|
||||
|
@ -6,7 +6,8 @@
|
||||
// local includes
|
||||
#include "changevaluedisplay.h"
|
||||
#include "menudisplay.h"
|
||||
#include "actioninterface.h"
|
||||
#include "confirminterface.h"
|
||||
#include "errorhandlerinterface.h"
|
||||
|
||||
namespace espgui {
|
||||
|
||||
@ -14,7 +15,8 @@ template<>
|
||||
class ChangeValueDisplay<espchrono::DayLightSavingMode> :
|
||||
public MenuDisplay,
|
||||
public virtual AccessorInterface<espchrono::DayLightSavingMode>,
|
||||
public virtual ActionInterface
|
||||
public virtual ConfirmInterface,
|
||||
public virtual ErrorHandlerInterface
|
||||
{
|
||||
using Base = MenuDisplay;
|
||||
|
||||
|
@ -22,8 +22,8 @@ constexpr char TEXT_BACK[] = "Back";
|
||||
|
||||
ChangeValueDisplay<sntp_sync_mode_t>::ChangeValueDisplay()
|
||||
{
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<sntp_sync_mode_t>, StaticText<TEXT_IMMED>>>(SNTP_SYNC_MODE_IMMED, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<sntp_sync_mode_t>, StaticText<TEXT_SMOOTH>>>(SNTP_SYNC_MODE_SMOOTH, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<sntp_sync_mode_t>, StaticText<TEXT_IMMED>>>(SNTP_SYNC_MODE_IMMED, *this, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<sntp_sync_mode_t>, StaticText<TEXT_SMOOTH>>>(SNTP_SYNC_MODE_SMOOTH, *this, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, BackProxyAction, StaticText<TEXT_BACK>, StaticMenuItemIcon<&icons::back>>>(*this);
|
||||
}
|
||||
|
||||
|
@ -6,7 +6,8 @@
|
||||
// local includes
|
||||
#include "changevaluedisplay.h"
|
||||
#include "menudisplay.h"
|
||||
#include "actioninterface.h"
|
||||
#include "confirminterface.h"
|
||||
#include "errorhandlerinterface.h"
|
||||
|
||||
namespace espgui {
|
||||
|
||||
@ -14,7 +15,8 @@ template<>
|
||||
class ChangeValueDisplay<sntp_sync_mode_t> :
|
||||
public MenuDisplay,
|
||||
public virtual AccessorInterface<sntp_sync_mode_t>,
|
||||
public virtual ActionInterface
|
||||
public virtual ConfirmInterface,
|
||||
public virtual ErrorHandlerInterface
|
||||
{
|
||||
using Base = MenuDisplay;
|
||||
|
||||
|
@ -29,15 +29,15 @@ constexpr char TEXT_BACK[] = "BACK";
|
||||
|
||||
ChangeValueDisplay<wifi_auth_mode_t>::ChangeValueDisplay()
|
||||
{
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<wifi_auth_mode_t>, StaticText<TEXT_OPEN>>>(WIFI_AUTH_OPEN, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<wifi_auth_mode_t>, StaticText<TEXT_WEP>>>(WIFI_AUTH_WEP, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<wifi_auth_mode_t>, StaticText<TEXT_WPA_PSK>>>(WIFI_AUTH_WPA_PSK, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<wifi_auth_mode_t>, StaticText<TEXT_WPA2_PSK>>>(WIFI_AUTH_WPA2_PSK, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<wifi_auth_mode_t>, StaticText<TEXT_WPA_WPA2_PSK>>>(WIFI_AUTH_WPA_WPA2_PSK, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<wifi_auth_mode_t>, StaticText<TEXT_WPA2_ENTERPRISE>>>(WIFI_AUTH_WPA2_ENTERPRISE, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<wifi_auth_mode_t>, StaticText<TEXT_WPA3_PSK>>>(WIFI_AUTH_WPA3_PSK, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<wifi_auth_mode_t>, StaticText<TEXT_WPA2_WPA3_PSK>>>(WIFI_AUTH_WPA2_WPA3_PSK, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<wifi_auth_mode_t>, StaticText<TEXT_WAPI_PSK>>>(WIFI_AUTH_WAPI_PSK, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<wifi_auth_mode_t>, StaticText<TEXT_OPEN>>>(WIFI_AUTH_OPEN, *this, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<wifi_auth_mode_t>, StaticText<TEXT_WEP>>>(WIFI_AUTH_WEP, *this, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<wifi_auth_mode_t>, StaticText<TEXT_WPA_PSK>>>(WIFI_AUTH_WPA_PSK, *this, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<wifi_auth_mode_t>, StaticText<TEXT_WPA2_PSK>>>(WIFI_AUTH_WPA2_PSK, *this, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<wifi_auth_mode_t>, StaticText<TEXT_WPA_WPA2_PSK>>>(WIFI_AUTH_WPA_WPA2_PSK, *this, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<wifi_auth_mode_t>, StaticText<TEXT_WPA2_ENTERPRISE>>>(WIFI_AUTH_WPA2_ENTERPRISE, *this, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<wifi_auth_mode_t>, StaticText<TEXT_WPA3_PSK>>>(WIFI_AUTH_WPA3_PSK, *this, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<wifi_auth_mode_t>, StaticText<TEXT_WPA2_WPA3_PSK>>>(WIFI_AUTH_WPA2_WPA3_PSK, *this, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<wifi_auth_mode_t>, StaticText<TEXT_WAPI_PSK>>>(WIFI_AUTH_WAPI_PSK, *this, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, BackProxyAction, StaticText<TEXT_BACK>, StaticMenuItemIcon<&espgui::icons::back>>>(*this);
|
||||
}
|
||||
|
||||
|
@ -6,7 +6,8 @@
|
||||
// local includes
|
||||
#include "changevaluedisplay.h"
|
||||
#include "menudisplay.h"
|
||||
#include "actioninterface.h"
|
||||
#include "confirminterface.h"
|
||||
#include "errorhandlerinterface.h"
|
||||
|
||||
namespace espgui {
|
||||
|
||||
@ -14,7 +15,8 @@ template<>
|
||||
class ChangeValueDisplay<wifi_auth_mode_t> :
|
||||
public MenuDisplay,
|
||||
public virtual AccessorInterface<wifi_auth_mode_t>,
|
||||
public virtual ActionInterface
|
||||
public virtual ConfirmInterface,
|
||||
public virtual ErrorHandlerInterface
|
||||
{
|
||||
using Base = MenuDisplay;
|
||||
|
||||
|
@ -24,10 +24,10 @@ constexpr char TEXT_BACK[] = "BACK";
|
||||
|
||||
ChangeValueDisplay<wifi_mode_t>::ChangeValueDisplay()
|
||||
{
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<wifi_mode_t>, StaticText<TEXT_NULL>>>(WIFI_MODE_NULL, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<wifi_mode_t>, StaticText<TEXT_STA>>>(WIFI_MODE_STA, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<wifi_mode_t>, StaticText<TEXT_AP>>>(WIFI_MODE_AP, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<wifi_mode_t>, StaticText<TEXT_APSTA>>>(WIFI_MODE_APSTA, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<wifi_mode_t>, StaticText<TEXT_NULL>>>(WIFI_MODE_NULL, *this, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<wifi_mode_t>, StaticText<TEXT_STA>>>(WIFI_MODE_STA, *this, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<wifi_mode_t>, StaticText<TEXT_AP>>>(WIFI_MODE_AP, *this, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<wifi_mode_t>, StaticText<TEXT_APSTA>>>(WIFI_MODE_APSTA, *this, *this, *this);
|
||||
constructMenuItem<makeComponentArgs<MenuItem, BackProxyAction, StaticText<TEXT_BACK>, StaticMenuItemIcon<&espgui::icons::back>>>(*this);
|
||||
}
|
||||
|
||||
|
@ -6,7 +6,8 @@
|
||||
// local includes
|
||||
#include "changevaluedisplay.h"
|
||||
#include "menudisplay.h"
|
||||
#include "actioninterface.h"
|
||||
#include "confirminterface.h"
|
||||
#include "errorhandlerinterface.h"
|
||||
|
||||
namespace espgui {
|
||||
|
||||
@ -14,7 +15,8 @@ template<>
|
||||
class ChangeValueDisplay<wifi_mode_t> :
|
||||
public MenuDisplay,
|
||||
public virtual AccessorInterface<wifi_mode_t>,
|
||||
public virtual ActionInterface
|
||||
public virtual ConfirmInterface,
|
||||
public virtual ErrorHandlerInterface
|
||||
{
|
||||
using Base = MenuDisplay;
|
||||
|
||||
|
Reference in New Issue
Block a user