feat: open in new window

This commit is contained in:
hstyi
2025-01-26 10:12:56 +08:00
committed by hstyi
parent 8d80d38d63
commit 7db650d69f
3 changed files with 13 additions and 10 deletions

View File

@@ -318,6 +318,7 @@ class HostTree : JTree(), Disposable {
val newHost = newMenu.add(I18n.getString("termora.welcome.contextmenu.new.host"))
val open = popupMenu.add(I18n.getString("termora.welcome.contextmenu.open"))
val openInNewWindow = popupMenu.add(I18n.getString("termora.welcome.contextmenu.open-in-new-window"))
popupMenu.addSeparator()
val copy = popupMenu.add(I18n.getString("termora.welcome.contextmenu.copy"))
val remove = popupMenu.add(I18n.getString("termora.welcome.contextmenu.remove"))
@@ -330,15 +331,8 @@ class HostTree : JTree(), Disposable {
popupMenu.addSeparator()
val property = popupMenu.add(I18n.getString("termora.welcome.contextmenu.property"))
open.addActionListener { evt ->
getSelectionNodes()
.filter { it.protocol != Protocol.Folder }
.forEach {
ActionManager.getInstance()
.getAction(OpenHostAction.OPEN_HOST)
?.actionPerformed(OpenHostActionEvent(evt.source, it, evt))
}
}
open.addActionListener { openHosts(it, false) }
openInNewWindow.addActionListener { openHosts(it, true) }
rename.addActionListener {
startEditingAtPath(TreePath(model.getPathToRoot(lastHost)))
@@ -454,6 +448,15 @@ class HostTree : JTree(), Disposable {
popupMenu.show(this, event.x, event.y)
}
private fun openHosts(evt: EventObject, openInNewWindow: Boolean) {
assertEventDispatchThread()
val openHostAction = ActionManager.getInstance().getAction(OpenHostAction.OPEN_HOST) ?: return
val nodes = getSelectionNodes().filter { it.protocol != Protocol.Folder }
val source = if (openInNewWindow)
TermoraFrameManager.getInstance().createWindow().apply { isVisible = true }
else evt.source
nodes.forEach { openHostAction.actionPerformed(OpenHostActionEvent(source, it, evt)) }
}
fun expandNode(node: Host, including: Boolean = false) {
expandPath(TreePath(model.getPathToRoot(node)))

View File

@@ -49,7 +49,6 @@ class MyTabbedPane : FlatTabbedPane() {
if (index >= 0) {
return
}
return
}
super.processMouseEvent(e)
}

View File

@@ -113,6 +113,7 @@ termora.find-everywhere.quick-command.local-terminal=Local Terminal
# Welcome
termora.welcome.my-hosts=My hosts
termora.welcome.contextmenu.open=Open
termora.welcome.contextmenu.open-in-new-window=${termora.tabbed.contextmenu.open-in-new-window}
termora.welcome.contextmenu.copy=${termora.copy}
termora.welcome.contextmenu.remove=${termora.remove}
termora.welcome.contextmenu.rename=Rename