diff --git a/src/Utils.vala b/src/Utils.vala index 46b83a56b..8d32971b5 100644 --- a/src/Utils.vala +++ b/src/Utils.vala @@ -338,14 +338,16 @@ 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); 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 90fba9259..b27035325 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 940909460..0656c33d0 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);