feat: SFTP command add key shortcut

This commit is contained in:
hstyi
2025-02-23 21:27:34 +08:00
committed by hstyi
parent 145d8fc802
commit 9fb12c7a71
8 changed files with 46 additions and 5 deletions

View File

@@ -85,10 +85,6 @@ class TermoraRestarter {
private fun doRestart() {
for (window in TermoraFrameManager.getInstance().getWindows()) {
window.dispose()
}
if (SystemInfo.isMacOS) {
Restarter.restart(arrayOf("open", "-n", macOSApplicationPath))
} else if (SystemInfo.isWindows && startupCommand != null) {
@@ -100,6 +96,10 @@ class TermoraRestarter {
Restarter.restart(arrayOf(startupCommand))
}
}
for (window in TermoraFrameManager.getInstance().getWindows()) {
window.dispose()
}
}

View File

@@ -33,6 +33,7 @@ class ActionManager : org.jdesktop.swingx.action.ActionManager() {
addAction(Actions.KEYWORD_HIGHLIGHT, KeywordHighlightAction())
addAction(Actions.TERMINAL_LOGGER, TerminalLoggerAction())
addAction(Actions.SFTP, SFTPAction())
addAction(SFTPCommandAction.SFTP_COMMAND, SFTPCommandAction())
addAction(Actions.MACRO, MacroAction())
addAction(Actions.KEY_MANAGER, KeyManagerAction())

View File

@@ -0,0 +1,30 @@
package app.termora.actions
import app.termora.HostTerminalTab
import app.termora.I18n
import app.termora.OpenHostActionEvent
import app.termora.Protocol
class SFTPCommandAction : AnAction() {
companion object {
/**
* 打开 SFTP command
*/
const val SFTP_COMMAND = "SFTPCommandAction"
}
init {
putValue(ACTION_COMMAND_KEY, SFTP_COMMAND)
putValue(SHORT_DESCRIPTION, I18n.getString("termora.actions.open-sftp-command"))
}
override fun actionPerformed(evt: AnActionEvent) {
val actionManager = ActionManager.getInstance().getAction(OpenHostAction.OPEN_HOST) ?: return
val terminalTabbedManager = evt.getData(DataProviders.TerminalTabbedManager) ?: return
val tab = terminalTabbedManager.getSelectedTerminalTab() as? HostTerminalTab ?: return
val host = tab.host
if (!(host.protocol == Protocol.SSH || host.protocol == Protocol.SFTPPty)) return
actionManager.actionPerformed(OpenHostActionEvent(evt.source, host.copy(protocol = Protocol.SFTPPty), evt))
evt.consume()
}
}

View File

@@ -76,6 +76,12 @@ class KeymapImpl(private val menuShortcutKeyMaskEx: Int) : Keymap("Keymap", null
KeyShortcut(KeyStroke.getKeyStroke(KeyEvent.VK_R, menuShortcutKeyMaskEx or InputEvent.SHIFT_DOWN_MASK))
)
// Command + Shift + P
addShortcut(
SFTPCommandAction.SFTP_COMMAND,
KeyShortcut(KeyStroke.getKeyStroke(KeyEvent.VK_P, menuShortcutKeyMaskEx or InputEvent.SHIFT_DOWN_MASK))
)
// switch map
for (i in KeyEvent.VK_1..KeyEvent.VK_9) {

View File

@@ -27,10 +27,11 @@ class KeymapTableModel : DefaultTableModel() {
TerminalZoomOutAction.ZOOM_OUT,
TerminalZoomResetAction.ZOOM_RESET,
OpenLocalTerminalAction.LOCAL_TERMINAL,
TerminalClearScreenAction.CLEAR_SCREEN,
FindEverywhereAction.FIND_EVERYWHERE,
NewWindowAction.NEW_WINDOW,
TabReconnectAction.RECONNECT_TAB,
TerminalClearScreenAction.CLEAR_SCREEN,
SFTPCommandAction.SFTP_COMMAND,
SwitchTabAction.SWITCH_TAB,
)) {
val action = actionManager.getAction(id) ?: continue