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)
if (dmtn != null) {
loadedFiles = fileToNode.size()
List<File> 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()
}