Review changes

This commit is contained in:
jpirnay
2026-04-17 15:54:08 +02:00
parent 106e9d31e6
commit 87b9d333f7
4 changed files with 26 additions and 7 deletions
+7 -1
View File
@@ -211,6 +211,7 @@ void HomeActivity::onEnter() {
} }
// Trigger first update // Trigger first update
menuEntriesDirty = true;
requestUpdate(); requestUpdate();
} }
@@ -308,7 +309,9 @@ void HomeActivity::render(RenderLock&&) {
GUI.drawHeader(renderer, Rect{contentRect.x, metrics.topPadding, contentRect.width, metrics.homeTopPadding}, nullptr); GUI.drawHeader(renderer, Rect{contentRect.x, metrics.topPadding, contentRect.width, metrics.homeTopPadding}, nullptr);
rebuildMenuEntries(); if (menuEntriesDirty) {
rebuildMenuEntries();
}
const int totalItems = static_cast<int>(recentBooks.size() + menuEntries.size()); const int totalItems = static_cast<int>(recentBooks.size() + menuEntries.size());
if (selectorIndex >= totalItems) { if (selectorIndex >= totalItems) {
@@ -367,5 +370,8 @@ void HomeActivity::dispatchMenuAction(MenuAction action) {
case MenuAction::Settings: case MenuAction::Settings:
activityManager.goToSettings(); activityManager.goToSettings();
break; break;
default:
LOG_ERR("HOME", "Unexpected menu action: %d", static_cast<int>(action));
break;
} }
} }
+1
View File
@@ -42,6 +42,7 @@ class HomeActivity final : public Activity {
uint8_t* coverBuffer = nullptr; // HomeActivity's own buffer for cover image uint8_t* coverBuffer = nullptr; // HomeActivity's own buffer for cover image
std::vector<RecentBook> recentBooks; std::vector<RecentBook> recentBooks;
std::vector<MenuEntry> menuEntries; std::vector<MenuEntry> menuEntries;
bool menuEntriesDirty = true;
void onSelectBook(const std::string& path); void onSelectBook(const std::string& path);
void dispatchMenuAction(MenuAction action); void dispatchMenuAction(MenuAction action);
+17 -4
View File
@@ -1,6 +1,7 @@
#pragma once #pragma once
#include <I18n.h> #include <I18n.h>
#include <cassert>
#include <string> #include <string>
#include <vector> #include <vector>
@@ -63,10 +64,22 @@ struct SettingInfo {
StringGetterFn stringGetter = nullptr; StringGetterFn stringGetter = nullptr;
StringSetterFn stringSetter = nullptr; StringSetterFn stringSetter = nullptr;
uint8_t callValueGetter() const { return valueGetter(accessorCtx); } uint8_t callValueGetter() const {
void callValueSetter(uint8_t v) const { valueSetter(accessorCtx, v); } assert(valueGetter && "SettingInfo::callValueGetter requires a non-null valueGetter");
std::string callStringGetter() const { return stringGetter(accessorCtx); } return valueGetter(accessorCtx);
void callStringSetter(const std::string& v) const { stringSetter(accessorCtx, v); } }
void callValueSetter(uint8_t v) const {
assert(valueSetter && "SettingInfo::callValueSetter requires a non-null valueSetter");
valueSetter(accessorCtx, v);
}
std::string callStringGetter() const {
assert(stringGetter && "SettingInfo::callStringGetter requires a non-null stringGetter");
return stringGetter(accessorCtx);
}
void callStringSetter(const std::string& v) const {
assert(stringSetter && "SettingInfo::callStringSetter requires a non-null stringSetter");
stringSetter(accessorCtx, v);
}
SettingInfo& withObfuscated() { SettingInfo& withObfuscated() {
obfuscated = true; obfuscated = true;
+1 -2
View File
@@ -229,8 +229,7 @@ void SettingsActivity::toggleCurrentSetting() {
[&setting](const SubmenuData& d) { return d.id == setting.nameId; }); [&setting](const SubmenuData& d) { return d.id == setting.nameId; });
if (it != submenuData.end()) { if (it != submenuData.end()) {
startActivityForResult( startActivityForResult(
std::make_unique<SettingsSubmenuActivity>(renderer, mappedInput, setting.nameId, std::move(it->items)), std::make_unique<SettingsSubmenuActivity>(renderer, mappedInput, setting.nameId, it->items), resultHandler);
resultHandler);
} }
} else { } else {
auto activity = createActivityForAction(setting.action, renderer, mappedInput); auto activity = createActivityForAction(setting.action, renderer, mappedInput);