From 599965f0bda08a9403a7ce70c7c90ebd77121ef1 Mon Sep 17 00:00:00 2001 From: CommanderRedYT Date: Sun, 19 Dec 2021 02:12:34 +0100 Subject: [PATCH] Added delete function --- main/displays/menus/greenpassmenu.cpp | 20 +++++++++++++++++++- main/displays/menus/greenpassmenu.h | 3 +-- main/texts.cpp | 1 + main/texts.h | 1 + 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/main/displays/menus/greenpassmenu.cpp b/main/displays/menus/greenpassmenu.cpp index 4550eb7..edd8cff 100644 --- a/main/displays/menus/greenpassmenu.cpp +++ b/main/displays/menus/greenpassmenu.cpp @@ -8,15 +8,21 @@ #include "actions/switchscreenaction.h" #include "actions/qraction.h" #include "actions/dummyaction.h" +#include "actions/toggleboolaction.h" #include "displays/menus/mainmenu.h" #include "displays/qrdisplay.h" #include "displays/qrimportdisplay.h" #include "icons/back.h" +#include "checkboxicon.h" #include "qrimport.h" using namespace espgui; namespace { + +bool deleteMode; +struct DeleteModeAccessor : espgui::RefAccessor { bool &getRef() const override { return deleteMode; } }; + class ErrorMenuItem : public espgui::MenuItem { public: @@ -34,7 +40,18 @@ class CertMenuItem : public espgui::MenuItem public: CertMenuItem(qraction::QrMenu qrmenu) : m_qrmenu{qrmenu} {} std::string text() const override { return m_qrmenu.text; } - void triggered() override { switchScreen(m_qrmenu.message, m_qrmenu.ver); } + void triggered() override + { + if (deleteMode) + { + qrimport::delete_qr_code(m_qrmenu.text); + switchScreen(); + } + else + { + switchScreen(m_qrmenu.message, m_qrmenu.ver); + } + } private: qraction::QrMenu m_qrmenu; }; @@ -64,6 +81,7 @@ GreenPassMenu::GreenPassMenu() constructMenuItem>>(nvs_key); } } + constructMenuItem, ToggleBoolAction, CheckboxIcon, DeleteModeAccessor>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } diff --git a/main/displays/menus/greenpassmenu.h b/main/displays/menus/greenpassmenu.h index dad0ca4..b05edf7 100644 --- a/main/displays/menus/greenpassmenu.h +++ b/main/displays/menus/greenpassmenu.h @@ -3,6 +3,7 @@ #include // local includes +#include "accessorinterface.h" #include "menudisplay.h" #include "texts.h" @@ -14,6 +15,4 @@ class GreenPassMenu : public: GreenPassMenu(); void back() override; -private: - bool m_deleteMode; }; diff --git a/main/texts.cpp b/main/texts.cpp index 7cf594b..7e54aee 100644 --- a/main/texts.cpp +++ b/main/texts.cpp @@ -544,6 +544,7 @@ char TEXT_QRCODE_DEBUG[] = "QR Debug"; //GreenPassMenu char TEXT_GREENPASS[] = "Green Pass"; char TEXT_ADDCERT[] = "Add cert"; +char TEXT_DELCERT[] = "Delete cert mode"; //EspNowMenu char TEXT_ESPNOW[] = "ESP-Now"; diff --git a/main/texts.h b/main/texts.h index 20b316c..afa48d6 100644 --- a/main/texts.h +++ b/main/texts.h @@ -544,6 +544,7 @@ extern char TEXT_QRCODE_DEBUG[]; //GreenPassMenu extern char TEXT_GREENPASS[]; extern char TEXT_ADDCERT[]; +extern char TEXT_DELCERT[]; //EspNowMenu extern char TEXT_ESPNOW[];