git-svn-id: svn://db.shs.com.ru/pip@228 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5

This commit is contained in:
2016-08-18 08:12:43 +00:00
parent 9480d209b4
commit 2ff58602fe
5 changed files with 71 additions and 130 deletions

View File

@@ -38,6 +38,11 @@ bool FileManager::TileDir::keyEvent(PIKbdListener::KeyEvent key) {
actionRequest(remote, Copy, selectedNames());
}
break;
case PIKbdListener::F6:
if (key.modifiers[PIKbdListener::Shift]) {
askQuestion("Crypt selected files?");
}
break;
case PIKbdListener::F7:
nd = askNewDir();
setFocus();
@@ -121,7 +126,7 @@ void FileManager::TileDir::showReading() {
void FileManager::TileDir::setContent(const PIVector<PIFile::FileInfo> & l) {
PIMutexLocker ml(e_mutex);
PIVector<PIFile::FileInfo> el = dir.entries(), fl, dl;
PIVector<PIFile::FileInfo> fl, dl;
entries.clear();
if (l.isEmpty()) {
PIFile::FileInfo fi;
@@ -326,108 +331,5 @@ void FileManager::keyEvent(PIKbdListener::KeyEvent key) {
break;
default: break;
}
/*if (!enabled) return;
if (key.key == 'D') {
if (cur >= files.size_s() || cur < 0) return;
if (del_commit) {
piForeachC (PIString & f, selected) {
PIFile::remove(dir.absolutePath() + PIDir::separator + f);
//piCout << "remove" << (dir.absolutePath() + PIDir::separator + f);
}
selected.clear();
updateDir();
console.clearCustomStatus();
del_commit = false;
} else {
if (selected.isEmpty()) selected << files[cur].path;
console.addCustomStatus("Delete " + PIString(selected.size_s()) + " file, are you sure? D as yes");
del_commit = true;
}
updateConsole();
return;
}
console.clearCustomStatus();
del_commit = false;
PIStringList nsel;
switch (key.key) {
case PIKbdListener::UpArrow:
cur--;
if (cur < 0) cur = 0;
if (cur - offset < 3) offset--;
if (offset < 0) offset = 0;
updateConsole();
break;
case PIKbdListener::Space:
if (cur < 0 || cur >= files.size_s()) return;
if (selected.contains(files[cur].path)) selected.removeOne(files[cur].path);
else selected << files[cur].path;
case PIKbdListener::DownArrow:
cur++;
if (cur >= files.size_s()) cur = files.size_s() - 1;
if (cur - offset >= height - 3) offset++;
if (offset >= files.size_s() - height) offset = files.size_s() - height;
updateConsole();
//piCout << offset << files.size_s() << height;
break;
case PIKbdListener::Home:
cur = offset = 0;
updateConsole();
break;
case PIKbdListener::End:
cur = files.size_s() - 1;
offset = files.size_s() - height;
updateConsole();
//piCout << offset << files.size_s() << height;
break;
case PIKbdListener::Return:
if (cur < files.size_s() && cur >= 0) {
piCout << files[cur];
if (files[cur].isDir()) {
prev_pos[dir.path()] = cur;
prev_off[dir.path()] = offset;
dir.cd(files[cur].name());
cur = prev_pos.value(dir.path(), 0);
offset = prev_off.value(dir.path(), 0);
selected.clear();
updateDir();
updateConsole();
}
}
break;
case 'A':
selected.clear();
piForeach (PIFile::FileInfo & e, files)
selected << e.path;
updateConsole();
break;
case 'R':
updateDir();
piForeach (PIFile::FileInfo & e, files)
if (selected.contains(e.path))
nsel << e.path;
selected = nsel;
updateConsole();
break;
case PIKbdListener::Esc:
//selected.clear();
//updateConsole();
menuRequest();
break;
default: break;
}*/
}
void FileManager::updateConsole() {
/*if (!enabled) return;
startTab(2);
console.addString("File manager", 1, Yellow | Inverse);
console.addString("Path: " + dir.absolutePath(), 1, Green | Inverse | Bold);
console.addString("Name", 1, Green | Inverse | Bold);
console.addString(" ", 2, Yellow | Inverse);
console.addString(" ", 2, Green | Inverse);
console.addString(" ", 2, Green | Inverse);
buildNames();
console.addString("A - select all, D - remove, R - refresh, Esc - exit", 1, Green | Inverse | Bold);
finishTab();*/
}