Add preferences for feed sorting and toggle read hotkey

This commit is contained in:
Adomas Venčkauskas 2016-02-11 10:37:20 +00:00 committed by Dan Stillman
parent 05c0f1f3fc
commit 0d4025e9fb
8 changed files with 71 additions and 34 deletions

View File

@ -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');

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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) {

View File

@ -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,12 +601,19 @@ var ZoteroPane = new function()
//event.stopPropagation();
return;
}
}
var key = String.fromCharCode(event.which);
if (!key) {
Zotero.debug('No key');
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;
}
}
// Ignore modifiers other than Ctrl-Shift/Cmd-Shift
@ -620,12 +621,16 @@ var ZoteroPane = new function()
return;
}
var command = Zotero.Keys.getCommand(key);
if (!key) {
Zotero.debug('No key');
return;
}
if (!command) {
return;
}
Zotero.debug(command);
Zotero.debug('Keyboard shortcut: ', command);
// Errors don't seem to make it out otherwise
try {

View File

@ -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">

View File

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