From 2568e7fcc89b2b3b416d63704270d937be2eac4f Mon Sep 17 00:00:00 2001 From: hstyi Date: Wed, 9 Apr 2025 17:31:49 +0800 Subject: [PATCH] fix: background image selection failure --- src/main/kotlin/app/termora/BackgroundManager.kt | 3 +-- src/main/kotlin/app/termora/SettingsOptionsPane.kt | 4 +++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/app/termora/BackgroundManager.kt b/src/main/kotlin/app/termora/BackgroundManager.kt index 11bec50..31706b2 100644 --- a/src/main/kotlin/app/termora/BackgroundManager.kt +++ b/src/main/kotlin/app/termora/BackgroundManager.kt @@ -22,8 +22,7 @@ class BackgroundManager private constructor() { fun setBackgroundImage(file: File) { synchronized(this) { try { - - bufferedImage = ImageIO.read(file) + bufferedImage = file.inputStream().use { ImageIO.read(it) } imageFilepath = file.absolutePath appearance.backgroundImage = file.absolutePath diff --git a/src/main/kotlin/app/termora/SettingsOptionsPane.kt b/src/main/kotlin/app/termora/SettingsOptionsPane.kt index a7a51ef..076d6c2 100644 --- a/src/main/kotlin/app/termora/SettingsOptionsPane.kt +++ b/src/main/kotlin/app/termora/SettingsOptionsPane.kt @@ -59,6 +59,7 @@ import java.awt.event.ItemListener import java.io.File import java.net.URI import java.nio.charset.StandardCharsets +import java.nio.file.StandardCopyOption import java.util.* import java.util.function.Consumer import javax.swing.* @@ -276,7 +277,8 @@ class SettingsOptionsPane : OptionsPane() { try { val destFile = FileUtils.getFile(Application.getBaseDataDir(), "background", file.name) FileUtils.forceMkdirParent(destFile) - FileUtils.copyFile(file, destFile) + FileUtils.deleteQuietly(destFile) + FileUtils.copyFile(file, destFile, StandardCopyOption.REPLACE_EXISTING) backgroundImageTextField.text = destFile.name BackgroundManager.getInstance().setBackgroundImage(destFile) } catch (e: Exception) {