disallow changing selection while editing perms

fixes #45
This commit is contained in:
joshuaboud 2022-10-26 17:38:42 -03:00
parent f91fd9aea0
commit c6f132bcb5
No known key found for this signature in database
GPG Key ID: 17EFB59E2A8BF50E

View File

@ -210,6 +210,8 @@ export class NavWindow {
} }
clear_selected() { clear_selected() {
if (this.editing_permissions)
return;
for (let entry of this.selected_entries) { for (let entry of this.selected_entries) {
entry.unstyle_selected(); entry.unstyle_selected();
} }
@ -221,11 +223,15 @@ export class NavWindow {
* @param {NavEntry} entry * @param {NavEntry} entry
*/ */
select_one(entry) { select_one(entry) {
if (this.editing_permissions)
return;
entry.style_selected(); entry.style_selected();
this.selected_entries.add(entry); this.selected_entries.add(entry);
} }
deselect_one(entry) { deselect_one(entry) {
if (this.editing_permissions)
return;
entry.unstyle_selected(); entry.unstyle_selected();
this.selected_entries.delete(entry); this.selected_entries.delete(entry);
} }
@ -236,6 +242,8 @@ export class NavWindow {
* @param {NavEntry} end * @param {NavEntry} end
*/ */
select_range(start, end) { select_range(start, end) {
if (this.editing_permissions)
return;
let start_ind = this.entries.indexOf(start); let start_ind = this.entries.indexOf(start);
let end_ind = this.entries.indexOf(end); let end_ind = this.entries.indexOf(end);
if (start_ind === -1 || end_ind === -1) if (start_ind === -1 || end_ind === -1)
@ -252,6 +260,8 @@ export class NavWindow {
} }
reset_selection() { reset_selection() {
if (this.editing_permissions)
return;
this.clear_selected(); this.clear_selected();
this.select_one(this.pwd()); this.select_one(this.pwd());
this.last_selected_entry = null; this.last_selected_entry = null;
@ -268,6 +278,8 @@ export class NavWindow {
* @param {Boolean} ctrl * @param {Boolean} ctrl
*/ */
set_selected(target, shift, ctrl) { set_selected(target, shift, ctrl) {
if (this.editing_permissions)
return;
if (!ctrl && !shift) if (!ctrl && !shift)
this.clear_selected(); this.clear_selected();
if (!shift || !this.last_selected_entry) if (!shift || !this.last_selected_entry)
@ -299,6 +311,8 @@ export class NavWindow {
} }
select_all() { select_all() {
if (this.editing_permissions)
return;
this.clear_selected(); this.clear_selected();
this.select_range(this.entries[0], this.entries[this.entries.length - 1]); this.select_range(this.entries[0], this.entries[this.entries.length - 1]);
this.update_selection_info(); this.update_selection_info();
@ -395,11 +409,13 @@ export class NavWindow {
document.getElementById("nav-mode-preview").innerText = "unchanged"; document.getElementById("nav-mode-preview").innerText = "unchanged";
document.getElementById("nav-edit-properties").style.display = "flex"; document.getElementById("nav-edit-properties").style.display = "flex";
document.getElementById("nav-show-properties").style.display = "none"; document.getElementById("nav-show-properties").style.display = "none";
this.editing_permissions = true;
} }
hide_edit_selected() { hide_edit_selected() {
document.getElementById("nav-show-properties").style.display = "flex"; document.getElementById("nav-show-properties").style.display = "flex";
document.getElementById("nav-edit-properties").style.display = "none"; document.getElementById("nav-edit-properties").style.display = "none";
this.editing_permissions = false;
} }
/** /**