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
import app.termora.*
import app.termora.actions.AnAction
import app.termora.actions.AnActionEvent
import app.termora.actions.DataProviders
import app.termora.actions.*
import app.termora.plugin.internal.badge.Badge
import app.termora.plugin.internal.ssh.SSHTerminalTab
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) :
SSHVisualWindow(tab, "Transfer", visualWindowManager) {
SSHVisualWindow(tab, "Transfer", visualWindowManager), DataProvider {
companion object {
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 badgePresentation = Badge.getInstance(tab.windowScope)
.addBadge(downloadBtn).apply { visible = false }
private val support = DataProviderSupport()
init {
initViews()
@@ -82,6 +80,8 @@ internal class TransferVisualWindow(tab: SSHTerminalTab, visualWindowManager: Vi
add(panel, BorderLayout.CENTER)
support.addData(TransportViewer.MyTransferManager, transferManager)
}
private fun initEvents() {
@@ -240,6 +240,10 @@ internal class TransferVisualWindow(tab: SSHTerminalTab, visualWindowManager: Vi
super.dispose()
}
override fun <T : Any> getData(dataKey: DataKey<T>): T? {
return support.getData(dataKey)
}
override fun toolbarButtons(): List<Pair<JButton, Position>> {
return listOf(downloadBtn to Position.Left, questionBtn to Position.Right)
}

View File

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