more efficient unsharing of nested dirs

This commit is contained in:
Zlatin Balevsky
2019-10-27 05:12:25 +00:00
parent 29562c42ea
commit eb5a5198b1

View File

@@ -358,6 +358,7 @@ class MainFrameModel {
def dmtn = fileToNode.remove(e.unsharedFile) def dmtn = fileToNode.remove(e.unsharedFile)
if (dmtn != null) { if (dmtn != null) {
loadedFiles = fileToNode.size() loadedFiles = fileToNode.size()
List<File> unshared = new ArrayList<>()
while (true) { while (true) {
def parent = dmtn.getParent() def parent = dmtn.getParent()
parent.remove(dmtn) parent.remove(dmtn)
@@ -366,12 +367,16 @@ class MainFrameModel {
if (parent.getChildCount() == 0) { if (parent.getChildCount() == 0) {
File file = parent.getUserObject().file File file = parent.getUserObject().file
if (core.muOptions.watchedDirectories.contains(file.toString())) if (core.muOptions.watchedDirectories.contains(file.toString()))
core.eventBus.publish(new DirectoryUnsharedEvent(directory : parent.getUserObject().file)) unshared.add(file)
dmtn = parent dmtn = parent
continue continue
} }
break break
} }
if (!unshared.isEmpty()) {
File unsharedRoot = unshared.get( unshared.size() -1 )
core.eventBus.publish(new DirectoryUnsharedEvent(directory : unsharedRoot))
}
} }
view.refreshSharedFiles() view.refreshSharedFiles()
} }