And even more

This commit is contained in:
jpirnay
2026-04-24 14:48:12 +02:00
parent 5068817549
commit 4cfd031cab
2 changed files with 26 additions and 5 deletions
@@ -202,6 +202,16 @@ EpubReaderMenuActivity::MenuAction EpubReaderMenuActivity::actionForNameId(StrId
} }
} }
EpubReaderMenuActivity::MenuAction EpubReaderMenuActivity::actionForSettingAction(SettingAction action) {
switch (action) {
case SettingAction::None:
case SettingAction::Submenu:
return MenuAction::NONE;
default:
return MenuAction::NONE;
}
}
void EpubReaderMenuActivity::finishWithAction(MenuAction action) { 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,
@@ -329,11 +339,21 @@ void EpubReaderMenuActivity::openSubmenu(const SettingInfo& submenuEntry) {
[this](const ActivityResult& result) { [this](const ActivityResult& result) {
if (!result.isCancelled) { if (!result.isCancelled) {
const auto* menuResult = std::get_if<MenuResult>(&result.data); const auto* menuResult = std::get_if<MenuResult>(&result.data);
if (menuResult && menuResult->nameId != -1) { if (menuResult) {
const auto action = actionForNameId(static_cast<StrId>(menuResult->nameId)); if (menuResult->action != -1) {
if (action != MenuAction::NONE) { const auto action =
finishWithAction(action); actionForSettingAction(static_cast<SettingAction>(menuResult->action));
return; if (action != MenuAction::NONE) {
finishWithAction(action);
return;
}
}
if (menuResult->nameId != -1) {
const auto action = actionForNameId(static_cast<StrId>(menuResult->nameId));
if (action != MenuAction::NONE) {
finishWithAction(action);
return;
}
} }
} }
} }
@@ -58,6 +58,7 @@ class EpubReaderMenuActivity final : public MenuListActivity {
// Map from StrId to MenuAction for result passing // Map from StrId to MenuAction for result passing
static MenuAction actionForNameId(StrId nameId); static MenuAction actionForNameId(StrId nameId);
static MenuAction actionForSettingAction(SettingAction action);
// Pending state (mutated locally, returned to parent on finish) // Pending state (mutated locally, returned to parent on finish)
uint8_t pendingOrientation = 0; uint8_t pendingOrientation = 0;