Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add color highlight menu #11044

Merged
merged 44 commits into from
Aug 30, 2024
Merged

Add color highlight menu #11044

merged 44 commits into from
Aug 30, 2024

Conversation

smasher816
Copy link
Contributor

@smasher816 smasher816 commented Oct 26, 2023

Pass a configurable ColorRGB32 to bb:paintRect / bb:lightenRect.
If isColorEnabled is unset then original B&W Color8/uint8_t is passed in.

Requires corresponding Cbb patch.
koreader/koreader-base#1680

Fix #9024


ChangeLog:

  • ReaderHighlight: Add a "Highlight color" submenu (via a single column button on the last row) to the "Highlight style" dialog. Works for every style except invert ;).
  • ReaderHighlight: Same for the "Highlight style" submenu, where you can change the defaults and mass update existing annotations.
  • ReaderHighlight: Default to yellow highlights on isColorEnabled devices.
  • ReaderHighlight: Reword the "Highlight opacity" stuff now that it only applies to gray.
  • ReaderView: Ensure pages with color highlights will use a Kaleido waveform mode on compatible devices.
  • ReaderView: And, of course, support drawing color highlights ;).
  • PDFDocument: Support drawing color annotations.
  • CheckButton: Support a bold & bgcolor being set, and forward that to TextWidget
  • RadioButtonTable: Support bold, fgcolor & bgcolor
  • RadioButtonWidget: Allow caller to specify that colors are used (via a new colorful field), and use that information to make sure the refresh will use a Kaleido waveform mode on compatible devices.
  • TextBoxWidget: Support color fg & bg colors (you previously could only use grayscale shades, i.e., Color8, like in basically all our UI ;p).
  • Terminal: Completely random drive-by log message tweak when the device doesn't support the plugin.
  • Misc: Clarify the lightenRect/darkenRect calls across the codebase.

(Depends on koreader/koreader-base#1680)


This change is Reviewable

@smasher816
Copy link
Contributor Author

Initial inspiration. #9024 (comment)

@hius07
Copy link
Member

hius07 commented Oct 27, 2023

Since the color is constant within a page, it can be calculated outside of the loop on each box.

@hius07
Copy link
Member

hius07 commented Oct 27, 2023

people will want different color per highlight

In view of this in the future, the general setting should be done as a submenu, not RadioButtonWidget, similar to highlight style.
RadioButtonWidget would be used in a certain highlight style editing (personal style would include drawer, color and maybe opacity).

@hius07
Copy link
Member

hius07 commented Oct 27, 2023

BTW, we do not have a feature "apply default style to all highlights in the book", it might be useful.

@ryanwwest
Copy link
Contributor

ryanwwest commented Oct 27, 2023

Initial inspiration. #9024 (comment)

This is great. I was wondering if the highlight colors could possibly match the default hex colors offered in Zotero, if they aren't finalized? It looks like what you currently have is already very close and that issue also mentions Zotero. I'd like to at some point develop some sort of sync between Zotero highlights and KOReader highlights so you can read/write them in either app and this would solve one of the big issues listed here. The colors seem to be these.

@smasher816
Copy link
Contributor Author

Newest revision now supports per-highlight colors. This extra info should be part of highlight exports, thus making it queryable to outside integrations.
Settings menu is disabled if color screen is not present.

@hius07 I fail to see how the radio menu is bad. It seems to work fine for both setting the default, and for editing a single highlight.
Apply default style to all highlights can be a future MR.

@ryanwwest the color values came from the Onyx drawing app. These are pretty finicky in that certain colors appear identical (I had to manually tweak orange to not be the same as yellow). I suspect that really these may need to be tweaked per-device.
I think it might be a good idea to make the list of colors configurable using a table in settings.lua, but I'm unsure how much work that would be. Edits to the config would likely have to be manual (or through the advance screen) since there is no easy way to edit these values. Regardless, I think this can be a future addition to avoid feature creep.
For the Zotero integration, I don't think it would be tough to have a lookup table / translation layer to accomplish your goal.

@smasher816
Copy link
Contributor Author

Latest revision allows for customizable colors in settings.lua
(this one is for you @ryanwwest )

    ["highlight_colors"] = {
        [1] = {
            [1] = "Rojo",
            [2] = "#fe4400",
        },
        [2] = {
            [1] = "Naranja",
            [2] = "#ff8800",
        },
        [3] = {
            [1] = "Amarillo",
            [2] = "#fdff32",
        },
        [4] = {
            [1] = "Verde",
            [2] = "#00ad65",
        },
        [5] = {
            [1] = "Morada",
            [2] = "#ee00ff",
        },
        [6] = {
            [1] = "Gris Oscuro",
            [2] = "#303030",
        },
    },

Edit color button is now completely removed on non-color devices.

@smasher816
Copy link
Contributor Author

Newest revision should now pass in pdf annotation colors to mupdf backend.
Base MR has also been updated to receive this value.

@ryanwwest
Copy link
Contributor

ryanwwest commented Oct 28, 2023

Latest revision allows for customizable colors in settings.lua (this one is for you @ryanwwest )

Thanks. FYI, the way Zotero allows highlight colors is it directly stores (with the highlight) any color hex code and displays that color. But the UI color picker that shows up when you select text to highlight only has like 8 or 9 preset colors, so users don't usually see other colors. I'm not sure if that would also work here (not looking super closely at the code) but if not it might be okay. As a future annotation syncer plugin with Zotero could instead create a new highlight_colors entry with each incoming zotero color hex code not already found in the table.

@smasher816
Copy link
Contributor Author

Custom colors are now with patches.
See #11044 (comment)

@poire-z
Copy link
Contributor

poire-z commented Oct 28, 2023

Should we really save the rgbcolor (#FF0000) in the highlight item?
Wouldn't it be cleaner/more abstract if we save keywords (red, green...) - so the change-color-dialog shows always something checked - and we can change what color is "red" and have it apply to all past "red" highlights ?

@ryanwwest
Copy link
Contributor

Should we really save the rgbcolor (#FF0000) in the highlight item? Wouldn't it be cleaner/more abstract if we save keywords (red, green...) - so the change-color-dialog shows always something checked - and we can change what color is "red" and have it apply to all past "red" highlights ?

I'd prefer the rgbcolor itself to be saved into each highlight item as then it allows any number of highlight colors (and also easier for future sync with Zotero). It seems confusing to me to change the color of 'red' to be a non-red color (slight shades of red variation makes more sense but I'm not thinking of a common use case for this).

@poire-z
Copy link
Contributor

poire-z commented Oct 28, 2023

change the color of 'red' to be a non-red color (slight shades of red variation makes more sense but I'm not thinking of a common use case for this).

I was thinking about the "slight shades of red" case, just for people wanting to adjust the red saturation/tone to make it more readable to them on their devices (color eInk or Android) when set on a black or blue or grey text - they may want to make it lighter or darker when they later meet greyish text in books and realize that initial red is not working well in some cases.

I don't think people are so in love with red that they will want to override our blue to be another kind of lighter red than our red, and our yellow to be another variation of
https://www.color-meanings.com/shades-of-red-color-names-html-hex-rgb-codes/
(but I may be wrong :)

@ryanwwest
Copy link
Contributor

Well you could have both - hex codes to allow any color, and some preset red/green/yellow string which is mapped to a configurable hex code. I see benefits for both of them..

@ryanwwest
Copy link
Contributor

I am not sure how this fits in with the existing highlight styles. is it just a new field, separate and in addition to underline/strikeout/invert/highlight, or do you have a color in place of those? I'm indifferent to either option, though I don't know if invert fits with colors.

@poire-z
Copy link
Contributor

poire-z commented Oct 28, 2023

I'm not thinking so much about users of external tools, just our internal code - and it feels keywords would allow more future features than harcoded color codes - ie what we do with underline/striken, one could in the bookmark list show all "red" highlights only, if for that user, "red" means "typo error to correct", etc...

@smasher816
Copy link
Contributor Author

Saving the name still allows for "any number of highlight colors". I don't see any downside to doing that, and having the ability to easily patch old highlights seems useful to me.
And ryam, it'. separate field. You can still highlight/underline/strikeout with the selected color. It just changes how it is shown.
Invert has no color option, since it flips whatever is already drawn on the page.

@smasher816
Copy link
Contributor Author

ReaderHighlight now stores string names, and ReaderView now has a name->rgb lookup table.
There are fallbacks if a lookup fails (someone may add a new name in a patch which is then later disabled).

@NiLuJe
Copy link
Member

NiLuJe commented Aug 27, 2024

ChangeLog:

  • ReaderHighlight: Add a "Highlight color" submenu (via a single column button on the last row) to the "Highlight style" dialog. Works for every style except invert ;).
  • ReaderHighlight: Same for the "Highlight style" submenu, where you can change the defaults and mass update existing annotations.
  • ReaderHighlight: Default to yellow highlights on isColorEnabled devices.
  • ReaderHighlight: Reword the "Highlight opacity" stuff now that it only applies to gray.
  • ReaderView: Ensure pages with color highlights will use a Kaleido waveform mode on compatible devices.
  • ReaderView: And, of course, support drawing color highlights ;).
  • PDFDocument: Support drawing color annotations.
  • CheckButton: Support a bold & bgcolor being set, and forward that to TextWidget
  • RadioButtonTable: Support bold, fgcolor & bgcolor
  • RadioButtonWidget: Allow caller to specify that colors are used (via a new colorful field), and use that information to make sure the refresh will use a Kaleido waveform mode on compatible devices.
  • TextBoxWidget: Support color fg & bg colors (you previously could only use grayscale shades, i.e., Color8, like in basically all our UI ;p).
  • Terminal: Completely random drive-by log message tweak when the device doesn't support the plugin.
  • Misc: Clarify the lightenRect/darkenRect calls across the codebase.

(Depends on koreader/koreader-base#1680)

@NiLuJe
Copy link
Member

NiLuJe commented Aug 27, 2024

Commit history will be archived in my color-highlights branch

return T(_("Highlight color: %1"), string.lower(v[1]))
end
end
return T(_("Highlight color: %1"), saved_color)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For what color?

Copy link
Member

@NiLuJe NiLuJe Aug 27, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure I understand the question ;).

But: all of them? This is to set the defaults, so you have access to all of them (including gray).

Copy link
Member

@hius07 hius07 Aug 27, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is executed when saved_color is not in self.highlight_colors.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I still don't understand where you're going with that, sorry ;).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the color is unsupported (somehow, that would require some pretty heinous trickery I guess?), this would show the actual color name stored, but it would be rendered as gray.

Copy link
Member

@NiLuJe NiLuJe Aug 27, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mean, how did the unsupported color appear in saved_color?

It shouldn't, unless someone manually mangled annotations, or we somehow fuck up the list of color names in the future ;).

I'm not reading all the context of this pull request, but I'd appreciate if all possible RBX hex colors (not just the ~10 or so official ones we allow users to pick) can still be displayed in their proper color, instead of grey.

They technically can, but that requires you to user-patch the list of name = code in blitbuffer for what you want to use.

(i.e., annotations store a color name, not a color code; and it's up to the device to render that according to what it thinks that color should be mapped to. I guess the intent was to be able to move annotations between devices where some of them can be very very bad at rendering certain colors).

Copy link
Member

@NiLuJe NiLuJe Aug 27, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It shouldn't, unless someone manually mangled annotations, or we somehow fuck up the list of color names in the future ;).

Oh, or, if, I guess, someone user-patched both blitbuffer and readerhighlight to add more color names, and that was moved to another device where those color names are unknown.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

annotations store a color name, not a color hash

Hmm, okay. I understand the idea of different hex codes for the same color depending on the device (but also wonder if that would ever actually happen).

My eventual idea is syncing these annotations between KOReader and Zotero and since Zotero stores hex codes, not color names (and allows any hex combination), I imagined this would be similar. But, that's just hypothetical and may never happen so doesn't make sense to design it here just for that. Still, that's my reasoning.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See the original discussion you were part of last year at the top of this issue, I didn't come up with that, I just picked up the baton ;).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's already coded like this, and I bet a plugin could somehow make it work with this code. Like e.g. from what you said

[a plugin] user-patched both blitbuffer and readerhighlight to add more color names, and that was moved to another device where those color names are unknown

So it's fine. Zotero doesn't have underlining/invert highlight style anyway so those I'd need to some sort of mapping in KOReader regardless.

Don't do anything if the device doesn't support Kaleido wfm, or if color
is disabled.

Also, use full to prevent partial being "upgraded" to flashui, which
wouldn't be eligible for Kaleido (on Kobo, at least, PB has a less
granular wfm selection, so it doesn't care about this distinction).
if Blitbuffer.isColor8(color) then
bb:paintRect(x, y + h - 1, w, Size.line.medium, color)
else
bb:paintRectRGB32(x, y + h - 1, w, Size.line.medium, color)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You draw the note marking underline with the same color as the highlighting itself, not visible.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I imagine we probably actually want to keep those in black, always, not only the underline?

Copy link
Member

@NiLuJe NiLuJe Aug 27, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Although... I can sort of see the sideline being in color somewhat useful?

Mildly less enthused about the icon, but I'm really, really not the target audience, so, no idea ^^

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, the icon is already B&W only, so we're good ;p.

Copy link
Member

@hius07 hius07 Aug 27, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Underline and icon always in black I think, sideline on b/w devices in black and on color devices maybe in color.

Copy link
Contributor

@poire-z poire-z left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks ok. Trusting @hius07 for all the widgets in ReaderHighlight.

Looks like we're showing the Highlight color menu/widget item even on B&W devices, right?
In #11044 (review) and next one, @hius07 wanted them only on color devices. Is that resolved?

@NiLuJe
Copy link
Member

NiLuJe commented Aug 27, 2024

Looks like we're showing the Highlight color menu/widget item even on B&W devices, right?

Yep, it allows modifying colors on imported highlights.

(Or, hell, even on the same device if you happen to disable color rendering on it ;p).

I think the original comment was from when the color button was added to the initial on-hold strip of buttons widget thingy; this is no longer the case, it's just an extra row at the bottom of the Style popup now.

@poire-z
Copy link
Contributor

poire-z commented Aug 27, 2024

Imported highlights between a color device and another b&w device must be a rare use case.
So, people with a single B&W device will get this menu, be able to set a color - but will bascailly see nothing? Do our gray highlights will change grayness if you set them to different colors?

@NiLuJe
Copy link
Member

NiLuJe commented Aug 27, 2024

Do our gray highlights will change grayness if you set them to different colors?

Yep!

@NiLuJe NiLuJe mentioned this pull request Aug 30, 2024
@Frenzie Frenzie merged commit 60e0e3e into koreader:master Aug 30, 2024
2 of 5 checks passed
@ryanwwest
Copy link
Contributor

This is awesome, thanks so much to everyone for making this happen!!

@NiLuJe
Copy link
Member

NiLuJe commented Aug 30, 2024

Many thanks to @smasher816 for the initial implementation, and to @hius07 for his help pushing this through the finish line during the various iterations of this PR ;).

@CobriMediaJulien
Copy link

Does this mean the feature is going to be in the next build/ release? Awesome, many thanks guys.

@Commodore64user
Copy link
Contributor

Commodore64user commented Aug 30, 2024

Sorry, just saying: I can't wait for it to be ready, I'm dreaming so much about this feature. It will be the best day in my girl life. 😀

p.s. If you need any possible help, I will be glad to help you, guys 🫶

You are making the best day in a girl’s life a reality. How wholesome.

@poire-z
Copy link
Contributor

poire-z commented Aug 31, 2024

Looks like I get a crash when I open a book starting on a page with a highlight (made before this PR I guess) - and also after opening on a blank page when going to a page with a highlight:

08/31/24-09:57:48 DEBUG CreDocument: goto page 1147 flow 0
./luajit: ./ffi/blitbuffer.lua:2610: attempt to index local 'name' (a nil value)
stack traceback:
 ./ffi/blitbuffer.lua:2610: in function 'colorFromName'
 frontend/apps/reader/modules/readerview.lua:595: in function 'drawSavedHighlight'
 frontend/apps/reader/modules/readerview.lua:237: in function 'paintTo'
 frontend/ui/widget/container/inputcontainer.lua:87: in function 'paintTo'
 frontend/ui/uimanager.lua:1259: in function '_repaint'
 frontend/ui/uimanager.lua:1482: in function 'handleInput'
 frontend/ui/uimanager.lua:1582: in function 'run'
 reader.lua:265: in main chunk
 [C]: at 0x556b40db27af

Is it just me?

@uroybd
Copy link
Contributor

uroybd commented Aug 31, 2024

Looks like I get a crash when I open a book starting on a page with a highlight (made before this PR I guess) - and also after opening on a blank page when going to a page with a highlight:

08/31/24-09:57:48 DEBUG CreDocument: goto page 1147 flow 0
./luajit: ./ffi/blitbuffer.lua:2610: attempt to index local 'name' (a nil value)
stack traceback:
 ./ffi/blitbuffer.lua:2610: in function 'colorFromName'
 frontend/apps/reader/modules/readerview.lua:595: in function 'drawSavedHighlight'
 frontend/apps/reader/modules/readerview.lua:237: in function 'paintTo'
 frontend/ui/widget/container/inputcontainer.lua:87: in function 'paintTo'
 frontend/ui/uimanager.lua:1259: in function '_repaint'
 frontend/ui/uimanager.lua:1482: in function 'handleInput'
 frontend/ui/uimanager.lua:1582: in function 'run'
 reader.lua:265: in main chunk
 [C]: at 0x556b40db27af

Is it just me?

It happened to me also.

My workaround was to apply the default highlight style to all from the menu.

@poire-z
Copy link
Contributor

poire-z commented Aug 31, 2024

Went with:

-                    local color = Blitbuffer.colorFromName(item.color)
+                    local color = Blitbuffer.colorFromName(item.color or "blah")

to move on.

By killing colors early, we act for a better future #11044 (comment)

NiLuJe added a commit to NiLuJe/koreader that referenced this pull request Aug 31, 2024
(They'll be drawn them in gray, as before)

Regression since koreader#11044
(koreader#11044 (comment))
NiLuJe added a commit that referenced this pull request Aug 31, 2024
@hius07 hius07 mentioned this pull request Oct 18, 2024
wbstx added a commit to wbstx/koreader that referenced this pull request Nov 29, 2024
KOReader 2024.11 "Slang"

![koreader-2024-11-slangie](https://github.com/user-attachments/assets/cb9e68bf-aa0f-47c7-a093-46fbf8bb19c3)

Some of you on Android may have had dictionary issues. That should be fixed now.

Connecting to Wi-Fi should be more reliable on platforms where we manage it ourselves, most notably Kobo (koreader/lj-wpaclient#11).

Color is now supported when reflowing (koreader#12085).

This month's logo was contributed by @Sonnenfee

We'd like to thank all contributors for their efforts. Some highlights since the previous release include:

* Certain network features will now work in Flatpak (<flathub/rocks.koreader.KOReader#52>) @kii-chan-reloaded
* 'Use left and right keys for page turning' option added (koreader#12174) @Commodore64user
* Text editor: enhancement (koreader#12176) @hius07
  (1) Speed up adding/deleting chars (by avoiding a call of expensive splitToChars), noticeable on big files.
  (2) Indicate select mode: wider cursor.
* Annotations: more fixes (koreader#12181) @hius07
  (1) Allows annotations with equal datetime fields.
  (2) Allows page bookmarks with equal page numbers.
* kopt: color support (koreader#12085) @benoit-pierre
* bump base (updated build system) & fix macOS CI (koreader#12187) @benoit-pierre
* AltStatusBar/Footer: add the read timer value (koreader#12002) @zwim
* bump translations (koreader#12193) @pazos
* CRE call cache: don't wrap setViewMode (koreader#12194) @poire-z
* bump crengine: various fixes and optimizations (koreader#12200) @poire-z
* Add author option for alt status bar (koreader/crengine#575) (koreader#12197) @trash-pandy
* Page turns: invert vertical tap zones (koreader#12195) @hius07
* Annotations: pageno honors reference pages and hidden flows (koreader#12214) @hius07
* ToggleSwitch: fix long-press (koreader#12215) @hius07
* SDL: Return true in NetworkMgr:isConnected on !hasWifiToggle platforms (koreader#12217) @NiLuJe
* Kobo: Refactor various aspects of the Kaleido/MTK support (koreader#12221) @NiLuJe
* ReaderAnnotation: fix doesMatch func (koreader#12231) @hius07
* bump base (koreader#12241) @benoit-pierre
* NetworkMgr: Attempt to handle wpa_supplicant rescans better (koreader#12236) @NiLuJe
* miscellaneous build system changes (koreader#12242) @benoit-pierre
* make: handle old build data directory (koreader#12259) @benoit-pierre
* ReaderFooter: improve (koreader#12243) @hius07
* Annotations: fix exporting (koreader#12261) @hius07
* make: install missing `cr3.css`… (koreader#12262) @benoit-pierre
* [fix] NetworkMgr: apply HTTP proxy setting on startup (koreader#12260) @Frenzie
* Kobo: Track frontlight state more accurately on suspend/resume (koreader#12256) @NiLuJe
* Make W-Fi scan more reliable (koreader#12265, koreader/lj-wpaclient#11) @NiLuJe
* ReaderAnnotation: fix doesMatch func 2 (koreader#12270) @hius07
* make: fix android update sdcv (koreader#12275) @benoit-pierre
* [plugin] Reader footer: check if header resp. footer are available (koreader#12264) @zwim
* ReadHistory: On remove, trust the index from FileManagerHistory if possible (koreader#12253) @NiLuJe
* ReaderUI: add `seamless` argument to switchDocument (koreader#12290) @ziz57
* Fix early unhighlight after Add to vocab builder (koreader#12288) @poire-z
* [CoverBrowser.MosaicMenu] Increase the thickness of the mosaic’s focus underline (koreader#12189) @Commodore64user
* doc: update building documentation (koreader#12295) @benoit-pierre
* NetworkMgr: fix debug trace (koreader#12297) @benoit-pierre
* Panel zoom: Properly handle `renderPage()` not rendering the whole page (koreader#12296) @fbriere
* PowerD: Keep track of frontlight state change by interactive callers for suspend/resume purposes (koreader#12283) @NiLuJe
* InputDialog and MultiInputDialog: improve enter and edit callback handling, and implement addWidget (koreader#12289) @ziz57
* ReaderSearch: "All text" improve (koreader#12287) @hius07
* Show/Hide Virtual keyboard and more keyboard shortcuts (koreader#12162) @Commodore64user
* bump base; mostly thirdparty bumps (koreader#12311) @benoit-pierre
* Document: Do not cache panel-zoom tiles to disk and fix their caching and rendering (koreader#12303) @NiLuJe
* Disable the legacy ReaderRotation module (koreader#12309) @NiLuJe
* bump luajit (koreader#12317) @benoit-pierre
* [AutoWarmth] Delay front light actions after resume (koreader#12315) @zwim
* Allow numbers in measure text: fixes a crash in table of contents when debugging on (koreader#12310) @zwim
* ReaderFooter: Add page-turn item (koreader#12249) @Commodore64user
* luajit launcher: out of tree build + don't rebuild luajit (koreader#12285) @benoit-pierre
* BookInfo: rating, review (koreader#12313) @hius07
* fix missing android APK asset (koreader#12333) @benoit-pierre
* ImageWidget: Don't attempt to pan if we haven't rendered the bb yet (koreader#12331) @NiLuJe
* OTM: Unbreak koreader#11999  (koreader#12337) @NiLuJe
* Kobo: Refactor suspend in order to be able to catch input events sent during the 2s window of ntx madness (koreader#12330) @NiLuJe
* [Menu] Remove title bar buttons from layout on hasSymKey or hasScreenKB (koreader#12328) @Commodore64user
* [doc] Build: update Android instructions to openjdk-17-jdk (koreader#12345) @Frenzie
* Support 'Ctrl' shortcuts on hasKeyboard (koreader#12347) @Commodore64user
* Annotations: fix page numbers (koreader#12324) @hius07
* Bug Fix: DPad conflict on Kindle Keyboard (koreader#12341) @Commodore64user
* Nit: Make some cache keys prettier (koreader#12354) @NiLuJe
* Dispatcher: minor wording fixes (koreader#12356) @hius07
* kodev rework (koreader#12338) @benoit-pierre
* czmq & libzmq: update to 4.2.1 & 4.3.5 respectively (koreader#12350) @benoit-pierre
* [TextViewer] Add hamburger menu to FocusManager and Menu key (koreader#12365) @Commodore64user
* ci: fix test / coverage (koreader#12367) @benoit-pierre
* A couple of tiny fixes (koreader#12359) @NiLuJe
* android: tweak update rule (koreader#12370) @benoit-pierre
* doc: update Android build instructions (koreader#12368) @benoit-pierre
* Display menu preview of italic-only fonts (koreader#12351) @charrarr
* ReaderStatus, Book status widget: cleanup (koreader#12343) @hius07
* ci/macos: fix homebrew packages install (koreader#12382) @benoit-pierre
* Fix terminal broken cursor and backspace (koreader#12375) @zwim
* Screensaver: add option to rotate to fit screen (koreader#12366) @charrarr
* Minor keyboard corrections (koreader#12372) @Commodore64user
* Touch menu: always go up to correct parent page (koreader#12378) @hius07
* Collections: fix context menu (koreader#12383) @hius07
* PDF: no "Contrast set to" notification on opening (koreader#12391) @hius07
* Closing Bookmark details dialog with X should also refresh list entry (koreader#12390) @fbriere
* Add numerical key_codes to event_map on kindle 3 (koreader#12358) @Commodore64user
* FocusManager: Fix focus_flags check in moveFocusTo, and deal with the fallout (koreader#12361) @NiLuJe
* Various notification, text editor and footnote popup minor fixes (koreader#12406) @poire-z
* Bug: Account for local reading order direction adjustments. (koreader#12388) @Commodore64user
* android: add custom `adb logcat` formatter (koreader#12385) @benoit-pierre
* kodev: improve `kodev prompt` (koreader#12408) @benoit-pierre
* kodev: fix `./kodev run android…` (koreader#12407) @benoit-pierre
* Readerfont: Current font on top in menu; New fonts from current session on top in font test doc (koreader#12410) @jonnyl2
* Fix a couple of potentially spurious footer refreshes (koreader#12422) @NiLuJe
* FileManager: Handle the FlushSettings event (koreader#12425) @NiLuJe
* PageBrowser: fix drawing of thicker thumbnail frame on tap (koreader#12432) @poire-z
* FileManagerSetDefaults: Handle strings that we default to nil (koreader#12433) @NiLuJe
* Input: Ignore ABS_X, ABS_Y & ABS_PRESSURE for snow_protocol (koreader#12427) @NiLuJe
* Add color highlight menu (koreader#11044) @smasher816
* Exporter: choose highlight styles to be exported (koreader#12431) @hius07
* ReaderView: Don't crash on pre-koreader#11044 highlights without a color field (koreader#12438) @NiLuJe
* Terminal fixes (koreader#12369) @ziz57
* Dispatcher/DeviceListener: Temporarily turn on Accelerometer/GSensor for 5 sec (koreader#12419) @jonnyl2
* fix bug preventing export to joplin; (koreader#12446) @bitterlox
* bump base: blitbuffer, android build, crengine (koreader#12451) @poire-z
* InputText: Unbreak onTapTextBox on an already in-focus field (koreader#12449) @NiLuJe
* Update el_popup.lua (koreader#12463) @ichnilatis-gr
* [Dispatcher] add [missing] conditions to dispatcher items (koreader#12453) @Commodore64user
* ReaderView: Fix a couple of edge-cases in onReaderFooterVisibilityChange (koreader#12466) @NiLuJe
* misc: Move cleanupSelectedText to util (koreader#12477) @NiLuJe
* ReaderHighlight: Fix an old typo in the OCR help string (koreader#12479) @NiLuJe
* Highlights popup dialog: add "Color" and "Details" buttons (koreader#12461) @hius07
* ButtonDialogTitle: remove (koreader#12394) @hius07
* [Dispatcher] new events for selecting links (koreader#12474) @Commodore64user
* Doc: Update quickstartguide on kindle non touch (koreader#12426) @Commodore64user
* [NT] Call GotoViewRel for page up/down on useDPadAsActionKeys devices (koreader#12495) @cccslater
* bump base (koreader#12503) @benoit-pierre
* Defaults: Deprecate DKOPTREADER_CONFIG_DOC_LANGS_TEXT (koreader#12504) @NiLuJe
* ReaderAnnotation: skip old highlights with invalid xpointers (koreader#12494) @hius07
* Cloud Sync: handles potentially incompatible backup and incoming dbs (koreader#12470) @weijiuqiao
* VocabBuilder.koplugin: Better handling word context (koreader#12469) @weijiuqiao
* Write highlights into PDF: revisited (koreader#12509) @hius07
* SyncService: Only require online connectivity when using Dropbox (koreader#12520) @NiLuJe
* Chore: Don't cache static data tables (ui/elements, ui/data, kb layouts & co) (koreader#12519) @NiLuJe
* Fix page gap inconsistencies between doc open & config change (koreader#12507) @NiLuJe
* Kindle: Restore hall effect sensor state on startup (koreader#12521) @NiLuJe
* VocabBuilder.koplugin: save dict headword as entry (koreader#12530) @weijiuqiao
* Add PocketBook Verse Pro Color (PB634K3) (koreader#12476) @ElimGarak1
* Onyx Boox Go 10.3 support (koreader#12533) @hugleo
* Statistics: fix null terminated strings, add toggle stats (koreader#12547) @hius07
* input: drop use of `ffi/input` (koreader#12486) @benoit-pierre
* ci/circle: fix tests parallelism (koreader#12551) @benoit-pierre
* input: fix kobo init (koreader#12553) @benoit-pierre
* [ReaderFooter] update status bar in real time when inverting page turning (koreader#12424) @Commodore64user
* input: fix pocketbook init (koreader#12555) @benoit-pierre
* use new `ffi.loadlib` helper (koreader#12545) @benoit-pierre
* input: fix loading of `fbink_input` library (koreader#12560) @benoit-pierre
* Fix typos in quickstart (koreader#12566) @cheywood
* File search: improve (koreader#12549) @hius07
* [DictQuickLookup] shortcuts for editing searches (koreader#12539) @Commodore64user
* Profiles: auto-execute on events (koreader#12564) @hius07
* Exporter: export to book folder, register to Dispatcher (koreader#12569) @hius07
* sdl: use our compiled version for the AppImage (koreader#12575) @benoit-pierre
* Add kobov4 & kobov5 targets (koreader#12568) @NiLuJe
* android: switch to monolibtic mode (koreader#12576) @benoit-pierre
* android: fix apkanalyzer location (koreader#12563) @benoit-pierre
* Disabled rotation map for Android devices where "hw media keys follow gravity" (koreader#12557) @jkl16
* Quickstart guide kindle illustrations (koreader#12577) @Commodore64user
* [plugin] Exporter: fix typo (koreader#12592) @Frenzie
* Dispatcher: values' range consistent with bottom menu (koreader#12580) @hius07
* metadata translations for fdroid/flathub (koreader#12581) @pazos
* ProgressWidget: fix misalignment (koreader#12526) @wbstx
* Add wifi support to Cervantes Touch Light devices (koreader#12148) @jsanpe
* ReaderTypeset: fix margins info (koreader#12609) @hius07
* DocSettingsTweak: apply to books with status (koreader#12606) @hius07
* Menu widget: rotation handler (koreader#12573) @hius07
* Profiles: add "on rotation" auto-execute event (koreader#12612) @hius07
* ReaderHighlight: adjustable "Edit highlight" dialog position (koreader#12599) @hius07
* KOSync/Kobo: Explicitly kill Wi-Fi on suspend (koreader#12616) @NiLuJe
* Kobo: Minor simplification after koreader#12616 (koreader#12629) @NiLuJe
* bump luajit-launcher (koreader#12630) @benoit-pierre
* Terminal: Minor cleanups (koreader#12631) @NiLuJe
* Menu widget: draw focus on focused item (koreader#12583) @hius07
* Cloud storage: fix sorting non-English filenames (koreader#12644) @hius07
* Text editor: show current line number (koreader#12632) @hius07
* InputText: fix Terminal plugin input (koreader#12652) @hius07
* ReaderFont test: Error correction -- new fonts were not rendering in own font (koreader#12646) @jonnyl2
* ReaderHighlight: fix color for extended highlight in pdf (koreader#12654) @hius07
* Kindle Scribe: fix elseif for orientation code (koreader#12663) @mergen3107
* Menu: Fix fallout from koreader#12583 on hasDPad devices (koreader#12657) @NiLuJe
* Misc: Some more FocusManager fallout (koreader#12667) @NiLuJe
* plugin messages (koreader#12636) @pazos
* And deprecation to autofrontlight (koreader#12619) @pazos
* Add deprecation for unmaintained targets (koreader#12620) @pazos
* Profiles: more auto-exec triggers (koreader#12651) @hius07
* PatchManagement: prettify menu (koreader#12668) @hius07
* Fix KOReader spelling in the code (koreader#12670) @mergen3107
* Update Building.md - meson install from backports (koreader#12680) @mergen3107
* OTA: Make the final ConfirmBox undismissable (koreader#12676) @NiLuJe
* Text editor: rotate (koreader#12658) @hius07
* Profiles: more auto-exec triggers 2 (koreader#12691) @hius07
* Add authentication request and cookies management for news (koreader#12496) @bateast
* calibre: always use custom fast parser (koreader#12714, koreader#12715) @pazos
* Add Nextcloud Notes to exporter plugin (koreader#12301) @kotnik
* [plugin] Wallabag: remove empty file when download fails (koreader#12723) @fenuks
* [plugin] Wallabag: separate option to delete ‘on hold’ articles (koreader#12722) @fenuks
* kopt: fix OCR segmentation mode (koreader#12726) @benoit-pierre
* bump base (koreader#12727) @benoit-pierre
   Most notably dropbear: update to 2024.85 (koreader/koreader-base#1964)
* bump android-luajit-launcher (koreader#12734) @pazos
* ci/circle: manually cap build jobs (koreader#12751) @benoit-pierre
* Adjust Minimum Font Size in Terminal Emulator (koreader#12752) @pphszx
* ReaderHighlight: Highlight menu, change 'Delete' to Trash can icon (koreader#12758) @jonnyl2

* @trash-pandy made their first contribution in koreader#12197
* @fbriere made their first contribution in koreader#12296
* @charrarr made their first contribution in koreader#12351
* @smasher816 made their first contribution in koreader#11044
* @bitterlox made their first contribution in koreader#12446
* @cccslater made their first contribution in koreader#12495
* @cheywood made their first contribution in koreader#12566
* @jkl16 made their first contribution in koreader#12557
* @wbstx made their first contribution in koreader#12526
* @jsanpe made their first contribution in koreader#12148
* @fenuks made their first contribution in koreader#12723
* @pphszx made their first contribution in koreader#12752

**Full Changelog**: koreader/koreader@v2024.07...v2024.11 — [closed milestone issues](https://github.com/koreader/koreader/milestone/74?closed=1)

---

**Installation instructions**: [Android](https://github.com/koreader/koreader/wiki/Installation-on-Android-devices) • [Cervantes](https://github.com/koreader/koreader/wiki/Installation-on-BQ-devices) • [ChromeOS](https://github.com/koreader/koreader/wiki/Installation-on-Chromebook-devices) • [Kindle](https://github.com/koreader/koreader/wiki/Installation-on-Kindle-devices) • [Kobo](https://github.com/koreader/koreader/wiki/Installation-on-Kobo-devices) • [PocketBook](https://github.com/koreader/koreader/wiki/Installation-on-PocketBook-devices) • [ReMarkable](https://github.com/koreader/koreader/wiki/Installation-on-ReMarkable) • [Desktop Linux](https://github.com/koreader/koreader/wiki/Installation-on-desktop-linux) • [MacOS](https://github.com/koreader/koreader/wiki/Installation-on-MacOS)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

FR: [Add more highlight color options]