Skip to content

Commit 6c5e657

Browse files
danirabbitjeremypw
andauthored
AbstractDirectoryView: rewrite SortSubMenu using GLib.Menu (#2756)
Co-authored-by: Jeremy Wootten <jeremywootten@gmail.com>
1 parent 24bebed commit 6c5e657

File tree

1 file changed

+39
-28
lines changed

1 file changed

+39
-28
lines changed

src/View/AbstractDirectoryView.vala

Lines changed: 39 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2320,40 +2320,51 @@ namespace Files {
23202320

23212321
private class SortSubMenuItem : Gtk.MenuItem {
23222322
construct {
2323-
var name_radioitem = new Gtk.CheckMenuItem.with_label (_("Name"));
2324-
name_radioitem.action_name = "background.sort-by";
2325-
name_radioitem.action_target = "name";
2326-
name_radioitem.draw_as_radio = true;
2323+
var name_item = new MenuItem (
2324+
_("Name"),
2325+
Action.print_detailed_name ("background.sort-by", new Variant.string ("name"))
2326+
);
2327+
2328+
var size_item = new MenuItem (
2329+
_("Size"),
2330+
Action.print_detailed_name ("background.sort-by", new Variant.string ("size"))
2331+
);
2332+
2333+
var type_item = new MenuItem (
2334+
_("Type"),
2335+
Action.print_detailed_name ("background.sort-by", new Variant.string ("type"))
2336+
);
23272337

2328-
var size_radioitem = new Gtk.CheckMenuItem.with_label (_("Size"));
2329-
size_radioitem.action_name = "background.sort-by";
2330-
size_radioitem.action_target = "size";
2331-
size_radioitem.draw_as_radio = true;
2338+
var date_item = new MenuItem (
2339+
_("Date"),
2340+
Action.print_detailed_name ("background.sort-by", new Variant.string ("modified"))
2341+
);
23322342

2333-
var type_radioitem = new Gtk.CheckMenuItem.with_label (_("Type"));
2334-
type_radioitem.action_name = "background.sort-by";
2335-
type_radioitem.action_target = "type";
2336-
type_radioitem.draw_as_radio = true;
2343+
var reversed_item = new MenuItem (
2344+
_("Reversed Order"),
2345+
"background.reverse"
2346+
);
23372347

2338-
var date_radioitem = new Gtk.CheckMenuItem.with_label (_("Date"));
2339-
date_radioitem.action_name = "background.sort-by";
2340-
date_radioitem.action_target = "modified";
2341-
date_radioitem.draw_as_radio = true;
2348+
var folders_first_item = new MenuItem (
2349+
_("Folders Before Files"),
2350+
"win.sort-directories-first"
2351+
);
23422352

2343-
var reversed_checkitem = new Gtk.CheckMenuItem.with_label (_("Reversed Order"));
2344-
reversed_checkitem.action_name = "background.reverse";
2353+
var radio_section = new Menu ();
2354+
radio_section.append_item (name_item);
2355+
radio_section.append_item (size_item);
2356+
radio_section.append_item (type_item);
2357+
radio_section.append_item (date_item);
23452358

2346-
var folders_first_checkitem = new Gtk.CheckMenuItem.with_label (_("Folders Before Files"));
2347-
folders_first_checkitem.action_name = "win.sort-directories-first";
2359+
var check_section = new Menu ();
2360+
check_section.append_item (reversed_item);
2361+
check_section.append_item (folders_first_item);
23482362

2349-
submenu = new Gtk.Menu ();
2350-
submenu.add (name_radioitem);
2351-
submenu.add (size_radioitem);
2352-
submenu.add (type_radioitem);
2353-
submenu.add (date_radioitem);
2354-
submenu.add (new Gtk.SeparatorMenuItem ());
2355-
submenu.add (reversed_checkitem);
2356-
submenu.add (folders_first_checkitem);
2363+
var menu_model = new Menu ();
2364+
menu_model.append_section (null, radio_section);
2365+
menu_model.append_section (null, check_section);
2366+
2367+
submenu = new Gtk.Menu.from_model (menu_model);
23572368

23582369
label = _("Sort by");
23592370
}

0 commit comments

Comments
 (0)