Added delete function

This commit is contained in:
CommanderRedYT
2021-12-19 02:12:34 +01:00
parent f6c3e95f9d
commit 599965f0bd
4 changed files with 22 additions and 3 deletions

View File

@ -8,15 +8,21 @@
#include "actions/switchscreenaction.h" #include "actions/switchscreenaction.h"
#include "actions/qraction.h" #include "actions/qraction.h"
#include "actions/dummyaction.h" #include "actions/dummyaction.h"
#include "actions/toggleboolaction.h"
#include "displays/menus/mainmenu.h" #include "displays/menus/mainmenu.h"
#include "displays/qrdisplay.h" #include "displays/qrdisplay.h"
#include "displays/qrimportdisplay.h" #include "displays/qrimportdisplay.h"
#include "icons/back.h" #include "icons/back.h"
#include "checkboxicon.h"
#include "qrimport.h" #include "qrimport.h"
using namespace espgui; using namespace espgui;
namespace { namespace {
bool deleteMode;
struct DeleteModeAccessor : espgui::RefAccessor<bool> { bool &getRef() const override { return deleteMode; } };
class ErrorMenuItem : public espgui::MenuItem class ErrorMenuItem : public espgui::MenuItem
{ {
public: public:
@ -34,7 +40,18 @@ class CertMenuItem : public espgui::MenuItem
public: public:
CertMenuItem(qraction::QrMenu qrmenu) : m_qrmenu{qrmenu} {} CertMenuItem(qraction::QrMenu qrmenu) : m_qrmenu{qrmenu} {}
std::string text() const override { return m_qrmenu.text; } std::string text() const override { return m_qrmenu.text; }
void triggered() override { switchScreen<QrDisplay>(m_qrmenu.message, m_qrmenu.ver); } void triggered() override
{
if (deleteMode)
{
qrimport::delete_qr_code(m_qrmenu.text);
switchScreen<GreenPassMenu>();
}
else
{
switchScreen<QrDisplay>(m_qrmenu.message, m_qrmenu.ver);
}
}
private: private:
qraction::QrMenu m_qrmenu; qraction::QrMenu m_qrmenu;
}; };
@ -64,6 +81,7 @@ GreenPassMenu::GreenPassMenu()
constructMenuItem<makeComponentArgs<MenuItem, SwitchQrImportDisplayAction, StaticText<TEXT_ADDCERT>>>(nvs_key); constructMenuItem<makeComponentArgs<MenuItem, SwitchQrImportDisplayAction, StaticText<TEXT_ADDCERT>>>(nvs_key);
} }
} }
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_DELCERT>, ToggleBoolAction, CheckboxIcon, DeleteModeAccessor>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<MainMenu>, StaticMenuItemIcon<&espgui::icons::back>>>(); constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<MainMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
} }

View File

@ -3,6 +3,7 @@
#include <qrcode.h> #include <qrcode.h>
// local includes // local includes
#include "accessorinterface.h"
#include "menudisplay.h" #include "menudisplay.h"
#include "texts.h" #include "texts.h"
@ -14,6 +15,4 @@ class GreenPassMenu :
public: public:
GreenPassMenu(); GreenPassMenu();
void back() override; void back() override;
private:
bool m_deleteMode;
}; };

View File

@ -544,6 +544,7 @@ char TEXT_QRCODE_DEBUG[] = "QR Debug";
//GreenPassMenu //GreenPassMenu
char TEXT_GREENPASS[] = "Green Pass"; char TEXT_GREENPASS[] = "Green Pass";
char TEXT_ADDCERT[] = "Add cert"; char TEXT_ADDCERT[] = "Add cert";
char TEXT_DELCERT[] = "Delete cert mode";
//EspNowMenu //EspNowMenu
char TEXT_ESPNOW[] = "ESP-Now"; char TEXT_ESPNOW[] = "ESP-Now";

View File

@ -544,6 +544,7 @@ extern char TEXT_QRCODE_DEBUG[];
//GreenPassMenu //GreenPassMenu
extern char TEXT_GREENPASS[]; extern char TEXT_GREENPASS[];
extern char TEXT_ADDCERT[]; extern char TEXT_ADDCERT[];
extern char TEXT_DELCERT[];
//EspNowMenu //EspNowMenu
extern char TEXT_ESPNOW[]; extern char TEXT_ESPNOW[];