diff --git a/gui/griffon-app/models/com/muwire/gui/MainFrameModel.groovy b/gui/griffon-app/models/com/muwire/gui/MainFrameModel.groovy index f93b479b..a1764eef 100644 --- a/gui/griffon-app/models/com/muwire/gui/MainFrameModel.groovy +++ b/gui/griffon-app/models/com/muwire/gui/MainFrameModel.groovy @@ -85,6 +85,7 @@ class MainFrameModel { @Observable boolean routerPresent def results = new ConcurrentHashMap<>() + def browses = new ConcurrentHashSet() def downloads = [] def uploads = [] boolean treeVisible = true diff --git a/gui/griffon-app/views/com/muwire/gui/BrowseView.groovy b/gui/griffon-app/views/com/muwire/gui/BrowseView.groovy index 0960fd2d..587da7d9 100644 --- a/gui/griffon-app/views/com/muwire/gui/BrowseView.groovy +++ b/gui/griffon-app/views/com/muwire/gui/BrowseView.groovy @@ -186,6 +186,7 @@ class BrowseView { controller.register() def mainFrameGroup = application.mvcGroupManager.findGroup("MainFrame") + mainFrameGroup.model.browses.add(model.host.getHumanReadableName()) parent = mainFrameGroup.view.builder.getVariable("result-tabs") parent.addTab(model.host.getHumanReadableName(), p) @@ -225,6 +226,9 @@ class BrowseView { } def closeTab = { + def mainFrameGroup = application.mvcGroupManager.findGroup("MainFrame") + mainFrameGroup.model.browses.remove(model.host.getHumanReadableName()) + int index = parent.indexOfTab(model.host.getHumanReadableName()) parent.removeTabAt(index) model.downloadActionEnabled = false diff --git a/gui/griffon-app/views/com/muwire/gui/MainFrameView.groovy b/gui/griffon-app/views/com/muwire/gui/MainFrameView.groovy index ce08ff28..3c7370b4 100644 --- a/gui/griffon-app/views/com/muwire/gui/MainFrameView.groovy +++ b/gui/griffon-app/views/com/muwire/gui/MainFrameView.groovy @@ -1525,6 +1525,7 @@ class MainFrameView { int count = tabbedPane.getTabCount() for (int i = 0; i < count; i++) settings.openTabs.add(tabbedPane.getTitleAt(i)) + settings.openTabs.removeAll(model.browses) JFrame mainFrame = builder.getVariable("main-frame")