fileman: Add utils submenu, implement jumping among files

master
Pavel Machek 2025-06-04 20:24:29 +02:00
parent 896be4bf64
commit 8055959192
1 changed files with 24 additions and 5 deletions

View File

@ -65,11 +65,30 @@ function visit_file(fn) {
E.showMenu(menu); E.showMenu(menu);
} }
function drawUtilMenu() { function showFree() {
var free = (require("Storage").getFree() / (1024*1024)).toFixed(2) + " MB\n"; var free = (require("Storage").getFree() / (1024*1024)).toFixed(2) + " MB\n";
E.showAlert(free).then( function() { drawMenu(); } ); E.showAlert(free).then( function() { drawMenu(); } );
} }
function jumpTo(v) {
nstart = Math.round((v/100)*files.length);
if (nstart >= files.length) { nstart = 0; }
drawMenu();
}
function drawUtilMenu() {
var menu = {
'' : {'title' : "Utils"}
};
menu['Show free'] = showFree;
for (let i=0; i<10; i++) {
let v = i*10;
menu['Jump to '+v+'%'] = function() { jumpTo(v); };
}
menu['< Back'] = drawMenu;
E.showMenu(menu);
}
function drawMenu() { function drawMenu() {
nend = (nstart+n<files.length)?nstart+n : files.length; nend = (nstart+n<files.length)?nstart+n : files.length;
var menu = { var menu = {
@ -80,17 +99,17 @@ function drawMenu() {
if (nstart<0) nstart = files.length-n>0 ? files.length-n : 0; if (nstart<0) nstart = files.length-n>0 ? files.length-n : 0;
menu = {}; menu = {};
drawMenu(); drawMenu();
} };
menu["> next"] = function() { menu["> next"] = function() {
if (nstart+n<files.length) nstart += n; if (nstart+n<files.length) nstart += n;
else nstart = 0; else nstart = 0;
menu = {}; menu = {};
drawMenu(); drawMenu();
m.move(-1); m.move(-1);
} };
menu["..."] = function() { menu["[utils...]"] = function() {
drawUtilMenu(); drawUtilMenu();
} };
for (var i=nstart; i<nend; ++i) { for (var i=nstart; i<nend; ++i) {
menu[files[i]] = visit_file.bind(null, files[i]); menu[files[i]] = visit_file.bind(null, files[i]);
} }