From 62866e672c1f9b031838f760edd34c836ab4289e Mon Sep 17 00:00:00 2001 From: Jeremy Wootten Date: Wed, 28 May 2025 19:41:16 +0100 Subject: [PATCH 1/2] Move buttons from actionbar to projectchooser --- src/Utils.vala | 6 ++++-- src/Widgets/ChooseProjectButton.vala | 10 ++++++++++ src/Widgets/Sidebar.vala | 29 +++++++--------------------- 3 files changed, 21 insertions(+), 24 deletions(-) diff --git a/src/Utils.vala b/src/Utils.vala index 2ea4e3879d..8ed735e574 100644 --- a/src/Utils.vala +++ b/src/Utils.vala @@ -338,7 +338,7 @@ namespace Scratch.Utils { return ""; } - public Gtk.Button make_button_with_icon_and_label (string icon_name, string text) { + public Gtk.Button make_button_with_icon_and_label (string icon_name, string text, string style_class = "flat") { var box = new Gtk.Box (HORIZONTAL, 0); var image = new Gtk.Image.from_icon_name (icon_name, BUTTON) { margin_end = 3 @@ -346,8 +346,10 @@ namespace Scratch.Utils { var label = new Gtk.Label (text); box.add (image); box.add (label); - return new Gtk.Button () { + var button = new Gtk.Button () { child = box }; + button.get_style_context ().add_class (style_class); + return button; } } diff --git a/src/Widgets/ChooseProjectButton.vala b/src/Widgets/ChooseProjectButton.vala index 90fba92596..b270353251 100644 --- a/src/Widgets/ChooseProjectButton.vala +++ b/src/Widgets/ChooseProjectButton.vala @@ -71,9 +71,19 @@ public class Code.ChooseProjectButton : Gtk.MenuButton { project_scrolled.add (project_listbox); + var add_folder_button = Scratch.Utils.make_button_with_icon_and_label ("folder-open-symbolic", _("Open…")); + add_folder_button.action_name = Scratch.MainWindow.ACTION_PREFIX + Scratch.MainWindow.ACTION_OPEN_FOLDER; + add_folder_button.action_target = new Variant.string (""); + + var clone_button = Scratch.Utils.make_button_with_icon_and_label ("folder-download-symbolic", _("Clone…")); + clone_button.action_name = Scratch.MainWindow.ACTION_PREFIX + Scratch.MainWindow.ACTION_CLONE_REPO; + var popover_content = new Gtk.Box (Gtk.Orientation.VERTICAL, 0); popover_content.add (project_filter); popover_content.add (project_scrolled); + popover_content.add (new Gtk.Separator (HORIZONTAL)); + popover_content.add (add_folder_button); + popover_content.add (clone_button); popover_content.show_all (); diff --git a/src/Widgets/Sidebar.vala b/src/Widgets/Sidebar.vala index 9409094601..b4f4f1490e 100644 --- a/src/Widgets/Sidebar.vala +++ b/src/Widgets/Sidebar.vala @@ -56,13 +56,6 @@ public class Code.Sidebar : Gtk.Grid { var actionbar = new Gtk.ActionBar (); actionbar.get_style_context ().add_class (Gtk.STYLE_CLASS_INLINE_TOOLBAR); - var add_folder_button = Scratch.Utils.make_button_with_icon_and_label ("folder-open-symbolic", _("Open…")); - add_folder_button.action_name = Scratch.MainWindow.ACTION_PREFIX + Scratch.MainWindow.ACTION_OPEN_FOLDER; - add_folder_button.action_target = new Variant.string (""); - - var clone_button = Scratch.Utils.make_button_with_icon_and_label ("folder-download-symbolic", _("Clone…")); - clone_button.action_name = Scratch.MainWindow.ACTION_PREFIX + Scratch.MainWindow.ACTION_CLONE_REPO; - var collapse_all_menu_item = new GLib.MenuItem (_("Collapse All"), Scratch.MainWindow.ACTION_PREFIX + Scratch.MainWindow.ACTION_COLLAPSE_ALL_FOLDERS); @@ -74,23 +67,15 @@ public class Code.Sidebar : Gtk.Grid { project_menu.append_item (order_projects_menu_item); project_menu_model = project_menu; - var project_more_button = new Gtk.MenuButton (); - project_more_button.image = new Gtk.Image.from_icon_name ("view-more-symbolic", Gtk.IconSize.SMALL_TOOLBAR); - project_more_button.use_popover = false; - project_more_button.menu_model = project_menu_model; - project_more_button.tooltip_text = _("Manage project folders"); - - var tool_flowbox = new Gtk.FlowBox () { - orientation = HORIZONTAL, + var project_more_button = new Gtk.MenuButton (){ hexpand = true, - selection_mode = NONE, - column_spacing = 0, - max_children_per_line = 2 + use_popover = false, + menu_model = project_menu_model, + label = _("Manage project folders…"), + xalign = 0.0f }; - tool_flowbox.add (add_folder_button); - tool_flowbox.add (clone_button); - actionbar.add (tool_flowbox); - actionbar.pack_end (project_more_button); + + actionbar.pack_start (project_more_button); add (headerbar); add (stack_switcher); From 1e2449cb005f850f1bf1ffcfef5f50c2b847fe28 Mon Sep 17 00:00:00 2001 From: Jeremy Wootten Date: Thu, 29 May 2025 09:43:07 +0100 Subject: [PATCH 2/2] Fix lint and merge error --- src/Utils.vala | 4 +--- src/Widgets/Sidebar.vala | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/Utils.vala b/src/Utils.vala index 6168a27410..8d32971b5b 100644 --- a/src/Utils.vala +++ b/src/Utils.vala @@ -338,9 +338,7 @@ namespace Scratch.Utils { return ""; } - }; - - public Gtk.Button make_button_with_icon_and_label (string icon_name, string text) { + public Gtk.Button make_button_with_icon_and_label (string icon_name, string text, string style_class = "flat") { var box = new Gtk.Box (HORIZONTAL, 3); var image = new Gtk.Image.from_icon_name (icon_name, BUTTON); var label = new Gtk.Label (text); diff --git a/src/Widgets/Sidebar.vala b/src/Widgets/Sidebar.vala index b4f4f1490e..0656c33d0c 100644 --- a/src/Widgets/Sidebar.vala +++ b/src/Widgets/Sidebar.vala @@ -67,7 +67,7 @@ public class Code.Sidebar : Gtk.Grid { project_menu.append_item (order_projects_menu_item); project_menu_model = project_menu; - var project_more_button = new Gtk.MenuButton (){ + var project_more_button = new Gtk.MenuButton () { hexpand = true, use_popover = false, menu_model = project_menu_model,