From eb5a5198b1337042d3ab8f5d6d8bc49bb8a3cee4 Mon Sep 17 00:00:00 2001 From: Zlatin Balevsky Date: Sun, 27 Oct 2019 05:12:25 +0000 Subject: [PATCH] more efficient unsharing of nested dirs --- .../models/com/muwire/gui/MainFrameModel.groovy | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gui/griffon-app/models/com/muwire/gui/MainFrameModel.groovy b/gui/griffon-app/models/com/muwire/gui/MainFrameModel.groovy index d79c8bf2..8574f179 100644 --- a/gui/griffon-app/models/com/muwire/gui/MainFrameModel.groovy +++ b/gui/griffon-app/models/com/muwire/gui/MainFrameModel.groovy @@ -358,6 +358,7 @@ class MainFrameModel { def dmtn = fileToNode.remove(e.unsharedFile) if (dmtn != null) { loadedFiles = fileToNode.size() + List unshared = new ArrayList<>() while (true) { def parent = dmtn.getParent() parent.remove(dmtn) @@ -366,12 +367,16 @@ class MainFrameModel { if (parent.getChildCount() == 0) { File file = parent.getUserObject().file if (core.muOptions.watchedDirectories.contains(file.toString())) - core.eventBus.publish(new DirectoryUnsharedEvent(directory : parent.getUserObject().file)) + unshared.add(file) dmtn = parent continue } break } + if (!unshared.isEmpty()) { + File unsharedRoot = unshared.get( unshared.size() -1 ) + core.eventBus.publish(new DirectoryUnsharedEvent(directory : unsharedRoot)) + } } view.refreshSharedFiles() }