From 743f2428058815d337101d1d808380ba76eddb80 Mon Sep 17 00:00:00 2001 From: hstyi Date: Tue, 18 Feb 2025 08:31:33 +0800 Subject: [PATCH] feat: support system fonts (#260) --- .../kotlin/app/termora/SettingsOptionsPane.kt | 31 ++++++------------- 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/src/main/kotlin/app/termora/SettingsOptionsPane.kt b/src/main/kotlin/app/termora/SettingsOptionsPane.kt index fcb2a20..83ca9ac 100644 --- a/src/main/kotlin/app/termora/SettingsOptionsPane.kt +++ b/src/main/kotlin/app/termora/SettingsOptionsPane.kt @@ -46,6 +46,7 @@ import org.jdesktop.swingx.JXEditorPane import org.slf4j.LoggerFactory import java.awt.BorderLayout import java.awt.Component +import java.awt.Dimension import java.awt.Toolkit import java.awt.datatransfer.StringSelection import java.awt.event.ItemEvent @@ -425,6 +426,11 @@ class SettingsOptionsPane : OptionsPane() { } fontComboBox.renderer = object : DefaultListCellRenderer() { + init { + preferredSize = Dimension(preferredSize.width, fontComboBox.preferredSize.height - 2) + maximumSize = Dimension(preferredSize.width, preferredSize.height) + } + override fun getListCellRendererComponent( list: JList<*>?, value: Any?, @@ -458,28 +464,11 @@ class SettingsOptionsPane : OptionsPane() { shellComboBox.selectedItem = terminalSetting.localShell - val fonts = linkedSetOf( - "JetBrains Mono", - "Source Code Pro", - "Monospaced", - "Andale Mono", - "Ayuthaya", - "Courier New", - "Droid Sans Mono", - "Fira Code", - "PCMyungjo", - "Menlo", - "Monaco", - "Osaka", - "PT Mono", - "SimSong", - ) - - for (font in FontUtils.getAllFonts()) { - if (fonts.contains(font.family)) { - continue + val fonts = linkedSetOf("JetBrains Mono", "Source Code Pro", "Monospaced") + FontUtils.getAllFonts().forEach { + if (!fonts.contains(it.family)) { + fonts.addLast(it.family) } - fonts.remove(font.family) } for (font in fonts) {