Add menu option to toggle dark mode for reader content

This commit is contained in:
Martynas Bagdonas 2024-01-18 21:20:03 +02:00 committed by Dan Stillman
parent c549a96834
commit c208325aeb
6 changed files with 19 additions and 2 deletions

View file

@ -557,6 +557,8 @@ const ZoteroStandalone = new function() {
} }
this.updateMenuItemCheckmark('view-menuitem-split-vertically', reader.splitType === 'vertical'); this.updateMenuItemCheckmark('view-menuitem-split-vertically', reader.splitType === 'vertical');
this.updateMenuItemCheckmark('view-menuitem-split-horizontally', reader.splitType === 'horizontal'); this.updateMenuItemCheckmark('view-menuitem-split-horizontally', reader.splitType === 'horizontal');
this.updateMenuItemCheckmark('view-menuitem-use-dark-mode-for-content', Zotero.Prefs.get('reader.useDarkModeForContent'));
this.updateMenuItemEnabled('view-menuitem-use-dark-mode-for-content', window.matchMedia('(prefers-color-scheme: dark)').matches);
} }
// Layout mode // Layout mode

View file

@ -215,6 +215,7 @@ class ReaderInstance {
...Zotero.Intl.getPrefixedStrings('pdfReader.') ...Zotero.Intl.getPrefixedStrings('pdfReader.')
}, },
showAnnotations: true, showAnnotations: true,
useDarkModeForContent: Zotero.Prefs.get('reader.useDarkModeForContent'),
fontFamily: Zotero.Prefs.get('reader.ebookFontFamily'), fontFamily: Zotero.Prefs.get('reader.ebookFontFamily'),
onOpenContextMenu: () => { onOpenContextMenu: () => {
// Functions can only be passed over wrappedJSObject (we call back onClick for context menu items) // Functions can only be passed over wrappedJSObject (we call back onClick for context menu items)
@ -507,6 +508,7 @@ class ReaderInstance {
this._prefObserverIDs = [ this._prefObserverIDs = [
Zotero.Prefs.registerObserver('fontSize', this._handleFontSizeChange), Zotero.Prefs.registerObserver('fontSize', this._handleFontSizeChange),
Zotero.Prefs.registerObserver('tabs.title.reader', this._handleTabTitlePrefChange), Zotero.Prefs.registerObserver('tabs.title.reader', this._handleTabTitlePrefChange),
Zotero.Prefs.registerObserver('reader.useDarkModeForContent', this._handleContentDarkModeChange),
Zotero.Prefs.registerObserver('reader.ebookFontFamily', this._handleFontFamilyChange), Zotero.Prefs.registerObserver('reader.ebookFontFamily', this._handleFontFamilyChange),
]; ];
@ -832,6 +834,10 @@ class ReaderInstance {
await this.updateTitle(); await this.updateTitle();
}; };
_handleContentDarkModeChange = () => {
this._internalReader.useDarkModeForContent(Zotero.Prefs.get('reader.useDarkModeForContent'));
};
_handleFontFamilyChange = () => { _handleFontFamilyChange = () => {
this._internalReader.setFontFamily(Zotero.Prefs.get('reader.ebookFontFamily')); this._internalReader.setFontFamily(Zotero.Prefs.get('reader.ebookFontFamily'));
}; };

View file

@ -515,7 +515,14 @@
oncommand="ZoteroStandalone.currentReader.toggleVerticalSplit()" oncommand="ZoteroStandalone.currentReader.toggleVerticalSplit()"
/> />
<menuseparator class="menu-type-reader"/> <menuseparator class="menu-type-reader"/>
<menuitem
id="view-menuitem-use-dark-mode-for-content"
class="menu-type-reader"
type="checkbox"
label="&zotero.pdfReader.useDarkModeForContent;"
oncommand="Zotero.Prefs.set('reader.useDarkModeForContent', !Zotero.Prefs.get('reader.useDarkModeForContent'))"
/>
<menuseparator class="menu-type-reader"/>
<menu id="layout-menu" label="&layout.label;"> <menu id="layout-menu" label="&layout.label;">
<menupopup oncommand="ZoteroStandalone.onViewMenuItemClick(event)"> <menupopup oncommand="ZoteroStandalone.onViewMenuItemClick(event)">
<menuitem <menuitem

View file

@ -333,3 +333,4 @@
<!ENTITY zotero.pdfReader.transferFromPDF "Import Annotations…"> <!ENTITY zotero.pdfReader.transferFromPDF "Import Annotations…">
<!ENTITY zotero.pdfReader.rotatePageLeft "Rotate Page Left"> <!ENTITY zotero.pdfReader.rotatePageLeft "Rotate Page Left">
<!ENTITY zotero.pdfReader.rotatePageRight "Rotate Page Right"> <!ENTITY zotero.pdfReader.rotatePageRight "Rotate Page Right">
<!ENTITY zotero.pdfReader.useDarkModeForContent "Use Dark Mode for Content">

View file

@ -219,6 +219,7 @@ pref("extensions.zotero.scaffold.eslint.enabled", true);
pref("extensions.zotero.tabs.title.reader", "titleCreatorYear"); pref("extensions.zotero.tabs.title.reader", "titleCreatorYear");
// Reader // Reader
pref("extensions.zotero.reader.useDarkModeForContent", true);
pref("extensions.zotero.reader.ebookFontFamily", "Georgia, serif"); pref("extensions.zotero.reader.ebookFontFamily", "Georgia, serif");
// Set color scheme to auto by default // Set color scheme to auto by default

2
reader

@ -1 +1 @@
Subproject commit 4b0c629ee10df3978abd84b665954b16fb176aeb Subproject commit 6a281b397531825a5bd973f0e8260eeb1c62b44d