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:
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);