Skip to content
12 changes: 12 additions & 0 deletions data/io.elementary.code.appdata.xml.in
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,18 @@
</ul>
</description>
<releases>
<release version="3.3.0" date="2020-01-16">
<description>
<p>New features:</p>
<ul>
<li>New "Close Other Folders" menu item to help clean up your sidebar</li>
</ul>
<p>Other updates:</p>
<ul>
<li>Updated translations</li>
</ul>
</description>
</release>
<release version="3.2.0" date="2020-01-09">
<description>
<p>New features:</p>
Expand Down
10 changes: 10 additions & 0 deletions src/FolderManager/FileView.vala
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,16 @@ namespace Scratch.FolderManager {
root.remove (folder_root);
write_settings ();
});

folder_root.close_all_except.connect (() => {
foreach (var child in root.children) {
if (child != folder_root) {
root.remove (child);
}
}

write_settings ();
});
}

private bool is_open (File folder) {
Expand Down
6 changes: 6 additions & 0 deletions src/FolderManager/ProjectFolderItem.vala
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ namespace Scratch.FolderManager {
private const uint GIT_UPDATE_RATE_LIMIT = 300;

public signal void closed ();
public signal void close_all_except ();

// Static source IDs for each instance of a top level folder, ensures we don't check for git updates too much
private static Gee.HashMap<string, uint> git_update_timer_ids;
Expand Down Expand Up @@ -95,6 +96,10 @@ namespace Scratch.FolderManager {
var close_item = new Gtk.MenuItem.with_label (_("Close Folder"));
close_item.activate.connect (() => { closed (); });

var close_all_except_item = new Gtk.MenuItem.with_label (_("Close Other Folders"));
close_all_except_item.activate.connect (() => { close_all_except (); });
close_all_except_item.sensitive = view.root.children.size > 1;

var delete_item = new Gtk.MenuItem.with_label (_("Move to Trash"));
delete_item.activate.connect (() => {
closed ();
Expand All @@ -113,6 +118,7 @@ namespace Scratch.FolderManager {

var menu = new Gtk.Menu ();
menu.append (close_item);
menu.append (close_all_except_item);
menu.append (create_submenu_for_open_in (info, file_type));
menu.append (create_submenu_for_new ());
menu.append (delete_item);
Expand Down