Skip to content

Commit e6c7d48

Browse files
committed
Refresh dialog languages after settings change
1 parent d89a742 commit e6c7d48

File tree

2 files changed

+22
-5
lines changed

2 files changed

+22
-5
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@
88

99
- Allow configuring a Google Cloud Translation API key for the Google translator, including secure credential storage and Compose UI controls.
1010

11+
### Fixed
12+
13+
- Refresh dialog languages after settings change.
14+
1115
## [4.1.0] - 2025-10-11
1216

1317
### Added

src/main/kotlin/com/airsaid/localization/ui/SelectLanguagesDialog.kt

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,8 @@ class SelectLanguagesDialog(private val project: Project) : ComposeDialog(projec
7979
get() = 900 to 620
8080

8181
private val translatorService = TranslatorService.getInstance()
82-
private val translator = translatorService.getSelectedTranslator()
83-
private val supportedLanguages = translator.supportedLanguages.sortedBy { it.code }
82+
private var translator by mutableStateOf(translatorService.getSelectedTranslator())
83+
private var supportedLanguages by mutableStateOf(translator.supportedLanguages.sortedBy { it.code })
8484
private val defaultFavoriteCodes = Languages.defaultFavoriteCodes()
8585

8686
private val favoriteLanguages = mutableStateListOf<Lang>()
@@ -143,8 +143,8 @@ class SelectLanguagesDialog(private val project: Project) : ComposeDialog(projec
143143
return
144144
}
145145

146-
val languages by remember(favoriteLanguages) {
147-
derivedStateOf { translator.supportedLanguages.filterNot { favoriteLanguages.contains(it) } }
146+
val languages by remember(favoriteLanguages, supportedLanguages) {
147+
derivedStateOf { supportedLanguages.filterNot { favoriteLanguages.contains(it) } }
148148
}
149149

150150
SelectLanguagesContent(
@@ -178,6 +178,7 @@ class SelectLanguagesDialog(private val project: Project) : ComposeDialog(projec
178178
}
179179

180180
private fun loadState() {
181+
stateInitialized = false
181182
val properties = properties()
182183

183184
favoriteLanguages.clear()
@@ -251,6 +252,18 @@ class SelectLanguagesDialog(private val project: Project) : ComposeDialog(projec
251252

252253
private fun openPluginSettings() {
253254
ShowSettingsUtil.getInstance().showSettingsDialog(project, SettingsConfigurable::class.java)
255+
refreshSettingsFromConfig()
256+
}
257+
258+
private fun refreshSettingsFromConfig() {
259+
val updatedTranslator = translatorService.getSelectedTranslator()
260+
val updatedSupportedLanguages = updatedTranslator.supportedLanguages.sortedBy { it.code }
261+
if (translator.key == updatedTranslator.key && supportedLanguages == updatedSupportedLanguages) {
262+
return
263+
}
264+
translator = updatedTranslator
265+
supportedLanguages = updatedSupportedLanguages
266+
loadState()
254267
}
255268
}
256269

@@ -709,4 +722,4 @@ private fun TranslatorFooter(translator: AbstractTranslator, onOpenSettings: ()
709722
}
710723
}
711724
}
712-
}
725+
}

0 commit comments

Comments
 (0)