diff --git a/src/RecentBooksStore.cpp b/src/RecentBooksStore.cpp index fb222150..8fbadd06 100644 --- a/src/RecentBooksStore.cpp +++ b/src/RecentBooksStore.cpp @@ -84,7 +84,13 @@ RecentBook RecentBooksStore::getBookByPath(const std::string& path) const { bool RecentBooksStore::setReaderOverrides(const std::string& path, const int8_t embeddedStyleOverride, const int8_t imageRenderingOverride) { - return setReaderOverrides(path, embeddedStyleOverride, imageRenderingOverride, -1, -1); + auto it = + std::find_if(recentBooks.begin(), recentBooks.end(), [&](const RecentBook& book) { return book.path == path; }); + if (it == recentBooks.end()) { + return false; + } + return setReaderOverrides(path, embeddedStyleOverride, imageRenderingOverride, it->fontFamilyOverride, + it->fontSizeOverride); } bool RecentBooksStore::setReaderOverrides(const std::string& path, const int8_t embeddedStyleOverride, diff --git a/src/activities/reader/EpubReaderMenuActivity.cpp b/src/activities/reader/EpubReaderMenuActivity.cpp index 271d3beb..af78acdc 100644 --- a/src/activities/reader/EpubReaderMenuActivity.cpp +++ b/src/activities/reader/EpubReaderMenuActivity.cpp @@ -270,21 +270,21 @@ std::string EpubReaderMenuActivity::getItemValueString(int index) const { return std::string(tr(STR_DEFAULT_VALUE)) + " (" + defaultEffective + ")"; } if (item.nameId == StrId::STR_IMAGES && pendingImageRenderingOverride < 0) { - const auto index = static_cast(SETTINGS.imageRendering + 1); - if (index < item.enumValues.size()) { - return std::string(tr(STR_DEFAULT_VALUE)) + " (" + I18N.get(item.enumValues[index]) + ")"; + const auto defaultIndex = static_cast(SETTINGS.imageRendering + 1); + if (defaultIndex < item.enumValues.size()) { + return std::string(tr(STR_DEFAULT_VALUE)) + " (" + I18N.get(item.enumValues[defaultIndex]) + ")"; } } if (item.nameId == StrId::STR_FONT_FAMILY && pendingFontFamilyOverride < 0) { - const auto index = static_cast(SETTINGS.fontFamily + 1); - if (index < item.enumValues.size()) { - return std::string(tr(STR_DEFAULT_VALUE)) + " (" + I18N.get(item.enumValues[index]) + ")"; + const auto defaultIndex = static_cast(SETTINGS.fontFamily + 1); + if (defaultIndex < item.enumValues.size()) { + return std::string(tr(STR_DEFAULT_VALUE)) + " (" + I18N.get(item.enumValues[defaultIndex]) + ")"; } } if (item.nameId == StrId::STR_FONT_SIZE && pendingFontSizeOverride < 0) { - const auto index = static_cast(SETTINGS.fontSize + 1); - if (index < item.enumValues.size()) { - return std::string(tr(STR_DEFAULT_VALUE)) + " (" + I18N.get(item.enumValues[index]) + ")"; + const auto defaultIndex = static_cast(SETTINGS.fontSize + 1); + if (defaultIndex < item.enumValues.size()) { + return std::string(tr(STR_DEFAULT_VALUE)) + " (" + I18N.get(item.enumValues[defaultIndex]) + ")"; } } }