diff --git a/crates/auto_update/src/auto_update.rs b/crates/auto_update/src/auto_update.rs index 56f94f526f2711c53f51e73de9d74cdd0c1db2e3..c8f70b16887e2f7d48073f739cbe806435a2341b 100644 --- a/crates/auto_update/src/auto_update.rs +++ b/crates/auto_update/src/auto_update.rs @@ -70,6 +70,12 @@ pub fn init(http_client: Arc, server_url: String, cx: &mut Mutab } } +pub fn check(cx: &mut MutableAppContext) { + if let Some(updater) = AutoUpdater::get(cx) { + updater.update(cx, |updater, cx| updater.poll(cx)); + } +} + impl AutoUpdater { fn get(cx: &mut MutableAppContext) -> Option> { cx.default_global::>>().clone() diff --git a/crates/zed/src/menus.rs b/crates/zed/src/menus.rs index 33ac76e63cc3d7ff75fb3df1c9f6f9523854acf9..8d23dc4f58252eeda8a31b6a57b8b63656bffdda 100644 --- a/crates/zed/src/menus.rs +++ b/crates/zed/src/menus.rs @@ -13,6 +13,11 @@ pub fn menus(state: &Arc) -> Vec> { keystroke: None, action: Box::new(super::About), }, + MenuItem::Action { + name: "Check for Updates", + keystroke: None, + action: Box::new(super::CheckForUpdates), + }, MenuItem::Separator, MenuItem::Action { name: "Quit", diff --git a/crates/zed/src/zed.rs b/crates/zed/src/zed.rs index 7968f234666c9a7128cbe8a63a8e74cffc791065..479e65dba0dda2576a866498f024312ca441fc4a 100644 --- a/crates/zed/src/zed.rs +++ b/crates/zed/src/zed.rs @@ -31,6 +31,7 @@ action!(About); action!(Quit); action!(OpenSettings); action!(AdjustBufferFontSize, f32); +action!(CheckForUpdates); const MIN_FONT_SIZE: f32 = 6.0; @@ -43,6 +44,7 @@ lazy_static! { pub fn init(app_state: &Arc, cx: &mut gpui::MutableAppContext) { cx.add_global_action(quit); + cx.add_global_action(|_: &CheckForUpdates, cx| auto_update::check(cx)); cx.add_global_action({ move |action: &AdjustBufferFontSize, cx| { cx.update_global::(|settings, cx| {