Added git menu
This commit is contained in:
@ -105,6 +105,7 @@ set(headers
|
||||
displays/menus/feedbackdebugmenu.h
|
||||
displays/menus/gametrakmodesettingsmenu.h
|
||||
displays/menus/garagemenu.h
|
||||
displays/menus/gitmenu.h
|
||||
displays/menus/graphsmenu.h
|
||||
displays/menus/greenpassmenu.h
|
||||
displays/menus/handbremssettingsmenu.h
|
||||
@ -179,6 +180,7 @@ set(headers
|
||||
icons/buzzer.h
|
||||
icons/close.h
|
||||
icons/demos.h
|
||||
icons/git.h
|
||||
icons/graph.h
|
||||
icons/greenpass.h
|
||||
icons/hardware.h
|
||||
@ -344,6 +346,7 @@ set(sources
|
||||
displays/menus/feedbackdebugmenu.cpp
|
||||
displays/menus/gametrakmodesettingsmenu.cpp
|
||||
displays/menus/garagemenu.cpp
|
||||
displays/menus/gitmenu.cpp
|
||||
displays/menus/graphsmenu.cpp
|
||||
displays/menus/greenpassmenu.cpp
|
||||
displays/menus/handbremssettingsmenu.cpp
|
||||
@ -418,6 +421,7 @@ set(sources
|
||||
icons/buzzer.cpp
|
||||
icons/close.cpp
|
||||
icons/demos.cpp
|
||||
icons/git.cpp
|
||||
icons/graph.cpp
|
||||
icons/greenpass.cpp
|
||||
icons/hardware.cpp
|
||||
@ -504,6 +508,24 @@ idf_component_register(
|
||||
${dependencies}
|
||||
)
|
||||
|
||||
execute_process(COMMAND git rev-parse HEAD
|
||||
OUTPUT_VARIABLE GIT_REV ERROR_QUIET
|
||||
)
|
||||
execute_process(
|
||||
COMMAND git log -1 --pretty=%B
|
||||
OUTPUT_VARIABLE GIT_MESSAGE ERROR_QUIET
|
||||
)
|
||||
execute_process(
|
||||
COMMAND git rev-parse --abbrev-ref HEAD
|
||||
OUTPUT_VARIABLE GIT_BRANCH
|
||||
)
|
||||
|
||||
string(STRIP "${GIT_REV}" GIT_REV)
|
||||
string(SUBSTRING "${GIT_REV}" 1 7 GIT_SHORT_REV)
|
||||
string(STRIP "${GIT_MESSAGE}" GIT_MESSAGE)
|
||||
string(SUBSTRING "${GIT_MESSAGE}" 0 100 GIT_MESSAGE)
|
||||
string(STRIP "${GIT_BRANCH}" GIT_BRANCH)
|
||||
|
||||
target_compile_options(${COMPONENT_TARGET}
|
||||
PRIVATE
|
||||
-fstack-reuse=all
|
||||
@ -513,5 +535,9 @@ target_compile_options(${COMPONENT_TARGET}
|
||||
-Wno-deprecated-declarations
|
||||
-Wno-missing-field-initializers
|
||||
-Wno-parentheses
|
||||
-DGIT_REV="${GIT_REV}"
|
||||
-DGIT_SHORT_REV="${GIT_SHORT_REV}"
|
||||
-DGIT_MESSAGE="${GIT_MESSAGE}"
|
||||
-DGIT_BRANCH="${GIT_BRANCH}"
|
||||
${BOBBYCAR_BUILDFLAGS}
|
||||
)
|
||||
|
@ -6,9 +6,7 @@
|
||||
#include "actions/popscreenaction.h"
|
||||
#include "icons/back.h"
|
||||
#include "esptexthelpers.h"
|
||||
#include "displays/menus/settingsmenu.h"
|
||||
|
||||
#include <espasyncota.h>
|
||||
#include <esp_ota_ops.h>
|
||||
#include "fmt/core.h"
|
||||
|
||||
|
70
main/displays/menus/gitmenu.cpp
Normal file
70
main/displays/menus/gitmenu.cpp
Normal file
@ -0,0 +1,70 @@
|
||||
#include "gitmenu.h"
|
||||
|
||||
// 3rdparty lib includes
|
||||
#include <actions/dummyaction.h>
|
||||
#include <actions/popscreenaction.h>
|
||||
#include <fmt/core.h>
|
||||
#include <icons/back.h>
|
||||
|
||||
// local includes
|
||||
#include "bobbyerrorhandler.h"
|
||||
#include "displays/qrdisplay.h"
|
||||
#include "icons/info.h"
|
||||
#include "icons/modes.h"
|
||||
|
||||
namespace {
|
||||
constexpr char TEXT_GIT[] = "Git";
|
||||
constexpr char TEXT_GIT_BRANCH_TITLE[] = "Branch";
|
||||
constexpr char TEXT_GIT_BRANCH[] = GIT_BRANCH;
|
||||
constexpr char TEXT_GIT_COMMIT_TITLE[] = "Commit";
|
||||
constexpr char TEXT_GIT_COMMIT[] = GIT_REV;
|
||||
constexpr char TEXT_GIT_COMMIT_SHORT[] = GIT_SHORT_REV;
|
||||
constexpr char TEXT_GIT_MESSAGE_TITLE[] = "Commit Message";
|
||||
constexpr char TEXT_GIT_MESSAGE[] = GIT_MESSAGE;
|
||||
constexpr char TEXT_GITHUB_URL[] = "Github URL";
|
||||
constexpr char TEXT_BACK[] = "Back";
|
||||
|
||||
class OpenPopupAction : public virtual espgui::ActionInterface
|
||||
{
|
||||
public:
|
||||
void triggered() override
|
||||
{
|
||||
BobbyErrorHandler{}.errorOccured(TEXT_GIT_MESSAGE);
|
||||
}
|
||||
};
|
||||
|
||||
class GitQrAction : public virtual espgui::ActionInterface
|
||||
{
|
||||
public:
|
||||
void triggered() override
|
||||
{
|
||||
// ToDo: Fix qr library and remove spaces, also, why is "`" at the end of string in qr code but not when logging?
|
||||
const std::string qr_text = fmt::format("https://github.com/bobbycar-graz/bobbycar-boardcomputer-firmware/commit/{} ", GIT_REV);
|
||||
espgui::pushScreen<QrDisplay>(qr_text);
|
||||
}
|
||||
};
|
||||
} // namespace
|
||||
|
||||
GitMenu::GitMenu()
|
||||
{
|
||||
using namespace espgui;
|
||||
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_GIT_BRANCH_TITLE>, StaticColor<TFT_GREY>, StaticFont<2>, DummyAction>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_GIT_BRANCH>, DummyAction>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_GIT_COMMIT_TITLE>, StaticColor<TFT_GREY>, StaticFont<2>, DummyAction>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_GIT_COMMIT>, DummyAction, StaticFont<2>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_GIT_COMMIT_SHORT>, DummyAction>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_GIT_MESSAGE_TITLE>, OpenPopupAction, StaticMenuItemIcon<&bobbyicons::info>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_GITHUB_URL>, GitQrAction, StaticMenuItemIcon<&bobbyicons::modes>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
|
||||
}
|
||||
|
||||
std::string GitMenu::text() const
|
||||
{
|
||||
return TEXT_GIT;
|
||||
}
|
||||
|
||||
void GitMenu::back()
|
||||
{
|
||||
espgui::popScreen();
|
||||
}
|
14
main/displays/menus/gitmenu.h
Normal file
14
main/displays/menus/gitmenu.h
Normal file
@ -0,0 +1,14 @@
|
||||
#pragma once
|
||||
|
||||
// local includes
|
||||
#include "displays/menudisplaywithtime.h"
|
||||
|
||||
class GitMenu : public bobbygui::MenuDisplayWithTime
|
||||
{
|
||||
public:
|
||||
GitMenu();
|
||||
|
||||
std::string text() const override;
|
||||
|
||||
void back() override;
|
||||
};
|
@ -22,6 +22,7 @@
|
||||
#include "displays/menus/crashmenu.h"
|
||||
#include "displays/menus/espnowmenu.h"
|
||||
#include "displays/menus/featureflagsmenu.h"
|
||||
#include "displays/menus/gitmenu.h"
|
||||
#include "displays/menus/limitssettingsmenu.h"
|
||||
#include "displays/menus/mainmenu.h"
|
||||
#include "displays/menus/modessettingsmenu.h"
|
||||
@ -33,6 +34,7 @@
|
||||
#include "icons/bluetooth.h"
|
||||
#include "icons/buzzer.h"
|
||||
#include "icons/demos.h"
|
||||
#include "icons/git.h"
|
||||
#include "icons/hardware.h"
|
||||
#include "icons/info.h"
|
||||
#include "icons/time.h"
|
||||
@ -64,6 +66,7 @@ constexpr char TEXT_FRONTLED[] = "Front LED";
|
||||
constexpr char TEXT_BACKLED[] = "Back LED";
|
||||
constexpr char TEXT_CRASHMENU[] = "Crash Menu";
|
||||
constexpr char TEXT_ABOUT[] = "About";
|
||||
constexpr char TEXT_GIT[] = "Git";
|
||||
constexpr char TEXT_BACK[] = "Back";
|
||||
|
||||
#ifdef FEATURE_LEDBACKLIGHT
|
||||
@ -126,6 +129,7 @@ SettingsMenu::SettingsMenu()
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACKLED>, BobbyCheckbox, BackLedAccessor>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_CRASHMENU>, PushScreenAction<CrashMenu>, StaticMenuItemIcon<&bobbyicons::demos>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ABOUT>, PushScreenAction<AboutMenu>, StaticMenuItemIcon<&bobbyicons::info>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_GIT>, PushScreenAction<GitMenu>, StaticMenuItemIcon<&bobbyicons::git>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user