From 11008ef7d14d5bd767c176edbce5702f2aa4012b Mon Sep 17 00:00:00 2001 From: Qijia Liu Date: Fri, 17 May 2024 15:28:24 -0400 Subject: [PATCH] preview font (#125) --- assets/zh-Hans.lproj/Localizable.strings | Bin 14548 -> 8319 bytes src/config/optionviews.swift | 16 ++++++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/assets/zh-Hans.lproj/Localizable.strings b/assets/zh-Hans.lproj/Localizable.strings index fe14f48b0fd1d893bdcaec969382c61be084c24e..780bca08a3d6d1f83be682b24cae2e934d9d7a49 100644 GIT binary patch literal 8319 zcmbVS+fN%;8h_7UaTK-MZIr-nt4LK=t4&0k3bmwJNTj}wJ;(NJ#xtY2K>f0E5)5{X z!AZCV2$yhilYmKxz}SZTFI}HAQ?)yjK6dj+lJz5!x#-fq-ln*kuH7& z=hOLBvL|)iiXjXm&nBd-vMfEtts&KEf4U?^Yh#o$J>+=shif9w&!?Fv-OdEZE^9KBMu&47U{zesj{`b#rBLBsx z$T;}s%g=6hD-Qq6qh1f?-ar?`k&W5r<5Ejjw{qgT8Bug(TCQdq&hOeqG9~gZ-Aw18 zD)A2_lD98`qYsd0f%8RV(pPD^vPl;|K%JD*nK5do{?041R1&PDnCMus5#(J*Fjg}D zFI6xR&a#V`;|x6q+vhn#`qAuR7aUDbSB<~4lS$+KHp%;KI~G{7@ucbq3XxC2$#as~ zg!B?|@u~izx%@KxR>o~DEp$_X=5$eqPQg&FGMncFOL@h{t>_@xMN+Fu5qpknCehu5 ztvDjWg7Mc-N*hPHpj?pb#NU`B2Ddl{#Wd`HjY^&s@LY=-q~s zchHFDCXk!J$Wf9Q8SK}H26-F7$Q;JDt*I(Ddie2@;shxc=_WvI5P37pfYO}4#@!WYQTWl7i4v?yy9imhR%LvKholBsl|eTeO%B9kqi z$(@YJ$Abh({slHa#5qQ^Qk_;T3R|sjt*#kmgbL1c8{)2 zG?&-ml|Onwij%_sD3mAiM>1#541@es+los0M}T4Bmfc+ND$@lu>ZsX-Gm$Tk{X!As zz~LKi2=|-I3(eZRVA+LUt#CVh-vtYp3Z2j}7BnJEZgj-2u#sWTwIhFV7y7-7ir-@~ z(a?!pb6N^)1LcTmhnbYw2Wr6ZGNOObqS$a?)!-Q_7JV|;C+!{m#j2cxj?lIQ56gTq5_hI z66JbI>1Ma0uDMnv)hRhz4OU|?MWkST1oLhrTnp6GWa?> z_qF;l&DWbN`||xbDokZ%Z_UTm$nPW<2U%V17+ zwj}UJ-ByGlC5*qu$7QlJFLOpiu)T>UxG}W2ulOO+-jU`lk8luR$^6*OKVipjmm2nT!KRDAvt9$MJJ8ZVW`Jqm*md83@ z7Th!AakxVo0*8UWcr23aI4!ITkA>g6rm4G{)k(qJJghldMAJ36b24LMH}VI3V1Yx5 zTY#m5ZK<2F`>ksUp&7r4kU7^jJ=~6|=mEwSI$Jnemm3pw?f}x?pIPX(ikylPW8YPN zzmil^2<|LZR@jq@;c<*+^Dfh2l9-ub4u*Rdc1Vwpn@ef9dZD>Ic~TP1OwQ~F1}qM_ z1iJLvUy)kj+&3K0Vk;m}TWsNxo3e20f}v3<(CIRrc*tfvzJmAP)yT^{doQt7yWg>a zm)^Y#Vx*kEVv^tDhn(QJ_-XlX@}#ie4V$>FsO)}8L6$&z%iuogpt+ z(7v#zlR4RrDQNtBWVI1x_1wa(BAfRU(l0wb&A03hL8cc_5b3 X8=vF)J8z^|xBk1p8C}mk1ctu>o*``K literal 14548 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 IzEgAff2!2?-2eap diff --git a/src/config/optionviews.swift b/src/config/optionviews.swift index 7dc71ba..4d15412 100644 --- a/src/config/optionviews.swift +++ b/src/config/optionviews.swift @@ -311,6 +311,7 @@ struct FontOptionView: OptionView { @ObservedObject var model: FontOption @State private var selectorIsOpen = false @State var searchInput = "" + @State var previewInput = NSLocalizedString("Preview", comment: "") // If initialize [], the sheet will list nothing on first open. @State var availableFontFamilies = NSFontManager.shared.availableFontFamilies @@ -337,9 +338,16 @@ struct FontOptionView: OptionView { .sheet(isPresented: $selectorIsOpen) { VStack { TextField(NSLocalizedString("Search", comment: ""), text: $searchInput) + TextField(NSLocalizedString("Preview", comment: ""), text: $previewInput) + Text(previewInput).font(Font.custom(selectedFontFamily ?? model.value, size: 32)).frame( + height: 64) List(selection: $selectedFontFamily) { ForEach(filteredFontFamilies, id: \.self) { family in - Text(localize(family)) + HStack { + Text(localize(family)).font(Font.custom(family, size: 14)) + Spacer() + Text(localize(family)) + } } }.contextMenu(forSelectionType: String.self) { items in } primaryAction: { items in @@ -357,12 +365,12 @@ struct FontOptionView: OptionView { select() } label: { Text("Select") - } - .disabled(selectedFontFamily == nil) + }.buttonStyle(.borderedProminent) + .disabled(selectedFontFamily == nil) } } .padding() - .frame(minWidth: 400, minHeight: 400) + .frame(minWidth: 500, minHeight: 600) } }