www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | Submodules | README | LICENSE

commit 0d4025e9fbd4fd532db4f381612d6e2ede861c3a
parent 05c0f1f3fc18c2a52ef69ca8f2c5fc08b894468b
Author: Adomas VenĨkauskas <adomas.ven@gmail.com>
Date:   Thu, 11 Feb 2016 10:37:20 +0000

Add preferences for feed sorting and toggle read hotkey

Diffstat:
Mchrome/content/zotero/preferences/preferences_advanced.js | 5++++-
Mchrome/content/zotero/preferences/preferences_advanced.xul | 23+++++++++++++++--------
Mchrome/content/zotero/preferences/preferences_advanced_firefox.xul | 6+++---
Mchrome/content/zotero/preferences/preferences_general.xul | 14++++++++++++++
Mchrome/content/zotero/xpcom/itemTreeView.js | 2+-
Mchrome/content/zotero/zoteroPane.js | 43++++++++++++++++++++++++-------------------
Mchrome/locale/en-US/zotero/preferences.dtd | 6++++++
Mdefaults/preferences/zotero.js | 4+++-
8 files changed, 70 insertions(+), 33 deletions(-)

diff --git a/chrome/content/zotero/preferences/preferences_advanced.js b/chrome/content/zotero/preferences/preferences_advanced.js @@ -815,7 +815,10 @@ Zotero_Preferences.Keys = { var rows = document.getElementById('zotero-prefpane-advanced-keys-tab').getElementsByTagName('row'); for (var i=0; i<rows.length; i++) { // Display the appropriate modifier keys for the platform - rows[i].firstChild.nextSibling.value = Zotero.isMac ? Zotero.getString('general.keys.cmdShift') : Zotero.getString('general.keys.ctrlShift'); + let label = rows[i].firstChild.nextSibling; + if (label.className == 'cmd-shift') { + label.value = Zotero.isMac ? Zotero.getString('general.keys.cmdShift') : Zotero.getString('general.keys.ctrlShift'); + } } var textboxes = document.getElementById('zotero-keys-rows').getElementsByTagName('textbox'); diff --git a/chrome/content/zotero/preferences/preferences_advanced.xul b/chrome/content/zotero/preferences/preferences_advanced.xul @@ -46,6 +46,7 @@ <preference id="pref-keys-toggleTagSelector" name="extensions.zotero.keys.toggleTagSelector" type="string"/> <preference id="pref-keys-newItem" name="extensions.zotero.keys.newItem" type="string"/> <preference id="pref-keys-newNote" name="extensions.zotero.keys.newNote" type="string"/> + <preference id="pref-keys-toggleRead" name="extensions.zotero.keys.toggleRead" type="string"/> <preference id="pref-keys-importFromClipboard" name="extensions.zotero.keys.importFromClipboard" type="string"/> <preference id="pref-keys-copySelectedItemCitationsToClipboard" name="extensions.zotero.keys.copySelectedItemCitationsToClipboard" type="string"/> <preference id="pref-keys-copySelectedItemsToClipboard" name="extensions.zotero.keys.copySelectedItemsToClipboard" type="string"/> @@ -217,37 +218,37 @@ <rows id="zotero-keys-rows"> <row id="zotero-keys-new-item"> <label value="&zotero.preferences.keys.newItem;" control="textbox-newItem"/> - <label/> + <label class="cmd-shift"/> <textbox id="textbox-newItem" maxlength="1" size="1" preference="pref-keys-newItem"/> </row> <row> <label value="&zotero.preferences.keys.newNote;" control="textbox-newNote"/> - <label/> + <label class="cmd-shift"/> <textbox id="textbox-newNote" maxlength="1" size="1" preference="pref-keys-newNote"/> </row> <row> <label value="&zotero.preferences.keys.importFromClipboard;" control="textbox-importFromClipboard"/> - <label/> + <label class="cmd-shift"/> <textbox id="textbox-importFromClipboard" maxlength="1" size="1" preference="pref-keys-importFromClipboard"/> </row> <row id="zotero-keys-focus-libraries-pane"> <label value="&zotero.preferences.keys.focusLibrariesPane;" control="textbox-library"/> - <label/> + <label class="cmd-shift"/> <textbox id="textbox-library" maxlength="1" size="1" preference="pref-keys-library"/> </row> <row> <label value="&zotero.preferences.keys.quicksearch;" control="textbox-quicksearch"/> - <label/> + <label class="cmd-shift"/> <textbox id="textbox-quicksearch" maxlength="1" size="1" preference="pref-keys-quicksearch"/> </row> <row> <label value="&zotero.preferences.keys.copySelectedItemCitationsToClipboard;" control="textbox-copySelectedItemCitationsToClipboard"/> - <label/> + <label class="cmd-shift"/> <textbox id="textbox-copySelectedItemCitationsToClipboard" maxlength="1" size="1" preference="pref-keys-copySelectedItemCitationsToClipboard" onchange="if (Zotero_Preferences.Export) { Zotero_Preferences.Export.updateQuickCopyInstructions(); }"/> @@ -255,7 +256,7 @@ <row> <label value="&zotero.preferences.keys.copySelectedItemsToClipboard;" control="textbox-copySelectedItemsToClipboard"/> - <label/> + <label class="cmd-shift"/> <textbox id="textbox-copySelectedItemsToClipboard" maxlength="1" size="1" preference="pref-keys-copySelectedItemsToClipboard" onchange="if (Zotero_Preferences.Export) { Zotero_Preferences.Export.updateQuickCopyInstructions(); }"/> @@ -263,9 +264,15 @@ <row> <label value="&zotero.preferences.keys.toggleTagSelector;" control="textbox-toggleTagSelector"/> - <label/> + <label class="cmd-shift"/> <textbox id="textbox-toggleTagSelector" maxlength="1" size="1" preference="pref-keys-toggleTagSelector"/> </row> + + <row> + <label value="&zotero.preferences.keys.toggleRead;" control="textbox-toggleRead"/> + <label/> + <textbox id="textbox-toggleRead" maxlength="1" size="1" preference="pref-keys-toggleRead"/> + </row> </rows> </grid> diff --git a/chrome/content/zotero/preferences/preferences_advanced_firefox.xul b/chrome/content/zotero/preferences/preferences_advanced_firefox.xul @@ -51,19 +51,19 @@ <rows id="zotero-keys-rows"> <row insertbefore="zotero-keys-new-item"> <label value="&zotero.preferences.keys.openZotero;" control="key-textbox-openZotero"/> - <label/> + <label class="cmd-shift"/> <textbox id="textbox-openZotero" maxlength="1" size="1" preference="pref-keys-openZotero"/> </row> <row insertbefore="zotero-keys-new-item"> <label value="&zotero.preferences.keys.toggleFullscreen;" control="textbox-toggleFullscreen"/> - <label/> + <label class="cmd-shift"/> <textbox id="textbox-toggleFullscreen" maxlength="1" size="1" preference="pref-keys-toggleFullscreen"/> </row> <row insertbefore="zotero-keys-new-item"> <label value="&zotero.preferences.keys.saveToZotero;" control="key-textbox-saveToZotero"/> - <label/> + <label class="cmd-shift"/> <textbox id="textbox-saveToZotero" maxlength="1" size="1" preference="pref-keys-saveToZotero"/> </row> </rows> diff --git a/chrome/content/zotero/preferences/preferences_general.xul b/chrome/content/zotero/preferences/preferences_general.xul @@ -43,6 +43,8 @@ <preference id="pref-groups-copyChildFileAttachments" name="extensions.zotero.groups.copyChildFileAttachments" type="bool"/> <preference id="pref-groups-copyChildLinks" name="extensions.zotero.groups.copyChildLinks" type="bool"/> <preference id="pref-groups-copyTags" name="extensions.zotero.groups.copyTags" type="bool"/> + + <preference id="pref-feeds-sortAsc" name="extensions.zotero.feeds.sortAsc" type="bool"/> </preferences> <groupbox id="zotero-prefpane-general-groupbox"> @@ -130,6 +132,18 @@ </vbox> </groupbox> + <groupbox> + <caption label="&zotero.preferences.feeds;"/> + + <label value="&zotero.preferences.feeds.sorting;"/> + <vbox style="margin-left: 2em"> + <radiogroup id="feed-sort" orient="horizontal" align="center" preference="pref-feeds-sortAsc"> + <radio label="&zotero.preferences.feeds.sorting.newestFirst;" value="false"/> + <radio label="&zotero.preferences.feeds.sorting.oldestFirst;" value="true"/> + </radiogroup> + </vbox> + </groupbox> + <separator/> <separator/> </prefpane> diff --git a/chrome/content/zotero/xpcom/itemTreeView.js b/chrome/content/zotero/xpcom/itemTreeView.js @@ -2137,7 +2137,7 @@ Zotero.ItemTreeView.prototype.getSortFields = function () { */ Zotero.ItemTreeView.prototype.getSortDirection = function() { if (this.collectionTreeRow.isFeed) { - return Zotero.Prefs.get('feedSortAsc') ? 'ascending' : 'descending'; + return Zotero.Prefs.get('feeds.sortAsc') ? 'ascending' : 'descending'; } var column = this._treebox.columns.getSortedColumn(); if (!column) { diff --git a/chrome/content/zotero/zoteroPane.js b/chrome/content/zotero/zoteroPane.js @@ -512,17 +512,6 @@ var ZoteroPane = new function() } ZoteroPane_Local.collectionsView.setHighlightedRows(); return; - } else if (event.keyCode == event.DOM_VK_BACK_QUOTE) { - // Toggle read/unread - let row = this.collectionsView.getRow(this.collectionsView.selection.currentIndex); - if (!row || !row.isFeed()) return; - if(itemReadTimeout) { - itemReadTimeout.cancel(); - itemReadTimeout = null; - } - - let itemIDs = this.getSelectedItems(true); - Zotero.FeedItems.toggleReadByID(itemIDs); } } } @@ -564,6 +553,11 @@ var ZoteroPane = new function() event.preventDefault(); return; } + + var key = String.fromCharCode(event.which); + if (key) { + var command = Zotero.Keys.getCommand(key); + } if (from == 'zotero-collections-tree') { if ((event.keyCode == event.DOM_VK_BACK_SPACE && Zotero.isMac) || @@ -577,7 +571,7 @@ var ZoteroPane = new function() else if (from == 'zotero-items-tree') { // Focus TinyMCE explicitly on tab key, since the normal focusing // doesn't work right - if (!event.shiftKey && event.keyCode == event.DOM_VK_TAB) { + if (!event.shiftKey && event.keyCode == String.fromCharCode(event.which)) { var deck = document.getElementById('zotero-item-pane-content'); if (deck.selectedPanel.id == 'zotero-view-note') { setTimeout(function () { @@ -607,25 +601,36 @@ var ZoteroPane = new function() //event.stopPropagation(); return; } + else if (command == 'toggleRead') { + // Toggle read/unread + let row = this.collectionsView.getRow(this.collectionsView.selection.currentIndex); + if (!row || !row.isFeed()) return; + if(itemReadTimeout) { + itemReadTimeout.cancel(); + itemReadTimeout = null; + } + + let itemIDs = this.getSelectedItems(true); + Zotero.FeedItems.toggleReadByID(itemIDs); + return; + } } - var key = String.fromCharCode(event.which); - if (!key) { - Zotero.debug('No key'); + // Ignore modifiers other than Ctrl-Shift/Cmd-Shift + if (!((Zotero.isMac ? event.metaKey : event.ctrlKey) && event.shiftKey)) { return; } - // Ignore modifiers other than Ctrl-Shift/Cmd-Shift - if (!((Zotero.isMac ? event.metaKey : event.ctrlKey) && event.shiftKey)) { + if (!key) { + Zotero.debug('No key'); return; } - var command = Zotero.Keys.getCommand(key); if (!command) { return; } - Zotero.debug(command); + Zotero.debug('Keyboard shortcut: ', command); // Errors don't seem to make it out otherwise try { diff --git a/chrome/locale/en-US/zotero/preferences.dtd b/chrome/locale/en-US/zotero/preferences.dtd @@ -39,6 +39,11 @@ <!ENTITY zotero.preferences.groups.childLinks "child links"> <!ENTITY zotero.preferences.groups.tags "tags"> +<!ENTITY zotero.preferences.feeds "Feeds"> +<!ENTITY zotero.preferences.feeds.sorting "Sorting"> +<!ENTITY zotero.preferences.feeds.sorting.newestFirst "Newest Item First"> +<!ENTITY zotero.preferences.feeds.sorting.oldestFirst "Oldest Item First"> + <!ENTITY zotero.preferences.openurl.caption "OpenURL"> <!ENTITY zotero.preferences.openurl.search "Search for resolvers"> @@ -133,6 +138,7 @@ <!ENTITY zotero.preferences.keys.quicksearch "Quick Search"> <!ENTITY zotero.preferences.keys.newItem "Create a New Item"> <!ENTITY zotero.preferences.keys.newNote "Create a New Note"> +<!ENTITY zotero.preferences.keys.toggleRead "Mark Item Read/Unread"> <!ENTITY zotero.preferences.keys.toggleTagSelector "Toggle Tag Selector"> <!ENTITY zotero.preferences.keys.copySelectedItemCitationsToClipboard "Copy Selected Item Citations to Clipboard"> <!ENTITY zotero.preferences.keys.copySelectedItemsToClipboard "Copy Selected Items to Clipboard"> diff --git a/defaults/preferences/zotero.js b/defaults/preferences/zotero.js @@ -52,6 +52,8 @@ pref("extensions.zotero.groups.copyChildFileAttachments", true); pref("extensions.zotero.groups.copyChildNotes", true); pref("extensions.zotero.groups.copyTags", true); +pref("extensions.zotero.feeds.sortAsc", false); + pref("extensions.zotero.backup.numBackups", 2); pref("extensions.zotero.backup.interval", 1440); @@ -62,7 +64,6 @@ pref("extensions.zotero.lastLongTagMode", 0); pref("extensions.zotero.lastLongTagDelimiter", ";"); pref("extensions.zotero.fallbackSort", 'firstCreator,date,title,dateAdded'); -pref("extensions.zotero.feedSortAsc", false); pref("extensions.zotero.sortCreatorAsString", false); //Tag Cloud @@ -81,6 +82,7 @@ pref("extensions.zotero.keys.copySelectedItemCitationsToClipboard", 'A'); pref("extensions.zotero.keys.copySelectedItemsToClipboard", 'C'); pref("extensions.zotero.keys.toggleTagSelector", 'T'); pref("extensions.zotero.keys.sync", 'Y'); +pref("extensions.zotero.keys.toggleRead", '`'); // Fulltext indexing pref("extensions.zotero.fulltext.textMaxLength", 500000);