1
0
mirror of https://git.tt-rss.org/git/tt-rss.git synced 2025-12-14 00:45:55 +00:00

misc fixes, rework hotkeys code placement

This commit is contained in:
Andrew Dolgov
2008-05-16 02:38:32 +01:00
parent 238eff0165
commit 93f66472ef
5 changed files with 434 additions and 426 deletions

View File

@@ -1,7 +1,6 @@
var hotkeys_enabled = true;
var debug_mode_enabled = false;
var xmlhttp_rpc = Ajax.getTransport();
var hotkey_prefix = false;
var hotkey_zone = 0;
/* add method to remove element from array */
@@ -209,428 +208,6 @@ function printLockingError() {
notify_info("Please wait until operation finishes.");
}
function hotkey_handler(e) {
try {
var keycode;
var shift_key = false;
var feedlist = document.getElementById('feedList');
try {
shift_key = e.shiftKey;
} catch (e) {
}
if (window.event) {
keycode = window.event.keyCode;
} else if (e) {
keycode = e.which;
}
if (keycode == 27) { // escape
if (Element.visible("hotkey_help_overlay")) {
Element.hide("hotkey_help_overlay");
}
hotkey_prefix = false;
closeInfoBox();
}
if (!hotkeys_enabled) {
debug("hotkeys disabled");
return;
}
if (keycode == 16) return; // ignore lone shift
if ((keycode == 70 || keycode == 67 || keycode == 71) && !hotkey_prefix) {
hotkey_prefix = keycode;
debug("KP: PREFIX=" + keycode);
return;
}
if (Element.visible("hotkey_help_overlay")) {
Element.hide("hotkey_help_overlay");
}
/* Global hotkeys */
if (!hotkey_prefix) {
if (keycode == 68 && shift_key) { // d
if (!debug_mode_enabled) {
document.getElementById('debug_output').style.display = 'block';
debug('debug mode activated');
} else {
document.getElementById('debug_output').style.display = 'none';
}
debug_mode_enabled = !debug_mode_enabled;
return;
}
if (keycode == 191 && shift_key) { // ?
if (!Element.visible("hotkey_help_overlay")) {
Element.show("hotkey_help_overlay");
} else {
Element.hide("hotkey_help_overlay");
}
return;
}
if (keycode == 191) { // /
return displayDlg("search", getActiveFeedId());
}
if (keycode == 74) { // j
var feed = getActiveFeedId();
var new_feed = getRelativeFeedId(feedlist, feed, 'prev');
if (new_feed) viewfeed(new_feed, '');
return;
}
if (keycode == 75) { // k
var feed = getActiveFeedId();
var new_feed = getRelativeFeedId(feedlist, feed, 'next');
if (new_feed) viewfeed(new_feed, '');
return;
}
if (keycode == 78 || keycode == 40) { // n, down
if (typeof moveToPost != 'undefined') {
return moveToPost('next');
}
}
if (keycode == 80 || keycode == 38) { // p, up
if (typeof moveToPost != 'undefined') {
return moveToPost('prev');
}
}
if (keycode == 83 && shift_key) { // S
var id = getActiveArticleId();
if (id) {
togglePub(id);
}
return;
}
if (keycode == 83) { // s
var id = getActiveArticleId();
if (id) {
toggleMark(id);
}
return;
}
if (keycode == 85) { // u
var id = getActiveArticleId();
if (id) {
toggleUnread(id);
}
return;
}
if (keycode == 84 && shift_key) { // t
var id = getActiveArticleId();
if (id) {
editArticleTags(id, getActiveFeedId(), isCdmMode());
}
}
if (keycode == 84) { // t
var id = getActiveArticleId();
if (id) {
var cb = document.getElementById("RCHK-" + id);
if (cb) {
cb.checked = !cb.checked;
toggleSelectRowById(cb, "RROW-" + id);
}
}
}
if (keycode == 79) { // o
if (getActiveArticleId()) {
openArticleInNewWindow(getActiveArticleId());
}
}
}
/* Prefix f */
if (hotkey_prefix == 70) { // f
hotkey_prefix = false;
if (keycode == 65) { // a
return toggleDispRead();
}
if (keycode == 85 && shift_key) { // r
return scheduleFeedUpdate(true);
}
if (keycode == 85) { // u
if (getActiveFeedId()) {
return viewfeed(getActiveFeedId(), "ForceUpdate");
}
}
if (keycode == 69) { // e
return editFeedDlg(getActiveFeedId());
}
if (keycode == 83) { // s
return displayDlg("quickAddFeed");
}
if (keycode == 67 && shift_key) { // C
if (typeof catchupAllFeeds != 'undefined') {
return catchupAllFeeds();
}
}
if (keycode == 67) { // c
if (getActiveFeedId()) {
return catchupCurrentFeed();
}
}
}
/* Prefix c */
if (hotkey_prefix == 67) { // c
hotkey_prefix = false;
if (keycode == 70) { // f
return displayDlg("quickAddFilter", getActiveFeedId());
}
if (keycode == 83) { // s
if (typeof collapse_feedlist != 'undefined') {
return collapse_feedlist();
}
}
}
/* Prefix g */
if (hotkey_prefix == 71) { // g
hotkey_prefix = false;
if (keycode == 83) { // s
return viewfeed(-1);
}
if (keycode == 80 && shift_key) { // P
return gotoPreferences();
}
if (keycode == 80) { // p
return viewfeed(-2);
}
if (keycode == 70) { // f
return viewfeed(-3);
}
}
/*
if (keycode == 48) { // 0
return setHotkeyZone(0);
}
if (keycode == 49) { // 1
return setHotkeyZone(1);
}
if (keycode == 50) { // 2
return setHotkeyZone(2);
}
if (keycode == 51) { // 3
return setHotkeyZone(3);
}
if (keycode == 82) { // r
return scheduleFeedUpdate(true);
}
if (keycode == 83) { // s
return displayDlg("search", getActiveFeedId());
}
if (keycode == 85) { // u
if (getActiveFeedId()) {
return viewfeed(getActiveFeedId(), "ForceUpdate");
}
}
if (keycode == 65) { // a
return toggleDispRead();
}
var feedlist = document.getElementById('feedList');
if (keycode == 74) { // j
var feed = getActiveFeedId();
var new_feed = getRelativeFeedId(feedlist, feed, 'prev');
if (new_feed) viewfeed(new_feed, '');
}
if (keycode == 75) { // k
var feed = getActiveFeedId();
var new_feed = getRelativeFeedId(feedlist, feed, 'next');
if (new_feed) viewfeed(new_feed, '');
}
if (shift_key && (keycode == 78 || keycode == 40)) { // shift - n, down
return catchupRelativeToArticle(1);
}
if (shift_key && (keycode == 80 || keycode == 38)) { // shift - p, up
return catchupRelativeToArticle(0);
}
if (keycode == 78 || keycode == 40) { // n, down
if (typeof moveToPost != 'undefined') {
return moveToPost('next');
}
}
if (keycode == 80 || keycode == 38) { // p, up
if (typeof moveToPost != 'undefined') {
return moveToPost('prev');
}
}
if (keycode == 68 && shift_key) { // d
if (!debug_mode_enabled) {
document.getElementById('debug_output').style.display = 'block';
debug('debug mode activated');
} else {
document.getElementById('debug_output').style.display = 'none';
}
debug_mode_enabled = !debug_mode_enabled;
}
if (keycode == 191 && shift_key) { // ?
if (!Element.visible("hotkey_help_overlay")) {
Element.show("hotkey_help_overlay");
} else {
Element.hide("hotkey_help_overlay");
}
}
if (keycode == 69 && shift_key) { // e
return editFeedDlg(getActiveFeedId());
}
if (keycode == 70 && shift_key) { // f
if (getActiveFeedId()) {
return catchupCurrentFeed();
}
}
if (keycode == 80 && shift_key) { // p
if (getActiveFeedId()) {
return catchupPage();
}
}
if (keycode == 86) { // v
if (getActiveArticleId()) {
openArticleInNewWindow(getActiveArticleId());
}
}
if (keycode == 84) { // t
var id = getActiveArticleId();
if (id) {
var cb = document.getElementById("RCHK-" + id);
if (cb) {
cb.checked = !cb.checked;
toggleSelectRowById(cb, "RROW-" + id);
}
}
}
if (keycode == 67) { // c
var id = getActiveArticleId();
if (id) {
toggleUnread(id, 0);
}
}
if (keycode == 67 && shift_key) { // c
if (typeof collapse_feedlist != 'undefined') {
return collapse_feedlist();
}
}
if (keycode == 81 && shift_key) { // shift + q
if (typeof catchupAllFeeds != 'undefined') {
return catchupAllFeeds();
}
}
if (keycode == 73 && shift_key) { // shift + i
if (document.getElementById("subtoolbar_search")) {
if (Element.visible("subtoolbar_search")) {
Element.hide("subtoolbar_search");
Element.show("subtoolbar_ftitle");
setTimeout("Element.focus('subtoolbar_search_box')", 100);
} else {
Element.show("subtoolbar_search");
Element.hide("subtoolbar_ftitle");
}
}
}
if (keycode == 27) { // escape
if (Element.visible("hotkey_help_overlay")) {
Element.hide("hotkey_help_overlay");
}
} */
if (typeof localHotkeyHandler != 'undefined') {
try {
return localHotkeyHandler(e);
} catch (e) {
exception_error("hotkey_handler, local:", e);
}
}
if (hotkey_prefix) {
debug("KP: PREFIX=" + hotkey_prefix + " CODE=" + keycode);
} else {
debug("KP: CODE=" + keycode);
}
} catch (e) {
exception_error("hotkey_handler", e);
}
}
function cleanSelectedList(element) {
var content = document.getElementById(element);