diff --git a/main/displays/menus/networksettingsmenu.cpp b/main/displays/menus/networksettingsmenu.cpp index e306a46..99c1ede 100644 --- a/main/displays/menus/networksettingsmenu.cpp +++ b/main/displays/menus/networksettingsmenu.cpp @@ -1,24 +1,27 @@ #include "networksettingsmenu.h" // 3rdparty lib includes -#include #include #include -#include -#include #include +#include +#include +#include // local includes -#include "wifistasettingsmenu.h" -#include "wifiapsettingsmenu.h" +#include "displays/qrdisplay.h" +#include "globals.h" #include "settingsmenu.h" #include "texthelpers/networktexthelpers.h" +#include "wifiapsettingsmenu.h" +#include "wifistasettingsmenu.h" using namespace espgui; namespace { constexpr char TEXT_STASETTINGS[] = "STA Settings"; constexpr char TEXT_APSETTINGS[] = "AP Settings"; +constexpr char TEXT_APQRCODE[] = "AP QR Code"; constexpr char TEXT_BACK[] = "Back"; } // namespace @@ -26,6 +29,8 @@ NetworkSettingsMenu::NetworkSettingsMenu() { constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, NetworkAccessPointQRAction>>(); + constructMenuItem>(); constructMenuItem>(); constructMenuItem>(uint8_t{0}); @@ -44,3 +49,9 @@ void NetworkSettingsMenu::back() { switchScreen(); } + +void NetworkAccessPointQRAction::triggered() +{ + std::string qr = fmt::format("WIFI:T:WPA;S:{};P:{};H:;", configs.wifiApName.value, configs.wifiApKey.value); + espgui::switchScreen>(qr); +} diff --git a/main/displays/menus/networksettingsmenu.h b/main/displays/menus/networksettingsmenu.h index dbbf93e..a7c9c4d 100644 --- a/main/displays/menus/networksettingsmenu.h +++ b/main/displays/menus/networksettingsmenu.h @@ -11,3 +11,9 @@ public: std::string text() const override; void back() override; }; + +class NetworkAccessPointQRAction : public virtual espgui::ActionInterface +{ +public: + void triggered() override; +};