From 4c0200799bd4d8a26a90ff498657a4c7d8ea1c4f Mon Sep 17 00:00:00 2001 From: yggverse Date: Sat, 15 Feb 2025 12:45:27 +0200 Subject: [PATCH] deactivate `save_as` action for file browser tabs --- src/app/browser/window/tab.rs | 4 ++++ .../browser/window/tab/item/client/driver/file/directory.rs | 1 + src/app/browser/window/tab/item/page/navigation.rs | 4 ++++ src/app/browser/window/tab/item/page/navigation/request.rs | 5 +++++ 4 files changed, 14 insertions(+) diff --git a/src/app/browser/window/tab.rs b/src/app/browser/window/tab.rs index 3746cf7a..fe19d51d 100644 --- a/src/app/browser/window/tab.rs +++ b/src/app/browser/window/tab.rs @@ -463,6 +463,10 @@ fn update_actions( .history_forward .simple_action .set_enabled(item.action.history.forward.is_enabled()); + window_action + .save_as + .simple_action + .set_enabled(!item.page.navigation.is_file()); window_action.change_state(Some(tab_view.page_position(tab_page))); return; diff --git a/src/app/browser/window/tab/item/client/driver/file/directory.rs b/src/app/browser/window/tab/item/client/driver/file/directory.rs index a840ca18..e86d7c18 100644 --- a/src/app/browser/window/tab/item/client/driver/file/directory.rs +++ b/src/app/browser/window/tab/item/client/driver/file/directory.rs @@ -33,5 +33,6 @@ impl Directory { ); page.set_title(&self.file.parse_name()); page.window_action.find.simple_action.set_enabled(false); + page.window_action.save_as.simple_action.set_enabled(false); } } diff --git a/src/app/browser/window/tab/item/page/navigation.rs b/src/app/browser/window/tab/item/page/navigation.rs index ff7517ce..ce36b383 100644 --- a/src/app/browser/window/tab/item/page/navigation.rs +++ b/src/app/browser/window/tab/item/page/navigation.rs @@ -166,6 +166,10 @@ impl Navigation { pub fn home(&self) -> Option { self.request.home() } + + pub fn is_file(&self) -> bool { + self.request.is_file() + } } // Tools diff --git a/src/app/browser/window/tab/item/page/navigation/request.rs b/src/app/browser/window/tab/item/page/navigation/request.rs index 7ca73850..29e40635 100644 --- a/src/app/browser/window/tab/item/page/navigation/request.rs +++ b/src/app/browser/window/tab/item/page/navigation/request.rs @@ -61,6 +61,7 @@ pub trait Request { fn source(&self) -> GString; fn uri(&self) -> Option; fn home(&self) -> Option; + fn is_file(&self) -> bool; } impl Request for Entry { @@ -360,6 +361,10 @@ impl Request for Entry { None } } + + fn is_file(&self) -> bool { + self.text().starts_with("file://") + } } // Tools