Make move_to_nondeleted() generic, allowing the stopping criteria to be
passed in.
move_to_unnamed replaces move-to-deleted's bindings on N, P, H, and L.
Move-to-deleted in turn moves behind an 'm' prefix.
-function move_to_nondeleted(direction) {
+function move_by_filter(direction, filter) {
+ // Keep moving in direction until filter is satisfied
do {
input_index += direction;
do {
input_index += direction;
- } while (picinfo[files[input_index]].deleted);
say(input_index + " " + (picinfo[files[input_index]].name || ""));
setpic();
}
say(input_index + " " + (picinfo[files[input_index]].name || ""));
setpic();
}
+function move(direction) {
+ move_by_filter(direction, function() { return true; });
+}
+function move_to_nondeleted(direction) {
+ move_by_filter(direction, function() {
+ return !("deleted" in picinfo[files[input_index]]); });
+}
+function move_to_unnamed(direction) {
+ move_by_filter(direction, function() {
+ return !("deleted" in picinfo[files[input_index]]) &&
+ !("name" in picinfo[files[input_index]]); });
+}
function mark_deleted() {
picinfo[files[input_index]].deleted = 1;
function mark_deleted() {
picinfo[files[input_index]].deleted = 1;
Mousetrap.bind('Z', function() { $("#pic").toggleClass("fit_view"); });
Mousetrap.bind(['n', 'l'], function() { move_to_nondeleted(1); });
Mousetrap.bind(['p', 'h'], function() { move_to_nondeleted(-1); });
Mousetrap.bind('Z', function() { $("#pic").toggleClass("fit_view"); });
Mousetrap.bind(['n', 'l'], function() { move_to_nondeleted(1); });
Mousetrap.bind(['p', 'h'], function() { move_to_nondeleted(-1); });
-Mousetrap.bind(['N', 'L'], function() { input_index ++; say(input_index); setpic(); });
-Mousetrap.bind(['P', 'H'], function() { input_index --; say(input_index); setpic(); });
+Mousetrap.bind(['N', 'L'], function() { move_to_unnamed(1); });
+Mousetrap.bind(['P', 'H'], function() { move_to_unnamed(-1); });
+Mousetrap.bind(['m n', 'm l'], function() { move(1); });
+Mousetrap.bind(['m n', 'm h'], function() { move(-1); });
Mousetrap.bind(['b', 'k'], function() { change_exposure(1); });
Mousetrap.bind(['d', 'j'], function() { change_exposure(-1); });
Mousetrap.bind('x', mark_deleted);
Mousetrap.bind(['b', 'k'], function() { change_exposure(1); });
Mousetrap.bind(['d', 'j'], function() { change_exposure(-1); });
Mousetrap.bind('x', mark_deleted);