fix: compression not working & popup not closing

This commit is contained in:
hstyi
2025-08-07 16:39:11 +08:00
committed by hstyi
parent 7c0cbab187
commit f8588745cd
2 changed files with 17 additions and 10 deletions

View File

@@ -1,9 +1,7 @@
package app.termora.terminal.panel.vw package app.termora.terminal.panel.vw
import app.termora.* import app.termora.*
import app.termora.actions.AnAction import app.termora.actions.*
import app.termora.actions.AnActionEvent
import app.termora.actions.DataProviders
import app.termora.plugin.internal.badge.Badge import app.termora.plugin.internal.badge.Badge
import app.termora.plugin.internal.ssh.SSHTerminalTab import app.termora.plugin.internal.ssh.SSHTerminalTab
import app.termora.plugin.internal.ssh.SSHTerminalTab.Companion.SSHSession import app.termora.plugin.internal.ssh.SSHTerminalTab.Companion.SSHSession
@@ -39,7 +37,7 @@ import kotlin.time.Duration.Companion.milliseconds
internal class TransferVisualWindow(tab: SSHTerminalTab, visualWindowManager: VisualWindowManager) : internal class TransferVisualWindow(tab: SSHTerminalTab, visualWindowManager: VisualWindowManager) :
SSHVisualWindow(tab, "Transfer", visualWindowManager) { SSHVisualWindow(tab, "Transfer", visualWindowManager), DataProvider {
companion object { companion object {
private val log = LoggerFactory.getLogger(TransferVisualWindow::class.java) private val log = LoggerFactory.getLogger(TransferVisualWindow::class.java)
@@ -65,7 +63,7 @@ internal class TransferVisualWindow(tab: SSHTerminalTab, visualWindowManager: Vi
private val downloadBtn = JButton(Icons.download) private val downloadBtn = JButton(Icons.download)
private val badgePresentation = Badge.getInstance(tab.windowScope) private val badgePresentation = Badge.getInstance(tab.windowScope)
.addBadge(downloadBtn).apply { visible = false } .addBadge(downloadBtn).apply { visible = false }
private val support = DataProviderSupport()
init { init {
initViews() initViews()
@@ -82,6 +80,8 @@ internal class TransferVisualWindow(tab: SSHTerminalTab, visualWindowManager: Vi
add(panel, BorderLayout.CENTER) add(panel, BorderLayout.CENTER)
support.addData(TransportViewer.MyTransferManager, transferManager)
} }
private fun initEvents() { private fun initEvents() {
@@ -240,6 +240,10 @@ internal class TransferVisualWindow(tab: SSHTerminalTab, visualWindowManager: Vi
super.dispose() super.dispose()
} }
override fun <T : Any> getData(dataKey: DataKey<T>): T? {
return support.getData(dataKey)
}
override fun toolbarButtons(): List<Pair<JButton, Position>> { override fun toolbarButtons(): List<Pair<JButton, Position>> {
return listOf(downloadBtn to Position.Left, questionBtn to Position.Right) return listOf(downloadBtn to Position.Left, questionBtn to Position.Right)
} }

View File

@@ -1,12 +1,10 @@
package app.termora.transfer package app.termora.transfer
import app.termora.Application import app.termora.*
import app.termora.ApplicationScope
import app.termora.I18n
import app.termora.OptionPane
import app.termora.plugin.ExtensionManager import app.termora.plugin.ExtensionManager
import app.termora.transfer.TransportPanel.Companion.isLocallyFileSystem import app.termora.transfer.TransportPanel.Companion.isLocallyFileSystem
import com.formdev.flatlaf.extras.components.FlatPopupMenu import com.formdev.flatlaf.extras.components.FlatPopupMenu
import kotlinx.coroutines.launch
import org.apache.commons.io.IOUtils import org.apache.commons.io.IOUtils
import org.apache.commons.lang3.StringUtils import org.apache.commons.lang3.StringUtils
import org.apache.sshd.sftp.client.fs.SftpFileSystem import org.apache.sshd.sftp.client.fs.SftpFileSystem
@@ -149,7 +147,12 @@ internal class TransportPopupMenu(
} }
private fun initEvents() { private fun initEvents() {
transferMenu.addActionListener { fireActionPerformed(it, ActionCommand.Transfer) } transferMenu.addActionListener {
swingCoroutineScope.launch {
fireActionPerformed(it, ActionCommand.Transfer)
}
}
deleteMenu.addActionListener { deleteMenu.addActionListener {
if (OptionPane.showConfirmDialog( if (OptionPane.showConfirmDialog(
owner, owner,