Revert "More reshaping"

This reverts commit 14dcd8be0f.
This commit is contained in:
jpirnay
2026-04-09 22:49:02 +02:00
parent 14dcd8be0f
commit 83bc8b41a4
11 changed files with 59 additions and 144 deletions
@@ -7,7 +7,6 @@
#include "MappedInputManager.h"
#include "components/UITheme.h"
#include "fontIds.h"
#include "util/MenuItemHelpers.h"
EpubReaderMenuActivity::EpubReaderMenuActivity(GfxRenderer& renderer, MappedInputManager& mappedInput,
const std::string& title, const int currentPage, const int totalPages,
@@ -30,7 +29,7 @@ std::vector<EpubReaderMenuActivity::MenuItem> EpubReaderMenuActivity::buildMenuI
std::vector<MenuItem> items;
items.reserve(18);
// Navigation
items.push_back(makeSeparatorMenuItem<MenuItem>(StrId::STR_READER_NAVIGATION));
items.push_back({MenuAction::NONE, StrId::STR_READER_NAVIGATION, true});
items.push_back({MenuAction::SELECT_CHAPTER, StrId::STR_SELECT_CHAPTER});
items.push_back({MenuAction::GO_TO_PERCENT, StrId::STR_GO_TO_PERCENT});
if (hasFootnotes) {
@@ -39,7 +38,7 @@ std::vector<EpubReaderMenuActivity::MenuItem> EpubReaderMenuActivity::buildMenuI
items.push_back({MenuAction::AUTO_PAGE_TURN, StrId::STR_AUTO_TURN_PAGES_PER_MIN});
// Appearance
items.push_back(makeSeparatorMenuItem<MenuItem>(StrId::STR_READER_APPEARANCE));
items.push_back({MenuAction::NONE, StrId::STR_READER_APPEARANCE, true});
items.push_back({MenuAction::EMBEDDED_STYLE, StrId::STR_EMBEDDED_STYLE});
items.push_back({MenuAction::IMAGE_RENDERING, StrId::STR_IMAGES});
items.push_back({MenuAction::TEXT_DARKNESS, StrId::STR_TEXT_DARKNESS});
@@ -47,13 +46,13 @@ std::vector<EpubReaderMenuActivity::MenuItem> EpubReaderMenuActivity::buildMenuI
// Synchronisation (only if credentials are set, to avoid confusion)
if (KOREADER_STORE.hasCredentials()) {
items.push_back(makeSeparatorMenuItem<MenuItem>(StrId::STR_KOREADER_SYNC));
items.push_back({MenuAction::NONE, StrId::STR_KOREADER_SYNC, true});
items.push_back({MenuAction::PULL_REMOTE, StrId::STR_PULL_PROGRESS_FROM_OTHER_DEVICES});
items.push_back({MenuAction::PUSH_LOCAL, StrId::STR_PUSH_PROGRESS_FROM_THIS_DEVICE});
}
// Tools
items.push_back(makeSeparatorMenuItem<MenuItem>(StrId::STR_READER_TOOLS));
items.push_back({MenuAction::NONE, StrId::STR_READER_TOOLS, true});
items.push_back({MenuAction::SCREENSHOT, StrId::STR_SCREENSHOT_BUTTON});
items.push_back({MenuAction::DISPLAY_QR, StrId::STR_DISPLAY_QR});
items.push_back({MenuAction::DELETE_CACHE, StrId::STR_DELETE_CACHE});
@@ -62,7 +61,9 @@ std::vector<EpubReaderMenuActivity::MenuItem> EpubReaderMenuActivity::buildMenuI
}
std::function<bool(int)> EpubReaderMenuActivity::buildSelectablePredicate() const {
return makeSelectablePredicate(menuItems);
return [this](int index) {
return index >= 0 && index < static_cast<int>(menuItems.size()) && !menuItems[index].isSeparator;
};
}
void EpubReaderMenuActivity::onEnter() {
@@ -2,7 +2,6 @@
#include <Epub.h>
#include <I18n.h>
#include <functional>
#include <string>
#include <vector>
@@ -30,12 +29,6 @@ class EpubReaderMenuActivity final : public Activity {
DELETE_CACHE
};
struct MenuItem {
MenuAction action;
StrId labelId;
bool isSeparator = false;
};
explicit EpubReaderMenuActivity(GfxRenderer& renderer, MappedInputManager& mappedInput, const std::string& title,
const int currentPage, const int totalPages, const int bookProgressPercent,
const uint8_t currentOrientation, const bool hasFootnotes,
@@ -47,10 +40,17 @@ class EpubReaderMenuActivity final : public Activity {
void loop() override;
void render(RenderLock&&) override;
private:
struct MenuItem {
MenuAction action;
StrId labelId;
bool isSeparator = false;
};
static std::vector<MenuItem> buildMenuItems(bool hasFootnotes);
std::function<bool(int)> buildSelectablePredicate() const;
private:
// Fixed menu layout
const std::vector<MenuItem> menuItems;