Add forgotten entries to override menu

This commit is contained in:
jpirnay
2026-05-24 18:23:43 +02:00
parent 3ce6fc13d4
commit 5cb6176486
3 changed files with 63 additions and 7 deletions
+4 -2
View File
@@ -2797,7 +2797,8 @@ void EpubReaderActivity::openReaderMenu() {
renderer, mappedInput, epub->getTitle(), currentPage, totalPages, bookProgressPercent, SETTINGS.orientation, renderer, mappedInput, epub->getTitle(), currentPage, totalPages, bookProgressPercent, SETTINGS.orientation,
!currentPageFootnotes.empty(), bookEmbeddedStyleOverride, bookImageRenderingOverride, bookFontFamilyOverride, !currentPageFootnotes.empty(), bookEmbeddedStyleOverride, bookImageRenderingOverride, bookFontFamilyOverride,
bookSdFontFamilyOverride, bookFontSizeOverride, SETTINGS.textDarkness, getEffectiveBionicReading(), bookSdFontFamilyOverride, bookFontSizeOverride, SETTINGS.textDarkness, getEffectiveBionicReading(),
bookParagraphAlignmentOverride, !bookmarkStore.isEmpty(), isCurrentPageStarred, hasPrintedPages), bookParagraphAlignmentOverride, bookTextAntiAliasingOverride, bookHyphenationOverride,
!bookmarkStore.isEmpty(), isCurrentPageStarred, hasPrintedPages),
[this](const ActivityResult& result) { [this](const ActivityResult& result) {
const auto& menu = std::get<MenuResult>(result.data); const auto& menu = std::get<MenuResult>(result.data);
applyOrientation(menu.orientation); applyOrientation(menu.orientation);
@@ -2805,7 +2806,8 @@ void EpubReaderActivity::openReaderMenu() {
toggleAutoPageTurn(menu.pageTurnOption); toggleAutoPageTurn(menu.pageTurnOption);
applyBookReaderOverrides(menu.embeddedStyleOverride, menu.imageRenderingOverride, menu.fontFamilyOverride, applyBookReaderOverrides(menu.embeddedStyleOverride, menu.imageRenderingOverride, menu.fontFamilyOverride,
menu.sdFontFamilyOverride, menu.fontSizeOverride, menu.sdFontFamilyOverride, menu.fontSizeOverride,
static_cast<bool>(menu.bionicReadingOverride), menu.paragraphAlignmentOverride); static_cast<bool>(menu.bionicReadingOverride), menu.paragraphAlignmentOverride,
menu.textAntiAliasingOverride, menu.hyphenationOverride);
if (!result.isCancelled) { if (!result.isCancelled) {
onReaderMenuConfirm(static_cast<EpubReaderMenuActivity::MenuAction>(menu.action)); onReaderMenuConfirm(static_cast<EpubReaderMenuActivity::MenuAction>(menu.action));
} }
@@ -11,6 +11,24 @@
#include "fontIds.h" #include "fontIds.h"
namespace { namespace {
// Three-state cycle helper for overrides represented as int8_t with -1 = default.
// Mirrors the helpers in QuickOverridesActivity.cpp; kept duplicated rather
// than extracted so each activity stays self-contained for 16 lines of code.
// slot 0 -> -1 (default)
// slot 1 -> 1 (on)
// slot 2 -> 0 (off)
uint8_t threeStateSlotFromOverride(int8_t value) {
if (value < 0) return 0;
if (value > 0) return 1;
return 2;
}
int8_t threeStateOverrideFromSlot(uint8_t slot) {
if (slot == 0) return -1;
if (slot == 1) return 1;
return 0;
}
// Returns the localized name of the family currently used as the global default // Returns the localized name of the family currently used as the global default
// for the reader. When the user has selected an SD card font globally, the // for the reader. When the user has selected an SD card font globally, the
// override menu's "Default" label should reflect that family by name even // override menu's "Default" label should reflect that family by name even
@@ -40,7 +58,8 @@ EpubReaderMenuActivity::EpubReaderMenuActivity(
const int8_t initialEmbeddedStyleOverride, const int8_t initialImageRenderingOverride, const int8_t initialEmbeddedStyleOverride, const int8_t initialImageRenderingOverride,
const int8_t initialFontFamilyOverride, const std::string& initialSdFontFamilyOverride, const int8_t initialFontFamilyOverride, const std::string& initialSdFontFamilyOverride,
const int8_t initialFontSizeOverride, const uint8_t initialTextDarkness, const bool initialBionicReadingOverride, const int8_t initialFontSizeOverride, const uint8_t initialTextDarkness, const bool initialBionicReadingOverride,
const int8_t initialParagraphAlignmentOverride, const bool hasStarredPages, const bool isCurrentPageStarred, const int8_t initialParagraphAlignmentOverride, const int8_t initialTextAntiAliasingOverride,
const int8_t initialHyphenationOverride, const bool hasStarredPages, const bool isCurrentPageStarred,
const bool hasPrintedPages) const bool hasPrintedPages)
: MenuListActivity("EpubReaderMenu", renderer, mappedInput), : MenuListActivity("EpubReaderMenu", renderer, mappedInput),
currentPageStarred(isCurrentPageStarred), currentPageStarred(isCurrentPageStarred),
@@ -53,6 +72,8 @@ EpubReaderMenuActivity::EpubReaderMenuActivity(
pendingTextDarkness(initialTextDarkness), pendingTextDarkness(initialTextDarkness),
pendingBionicReading(initialBionicReadingOverride), pendingBionicReading(initialBionicReadingOverride),
pendingParagraphAlignmentOverride(initialParagraphAlignmentOverride), pendingParagraphAlignmentOverride(initialParagraphAlignmentOverride),
pendingTextAntiAliasingOverride(initialTextAntiAliasingOverride),
pendingHyphenationOverride(initialHyphenationOverride),
title(title), title(title),
currentPage(currentPage), currentPage(currentPage),
totalPages(totalPages), totalPages(totalPages),
@@ -242,6 +263,32 @@ void EpubReaderMenuActivity::buildMenuItems(bool hasFootnotes, bool hasStarredPa
}) })
.withSubmenu(StrId::STR_READER_OVERRIDES)); .withSubmenu(StrId::STR_READER_OVERRIDES));
// Text anti-aliasing: default / on / off (mirrors QuickOverrides)
menuItems.push_back(
SettingInfo::DynamicEnumCtx(
StrId::STR_TEXT_AA, {StrId::STR_DEFAULT_VALUE, StrId::STR_STATE_ON, StrId::STR_STATE_OFF}, self,
[](const void* ctx) -> uint8_t {
return threeStateSlotFromOverride(
static_cast<const EpubReaderMenuActivity*>(ctx)->pendingTextAntiAliasingOverride);
},
[](void* ctx, uint8_t v) {
static_cast<EpubReaderMenuActivity*>(ctx)->pendingTextAntiAliasingOverride = threeStateOverrideFromSlot(v);
})
.withSubmenu(StrId::STR_READER_OVERRIDES));
// Hyphenation: default / on / off (mirrors QuickOverrides)
menuItems.push_back(
SettingInfo::DynamicEnumCtx(
StrId::STR_HYPHENATION, {StrId::STR_DEFAULT_VALUE, StrId::STR_STATE_ON, StrId::STR_STATE_OFF}, self,
[](const void* ctx) -> uint8_t {
return threeStateSlotFromOverride(
static_cast<const EpubReaderMenuActivity*>(ctx)->pendingHyphenationOverride);
},
[](void* ctx, uint8_t v) {
static_cast<EpubReaderMenuActivity*>(ctx)->pendingHyphenationOverride = threeStateOverrideFromSlot(v);
})
.withSubmenu(StrId::STR_READER_OVERRIDES));
// Helper functions, reading ruler, auto page turn, orientation // Helper functions, reading ruler, auto page turn, orientation
menuItems.push_back(SettingInfo::Separator(StrId::STR_READER_UTILS)); menuItems.push_back(SettingInfo::Separator(StrId::STR_READER_UTILS));
// Auto page turn: ACTION type with custom cycling in onActionSelected // Auto page turn: ACTION type with custom cycling in onActionSelected
@@ -336,7 +383,8 @@ void EpubReaderMenuActivity::finishWithAction(MenuAction action) {
setResult(MenuResult{static_cast<int>(action), -1, pendingOrientation, selectedPageTurnOption, setResult(MenuResult{static_cast<int>(action), -1, pendingOrientation, selectedPageTurnOption,
pendingEmbeddedStyleOverride, pendingImageRenderingOverride, pendingFontFamilyOverride, pendingEmbeddedStyleOverride, pendingImageRenderingOverride, pendingFontFamilyOverride,
pendingSdFontFamilyOverride, pendingFontSizeOverride, pendingTextDarkness, pendingSdFontFamilyOverride, pendingFontSizeOverride, pendingTextDarkness,
static_cast<uint8_t>(pendingBionicReading), pendingParagraphAlignmentOverride}); static_cast<uint8_t>(pendingBionicReading), pendingParagraphAlignmentOverride,
pendingTextAntiAliasingOverride, pendingHyphenationOverride});
finish(); finish();
} }
@@ -372,7 +420,9 @@ void EpubReaderMenuActivity::onBackPressed() {
pendingFontSizeOverride, pendingFontSizeOverride,
pendingTextDarkness, pendingTextDarkness,
static_cast<uint8_t>(pendingBionicReading), static_cast<uint8_t>(pendingBionicReading),
pendingParagraphAlignmentOverride}; pendingParagraphAlignmentOverride,
pendingTextAntiAliasingOverride,
pendingHyphenationOverride};
setResult(std::move(result)); setResult(std::move(result));
finish(); finish();
} }
@@ -42,8 +42,10 @@ class EpubReaderMenuActivity final : public MenuListActivity {
const int8_t initialFontFamilyOverride, const int8_t initialFontFamilyOverride,
const std::string& initialSdFontFamilyOverride, const int8_t initialFontSizeOverride, const std::string& initialSdFontFamilyOverride, const int8_t initialFontSizeOverride,
const uint8_t initialTextDarkness, const bool initialBionicReadingOverride, const uint8_t initialTextDarkness, const bool initialBionicReadingOverride,
const int8_t initialParagraphAlignmentOverride, const bool hasStarredPages, const int8_t initialParagraphAlignmentOverride,
const bool isCurrentPageStarred, const bool hasPrintedPages); const int8_t initialTextAntiAliasingOverride, const int8_t initialHyphenationOverride,
const bool hasStarredPages, const bool isCurrentPageStarred,
const bool hasPrintedPages);
void onEnter() override; void onEnter() override;
void render(RenderLock&&) override; void render(RenderLock&&) override;
@@ -77,6 +79,8 @@ class EpubReaderMenuActivity final : public MenuListActivity {
uint8_t pendingTextDarkness = 1; uint8_t pendingTextDarkness = 1;
bool pendingBionicReading = false; bool pendingBionicReading = false;
int8_t pendingParagraphAlignmentOverride = -1; int8_t pendingParagraphAlignmentOverride = -1;
int8_t pendingTextAntiAliasingOverride = -1;
int8_t pendingHyphenationOverride = -1;
static constexpr const char* pageTurnLabels[] = {"", "1", "3", "6", "12"}; static constexpr const char* pageTurnLabels[] = {"", "1", "3", "6", "12"};