more efficient unsharing of nested dirs

pull/24/head
Zlatin Balevsky 2019-10-27 05:12:25 +00:00
parent 29562c42ea
commit eb5a5198b1
1 changed files with 6 additions and 1 deletions

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()
} }