From 17323ed7b22dfdad331b796de539d5d8bfd962e2 Mon Sep 17 00:00:00 2001 From: Angelk90 Date: Fri, 21 Feb 2025 20:11:17 +0100 Subject: [PATCH] Show git items in the panel only when in a git repository (#24865) | Before | After | After2 | | - | - | - | | Screenshot 2025-02-14 alle 13 45 41 | Screenshot 2025-02-14 alle 14 25 24 | Screenshot 2025-02-14 alle 14 25 38 | Release Notes: - If it is not a git repository it shows nothing. - Fix stage and unstage title in context_menu --- crates/git_ui/src/git_panel.rs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/crates/git_ui/src/git_panel.rs b/crates/git_ui/src/git_panel.rs index dbad09afda..7099d06994 100644 --- a/crates/git_ui/src/git_panel.rs +++ b/crates/git_ui/src/git_panel.rs @@ -2059,6 +2059,11 @@ impl GitPanel { let Some(entry) = self.entries.get(ix).and_then(|e| e.status_entry()) else { return; }; + let stage_title = if entry.status.is_staged() == Some(true) { + "Unstage File" + } else { + "Stage File" + }; let revert_title = if entry.status.is_deleted() { "Restore file" } else if entry.status.is_created() { @@ -2068,7 +2073,7 @@ impl GitPanel { }; let context_menu = ContextMenu::build(window, cx, |context_menu, _, _| { context_menu - .action("Stage File", ToggleStaged.boxed_clone()) + .action(stage_title, ToggleStaged.boxed_clone()) .action(revert_title, git::RestoreFile.boxed_clone()) .separator() .action("Open Diff", Confirm.boxed_clone()) @@ -2312,15 +2317,17 @@ impl Render for GitPanel { .size_full() .overflow_hidden() .bg(ElevationIndex::Surface.bg(cx)) - .children(self.render_panel_header(window, cx)) .child(if has_entries { - self.render_entries(has_write_access, window, cx) + v_flex() + .size_full() + .children(self.render_panel_header(window, cx)) + .child(self.render_entries(has_write_access, window, cx)) + .children(self.render_previous_commit(cx)) + .child(self.render_commit_editor(window, cx)) .into_any_element() } else { self.render_empty_state(cx).into_any_element() }) - .children(self.render_previous_commit(cx)) - .child(self.render_commit_editor(window, cx)) .children(self.context_menu.as_ref().map(|(menu, position, _)| { deferred( anchored()