ChangeValueDisplays now have ConfirmInterface and ErrorHandlerInterface
This commit is contained in:
@@ -3,25 +3,29 @@
|
|||||||
// local includes
|
// local includes
|
||||||
#include "actioninterface.h"
|
#include "actioninterface.h"
|
||||||
#include "accessorinterface.h"
|
#include "accessorinterface.h"
|
||||||
|
#include "confirminterface.h"
|
||||||
|
#include "errorhandlerinterface.h"
|
||||||
|
|
||||||
namespace espgui {
|
namespace espgui {
|
||||||
template<typename T>
|
template<typename T>
|
||||||
class SetValueAction : public virtual ActionInterface
|
class SetValueAction : public virtual ActionInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
SetValueAction(T value, AccessorInterface<T> &accessorInterface, ActionInterface &actionInterface) :
|
SetValueAction(T value,AccessorInterface<T> &accessorInterface,
|
||||||
|
ConfirmInterface &confirmInterface, ErrorHandlerInterface &errorHandlerInterface) :
|
||||||
m_value{value},
|
m_value{value},
|
||||||
m_accessorInterface{accessorInterface},
|
m_accessorInterface{accessorInterface},
|
||||||
m_actionInterface{actionInterface}
|
m_confirmInterface{confirmInterface},
|
||||||
|
m_errorHandlerInterface{errorHandlerInterface}
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void triggered() override
|
void triggered() override
|
||||||
{
|
{
|
||||||
// TODO: implement error handling and show popup in case of error
|
if (auto result = m_accessorInterface.setValue(m_value); result)
|
||||||
m_accessorInterface.setValue(m_value);
|
m_confirmInterface.confirm();
|
||||||
|
else
|
||||||
m_actionInterface.triggered();
|
m_errorHandlerInterface.errorOccured(std::move(result).error());
|
||||||
}
|
}
|
||||||
|
|
||||||
T value() const { return m_value; }
|
T value() const { return m_value; }
|
||||||
@@ -29,6 +33,7 @@ public:
|
|||||||
private:
|
private:
|
||||||
const T m_value;
|
const T m_value;
|
||||||
AccessorInterface<T> &m_accessorInterface;
|
AccessorInterface<T> &m_accessorInterface;
|
||||||
ActionInterface &m_actionInterface;
|
ConfirmInterface &m_confirmInterface;
|
||||||
|
ErrorHandlerInterface &m_errorHandlerInterface;
|
||||||
};
|
};
|
||||||
} // namespace espgui
|
} // namespace espgui
|
||||||
|
@@ -14,8 +14,8 @@ constexpr char TEXT_BACK[] = "Back";
|
|||||||
|
|
||||||
ChangeValueDisplay<bool>::ChangeValueDisplay()
|
ChangeValueDisplay<bool>::ChangeValueDisplay()
|
||||||
{
|
{
|
||||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<bool>, StaticText<TEXT_TRUE>>>(true, *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);
|
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<bool>, StaticText<TEXT_FALSE>>>(false, *this, *this, *this);
|
||||||
constructMenuItem<makeComponentArgs<MenuItem, BackProxyAction, StaticText<TEXT_BACK>, StaticMenuItemIcon<&icons::back>>>(*this);
|
constructMenuItem<makeComponentArgs<MenuItem, BackProxyAction, StaticText<TEXT_BACK>, StaticMenuItemIcon<&icons::back>>>(*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -3,7 +3,8 @@
|
|||||||
// local includes
|
// local includes
|
||||||
#include "changevaluedisplay.h"
|
#include "changevaluedisplay.h"
|
||||||
#include "menudisplay.h"
|
#include "menudisplay.h"
|
||||||
#include "actioninterface.h"
|
#include "confirminterface.h"
|
||||||
|
#include "errorhandlerinterface.h"
|
||||||
|
|
||||||
namespace espgui {
|
namespace espgui {
|
||||||
|
|
||||||
@@ -11,7 +12,8 @@ template<>
|
|||||||
class ChangeValueDisplay<bool> :
|
class ChangeValueDisplay<bool> :
|
||||||
public MenuDisplay,
|
public MenuDisplay,
|
||||||
public virtual AccessorInterface<bool>,
|
public virtual AccessorInterface<bool>,
|
||||||
public virtual ActionInterface
|
public virtual ConfirmInterface,
|
||||||
|
public virtual ErrorHandlerInterface
|
||||||
{
|
{
|
||||||
using Base = MenuDisplay;
|
using Base = MenuDisplay;
|
||||||
|
|
||||||
|
@@ -23,9 +23,9 @@ constexpr char TEXT_BACK[] = "Back";
|
|||||||
|
|
||||||
ChangeValueDisplay<espchrono::DayLightSavingMode>::ChangeValueDisplay()
|
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_NONE>>>(espchrono::DayLightSavingMode::None, *this, *this, *this);
|
||||||
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<espchrono::DayLightSavingMode>, StaticText<TEXT_EUROPEANSUMMERTIME>>>(espchrono::DayLightSavingMode::EuropeanSummerTime, *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);
|
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);
|
constructMenuItem<makeComponentArgs<MenuItem, BackProxyAction, StaticText<TEXT_BACK>, StaticMenuItemIcon<&icons::back>>>(*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -6,7 +6,8 @@
|
|||||||
// local includes
|
// local includes
|
||||||
#include "changevaluedisplay.h"
|
#include "changevaluedisplay.h"
|
||||||
#include "menudisplay.h"
|
#include "menudisplay.h"
|
||||||
#include "actioninterface.h"
|
#include "confirminterface.h"
|
||||||
|
#include "errorhandlerinterface.h"
|
||||||
|
|
||||||
namespace espgui {
|
namespace espgui {
|
||||||
|
|
||||||
@@ -14,7 +15,8 @@ template<>
|
|||||||
class ChangeValueDisplay<espchrono::DayLightSavingMode> :
|
class ChangeValueDisplay<espchrono::DayLightSavingMode> :
|
||||||
public MenuDisplay,
|
public MenuDisplay,
|
||||||
public virtual AccessorInterface<espchrono::DayLightSavingMode>,
|
public virtual AccessorInterface<espchrono::DayLightSavingMode>,
|
||||||
public virtual ActionInterface
|
public virtual ConfirmInterface,
|
||||||
|
public virtual ErrorHandlerInterface
|
||||||
{
|
{
|
||||||
using Base = MenuDisplay;
|
using Base = MenuDisplay;
|
||||||
|
|
||||||
|
@@ -22,8 +22,8 @@ constexpr char TEXT_BACK[] = "Back";
|
|||||||
|
|
||||||
ChangeValueDisplay<sntp_sync_mode_t>::ChangeValueDisplay()
|
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_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);
|
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);
|
constructMenuItem<makeComponentArgs<MenuItem, BackProxyAction, StaticText<TEXT_BACK>, StaticMenuItemIcon<&icons::back>>>(*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -6,7 +6,8 @@
|
|||||||
// local includes
|
// local includes
|
||||||
#include "changevaluedisplay.h"
|
#include "changevaluedisplay.h"
|
||||||
#include "menudisplay.h"
|
#include "menudisplay.h"
|
||||||
#include "actioninterface.h"
|
#include "confirminterface.h"
|
||||||
|
#include "errorhandlerinterface.h"
|
||||||
|
|
||||||
namespace espgui {
|
namespace espgui {
|
||||||
|
|
||||||
@@ -14,7 +15,8 @@ template<>
|
|||||||
class ChangeValueDisplay<sntp_sync_mode_t> :
|
class ChangeValueDisplay<sntp_sync_mode_t> :
|
||||||
public MenuDisplay,
|
public MenuDisplay,
|
||||||
public virtual AccessorInterface<sntp_sync_mode_t>,
|
public virtual AccessorInterface<sntp_sync_mode_t>,
|
||||||
public virtual ActionInterface
|
public virtual ConfirmInterface,
|
||||||
|
public virtual ErrorHandlerInterface
|
||||||
{
|
{
|
||||||
using Base = MenuDisplay;
|
using Base = MenuDisplay;
|
||||||
|
|
||||||
|
@@ -29,15 +29,15 @@ constexpr char TEXT_BACK[] = "BACK";
|
|||||||
|
|
||||||
ChangeValueDisplay<wifi_auth_mode_t>::ChangeValueDisplay()
|
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_OPEN>>>(WIFI_AUTH_OPEN, *this, *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_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);
|
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);
|
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);
|
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);
|
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);
|
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);
|
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);
|
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);
|
constructMenuItem<makeComponentArgs<MenuItem, BackProxyAction, StaticText<TEXT_BACK>, StaticMenuItemIcon<&espgui::icons::back>>>(*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -6,7 +6,8 @@
|
|||||||
// local includes
|
// local includes
|
||||||
#include "changevaluedisplay.h"
|
#include "changevaluedisplay.h"
|
||||||
#include "menudisplay.h"
|
#include "menudisplay.h"
|
||||||
#include "actioninterface.h"
|
#include "confirminterface.h"
|
||||||
|
#include "errorhandlerinterface.h"
|
||||||
|
|
||||||
namespace espgui {
|
namespace espgui {
|
||||||
|
|
||||||
@@ -14,7 +15,8 @@ template<>
|
|||||||
class ChangeValueDisplay<wifi_auth_mode_t> :
|
class ChangeValueDisplay<wifi_auth_mode_t> :
|
||||||
public MenuDisplay,
|
public MenuDisplay,
|
||||||
public virtual AccessorInterface<wifi_auth_mode_t>,
|
public virtual AccessorInterface<wifi_auth_mode_t>,
|
||||||
public virtual ActionInterface
|
public virtual ConfirmInterface,
|
||||||
|
public virtual ErrorHandlerInterface
|
||||||
{
|
{
|
||||||
using Base = MenuDisplay;
|
using Base = MenuDisplay;
|
||||||
|
|
||||||
|
@@ -24,10 +24,10 @@ constexpr char TEXT_BACK[] = "BACK";
|
|||||||
|
|
||||||
ChangeValueDisplay<wifi_mode_t>::ChangeValueDisplay()
|
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_NULL>>>(WIFI_MODE_NULL, *this, *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_STA>>>(WIFI_MODE_STA, *this, *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_AP>>>(WIFI_MODE_AP, *this, *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_APSTA>>>(WIFI_MODE_APSTA, *this, *this, *this);
|
||||||
constructMenuItem<makeComponentArgs<MenuItem, BackProxyAction, StaticText<TEXT_BACK>, StaticMenuItemIcon<&espgui::icons::back>>>(*this);
|
constructMenuItem<makeComponentArgs<MenuItem, BackProxyAction, StaticText<TEXT_BACK>, StaticMenuItemIcon<&espgui::icons::back>>>(*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -6,7 +6,8 @@
|
|||||||
// local includes
|
// local includes
|
||||||
#include "changevaluedisplay.h"
|
#include "changevaluedisplay.h"
|
||||||
#include "menudisplay.h"
|
#include "menudisplay.h"
|
||||||
#include "actioninterface.h"
|
#include "confirminterface.h"
|
||||||
|
#include "errorhandlerinterface.h"
|
||||||
|
|
||||||
namespace espgui {
|
namespace espgui {
|
||||||
|
|
||||||
@@ -14,7 +15,8 @@ template<>
|
|||||||
class ChangeValueDisplay<wifi_mode_t> :
|
class ChangeValueDisplay<wifi_mode_t> :
|
||||||
public MenuDisplay,
|
public MenuDisplay,
|
||||||
public virtual AccessorInterface<wifi_mode_t>,
|
public virtual AccessorInterface<wifi_mode_t>,
|
||||||
public virtual ActionInterface
|
public virtual ConfirmInterface,
|
||||||
|
public virtual ErrorHandlerInterface
|
||||||
{
|
{
|
||||||
using Base = MenuDisplay;
|
using Base = MenuDisplay;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user