DB changes:
1) Add link columns to "normalized" tables. All such in-memory tables have an attribute self.link_map.
2) Add API to set and get links for fields
3) get_metadata now includes an attribute giving the link maps for the book. Book link maps are cached.
4) ProxyMetadata can return link maps
5) Added a test for the API.
URL Scheme:
1) Added a "book-details" URL that asks calibre to open a book info window on a book in some library
Book Details:
1) You can now have multiple book info windows.
2) If an item as an associated link then that link is made available using "(item link)" link text.
3) Book info windows on books in other libraries have no links
UI:
1) the Manage Category editor presents a fourth column for links.
OPF:
1) The OPF used for backing up (metadata.opf) contains the link map for the book. Currently this isn't used, but it should be used in recover_database. I didn't do anything with OPF3.
1) If the user presses ESC, ask "are you sure" if the template has changed.
2) Fix syntax highlighting of comments
3) Improve the python template example in the template docs, better using the new_api.
Tag browser: When searching the Tag browser allow also filtering the book list to show only books that match one of the categories currently shown in the Tag browser. To use enable the two Preferences: Preferences->Look & feel->Tag browser->Hide empty categories and Find shows all items that match. Then when searching the Tag browser, press Ctrl+Alt+Shift+F to restrict the displayed books.
Fixes#1989813
Done using a new Virtual Field, in_tag_browser that is searchable using 'in_tag_browser:true' (or false or ...).
The feature is discoverable through a new menu item in Configure tag browser: Filter book lists. This menu item can be 'clicked' using a shortcut key.