chore: do not refresh during installation

This commit is contained in:
hstyi
2025-06-30 17:26:25 +08:00
committed by hstyi
parent 1138f48a6e
commit 21229e352f
2 changed files with 9 additions and 7 deletions

View File

@@ -15,10 +15,17 @@ import java.awt.BorderLayout
import java.awt.CardLayout
import java.awt.event.ActionEvent
import java.util.concurrent.atomic.AtomicBoolean
import java.util.concurrent.atomic.AtomicInteger
import javax.swing.*
class MarketplacePanel : JPanel(BorderLayout()), Disposable {
companion object {
/**
* 正在安装的数量
*/
val installing = AtomicInteger(0)
}
private val pluginsPanel = JPanel(VerticalFlowLayout(VerticalFlowLayout.TOP, 0, 8))
private val cardLayout = CardLayout()
@@ -93,6 +100,7 @@ class MarketplacePanel : JPanel(BorderLayout()), Disposable {
}
fun reload() {
if (installing.get() > 0) return
if (isLoading.compareAndSet(false, true)) {
coroutineScope.launch {
withContext(Dispatchers.Swing) {

View File

@@ -20,7 +20,6 @@ import org.apache.commons.net.io.Util
import org.jdesktop.swingx.JXLabel
import org.slf4j.LoggerFactory
import java.awt.Dimension
import java.util.concurrent.atomic.AtomicInteger
import java.util.zip.ZipEntry
import java.util.zip.ZipInputStream
import javax.swing.*
@@ -33,11 +32,6 @@ class PluginPanel(val descriptor: PluginPluginDescriptor) : JPanel(), Disposable
private val log = LoggerFactory.getLogger(PluginPanel::class.java)
private val installed = mutableSetOf<String>()
private val uninstalled = mutableSetOf<String>()
/**
* 正在安装的数量
*/
private val installing = AtomicInteger(0)
private val publicKey = Ed25519.generatePublic(
Base64.decodeBase64("MCowBQYDK2VwAyEAHPyJ5kt2UHWYUPnWU84DOEhCCUE5FEpzdAbeTCNV31A")
)
@@ -47,7 +41,7 @@ class PluginPanel(val descriptor: PluginPluginDescriptor) : JPanel(), Disposable
private val updateButton = InstallButton().apply { update = true }
private val installButton = InstallButton()
private val uninstallButton = JButton(I18n.getString("termora.settings.plugin.uninstall"))
private val installing get() = MarketplacePanel.installing
private val restarter get() = TermoraRestarter.getInstance()
private val pluginManager get() = PluginManager.getInstance()
private val owner get() = SwingUtilities.getWindowAncestor(this)