From 6801cc6a0546f1b149ac3618e8c7fd6b5e92c655 Mon Sep 17 00:00:00 2001 From: yggverse Date: Mon, 23 Sep 2024 16:03:39 +0300 Subject: [PATCH] draft close all tabs actions --- src/browser/header/tray/menu/model.rs | 1 + src/browser/main/mod.rs | 8 ++++++++ src/browser/main/tab/mod.rs | 10 +++++++++- src/browser/mod.rs | 16 ++++++++++++++++ 4 files changed, 34 insertions(+), 1 deletion(-) diff --git a/src/browser/header/tray/menu/model.rs b/src/browser/header/tray/menu/model.rs index 7683ae82..49afcd1a 100644 --- a/src/browser/header/tray/menu/model.rs +++ b/src/browser/header/tray/menu/model.rs @@ -13,6 +13,7 @@ impl Menu { let model_tab_close = gio::Menu::new(); model_tab_close.append(Some("Current"), Some("win.tab_close")); + model_tab_close.append(Some("All"), Some("win.tab_close_all")); model_tab.append_submenu(Some("Close"), &model_tab_close); let model = gio::Menu::new(); diff --git a/src/browser/main/mod.rs b/src/browser/main/mod.rs index 98844793..9a8b57b3 100644 --- a/src/browser/main/mod.rs +++ b/src/browser/main/mod.rs @@ -29,6 +29,14 @@ impl Main { self.tab.append(true); } + pub fn tab_close(&self) { + self.tab.close(); + } + + pub fn tab_close_all(&self) { + self.tab.close(); + } + pub fn tab_pin(&self) { self.tab.pin(); } diff --git a/src/browser/main/tab/mod.rs b/src/browser/main/tab/mod.rs index daff1fd4..2cf73cf0 100644 --- a/src/browser/main/tab/mod.rs +++ b/src/browser/main/tab/mod.rs @@ -25,8 +25,16 @@ impl Tab { ) } + pub fn close(&self) { + todo!() + } + + pub fn close_all(&self) { + todo!() + } + pub fn pin(&self) -> bool { - false // @TODO + todo!() } // Getters diff --git a/src/browser/mod.rs b/src/browser/mod.rs index f6c0255a..d471234f 100644 --- a/src/browser/mod.rs +++ b/src/browser/mod.rs @@ -59,6 +59,22 @@ impl Browser { } }) .build(), + ActionEntry::builder("tab_close") + .activate({ + let main = main.clone(); + move |_, _, _| { + main.tab_close(); + } + }) + .build(), + ActionEntry::builder("tab_close_all") + .activate({ + let main = main.clone(); + move |_, _, _| { + main.tab_close_all(); + } + }) + .build(), ActionEntry::builder("tab_pin") .activate({ let main = main.clone();