diff --git a/gui/griffon-app/controllers/com/muwire/gui/MainFrameController.groovy b/gui/griffon-app/controllers/com/muwire/gui/MainFrameController.groovy index d87c635f..b38e5008 100644 --- a/gui/griffon-app/controllers/com/muwire/gui/MainFrameController.groovy +++ b/gui/griffon-app/controllers/com/muwire/gui/MainFrameController.groovy @@ -290,14 +290,16 @@ class MainFrameController { } void stopWatchingDirectory() { - String directory = mvcGroup.view.getSelectedWatchedDirectory() - if (directory == null) + List directories = mvcGroup.view.getSelectedWatchedDirectories() + if (directories == null) return - core.muOptions.watchedDirectories.remove(directory) + directories.each { directory -> + core.muOptions.watchedDirectories.remove(directory) + core.eventBus.publish(new DirectoryUnsharedEvent(directory : new File(directory))) + model.watched.remove(directory) + } saveMuWireSettings() - core.eventBus.publish(new DirectoryUnsharedEvent(directory : new File(directory))) - model.watched.remove(directory) builder.getVariable("watched-directories-table").model.fireTableDataChanged() } diff --git a/gui/griffon-app/views/com/muwire/gui/MainFrameView.groovy b/gui/griffon-app/views/com/muwire/gui/MainFrameView.groovy index 035a1afb..004b4042 100644 --- a/gui/griffon-app/views/com/muwire/gui/MainFrameView.groovy +++ b/gui/griffon-app/views/com/muwire/gui/MainFrameView.groovy @@ -925,14 +925,21 @@ class MainFrameView { model.core.eventBus.publish(new FileSharedEvent(file : f)) } - String getSelectedWatchedDirectory() { + List getSelectedWatchedDirectories() { def watchedTable = builder.getVariable("watched-directories-table") - int selectedRow = watchedTable.getSelectedRow() - if (selectedRow < 0) + int[] selectedRows = watchedTable.getSelectedRows() + if (selectedRows.length == 0) return null - if (lastWatchedSortEvent != null) - selectedRow = watchedTable.rowSorter.convertRowIndexToModel(selectedRow) - model.watched[selectedRow] + if (lastWatchedSortEvent != null) { + for(int i = 0;i < selectedRows.length; i++) + selectedRows[i] = watchedTable.rowSorter.convertRowIndexToModel(selectedRows[i]) + } + + List rv = new ArrayList<>() + selectedRows.each { + rv.add(model.watched[it]) + } + rv } int getSelectedTrustTablesRow(String tableName) {