Settings: Add line spacing option which apply to only posts content for now

This commit is contained in:
Thomas Ricouard 2023-03-26 18:51:15 +02:00
parent 69e5ba251c
commit 92e15fdcc9
22 changed files with 31 additions and 0 deletions

View file

@ -137,6 +137,15 @@ struct DisplaySettingsView: View {
.alignmentGuide(.listRowSeparatorLeading) { d in
d[.leading]
}
VStack {
Slider(value: $theme.lineSpacing, in: 0.4 ... 10.0, step: 0.2)
Text("settings.display.font.line-spacing-\(String(format: "%.1f", theme.lineSpacing))")
.font(.scaledBody)
}
.alignmentGuide(.listRowSeparatorLeading) { d in
d[.leading]
}
}
.listRowBackground(theme.primaryBackgroundColor)
}

View file

@ -78,6 +78,7 @@
"settings.display.font.system" = "Сістэмны";
"settings.display.font.custom" = "Уласны";
"settings.display.font.scaling-%@" = "Маштаб шрыфту: %@";
"settings.display.font.line-spacing-%@" = "Line Spacing: %@";
"settings.display.avatar.position" = "Пазіцыя аватару";
"settings.display.avatar.shape" = "Форма аватару";
"settings.display.full-username" = "Паказваць поўнае імя";

View file

@ -174,6 +174,7 @@
"settings.display.font.system" = "Sistema";
"settings.display.font.custom" = "Personalitzada";
"settings.display.font.scaling-%@" = "Escalat de la lletra: %@";
"settings.display.font.line-spacing-%@" = "Line Spacing: %@";
"settings.about.built-with" = "Ice Cubes is built with the following Open Source software:";
"settings.about.title" = "Ice Cubes";
"settings.account.cached-posts-%@" = "Publicacions en la memòria cau: %@";

View file

@ -172,6 +172,7 @@
"settings.display.font.system" = "System";
"settings.display.font.custom" = "Eigene";
"settings.display.font.scaling-%@" = "Schriftskalierung: %@";
"settings.display.font.line-spacing-%@" = "Line Spacing: %@";
"settings.about.built-with" = "Ice Cubes wird mit folgender Open-Source-Software erstellt:";
"settings.about.title" = "Ice Cubes";
"settings.account.cached-posts-%@" = "Beiträge im Cache: %@";

View file

@ -78,6 +78,7 @@
"settings.display.font.system" = "System";
"settings.display.font.custom" = "Custom";
"settings.display.font.scaling-%@" = "Font Scaling: %@";
"settings.display.font.line-spacing-%@" = "Line Spacing: %@";
"settings.display.avatar.position" = "Avatar Position";
"settings.display.avatar.shape" = "Avatar Shape";
"settings.display.full-username" = "Display Full Username";

View file

@ -78,6 +78,7 @@
"settings.display.font.system" = "System";
"settings.display.font.custom" = "Custom";
"settings.display.font.scaling-%@" = "Font Scaling: %@";
"settings.display.font.line-spacing-%@" = "Line Spacing: %@";
"settings.display.avatar.position" = "Avatar Position";
"settings.display.avatar.shape" = "Avatar Shape";
"settings.display.full-username" = "Display Full Username";

View file

@ -172,6 +172,7 @@
"settings.display.font.system" = "De sistema";
"settings.display.font.custom" = "Personalizada";
"settings.display.font.scaling-%@" = "Escalado de tipografía: %@";
"settings.display.font.line-spacing-%@" = "Line Spacing: %@";
"settings.about.built-with" = "Ice Cubes utiliza estas librerías de código abierto:";
"settings.about.title" = "Ice Cubes";
"settings.account.cached-posts-%@" = "Publicaciones cacheadas: %@";

View file

@ -172,6 +172,7 @@
"settings.display.font.system" = "Sistemak darabilena";
"settings.display.font.custom" = "Norberak ezarritakoa";
"settings.display.font.scaling-%@" = "Letra tipoaren neurria: %@";
"settings.display.font.line-spacing-%@" = "Line Spacing: %@";
"settings.about.built-with" = "Ice Cubes ondorengo iturburu irekiko softwarea erabiliz egin da:";
"settings.about.title" = "Ice Cubes";
"settings.account.cached-posts-%@" = "Bidalketak katxean: %@";

View file

@ -175,6 +175,7 @@
"settings.display.font.system" = "Système";
"settings.display.font.custom" = "Personnalisée";
"settings.display.font.scaling-%@" = "Mise à l'échelle de la police: %@";
"settings.display.font.line-spacing-%@" = "Line Spacing: %@";
"settings.about.built-with" = "Ice Cubes est développé avec les logiciels Open Source suivants :";
"settings.about.title" = "Ice Cubes";
"settings.account.cached-posts-%@" = "Publications en cache: %@";

View file

@ -173,6 +173,7 @@
"settings.display.font.system" = "Sistema";
"settings.display.font.custom" = "Personalizzato";
"settings.display.font.scaling-%@" = "Font scaling: %@";
"settings.display.font.line-spacing-%@" = "Line Spacing: %@";
"settings.other.autoplay-video" = "Auto Play dei video";
"settings.about.built-with" = "Ice Cubes utilizza i seguenti software Open Source:";
"settings.about.title" = "Ice Cubes";

View file

@ -78,6 +78,7 @@
"settings.display.font.system" = "システムフォント";
"settings.display.font.custom" = "カスタム";
"settings.display.font.scaling-%@" = "フォントサイズ: %@";
"settings.display.font.line-spacing-%@" = "Line Spacing: %@";
"settings.display.avatar.position" = "アバターの位置";
"settings.display.avatar.shape" = "アバターの形";
"settings.display.full-username" = "完全なユーザー名を表示";

View file

@ -175,6 +175,7 @@
"settings.display.font.system" = "시스템 글꼴";
"settings.display.font.custom" = "직접 설정";
"settings.display.font.scaling-%@" = "폰트 크기 조절: %@";
"settings.display.font.line-spacing-%@" = "Line Spacing: %@";
"settings.about.built-with" = "Ice Cubes는 다음 오픈 소스 소프트웨어를 사용하여 개발되었습니다:";
"settings.about.title" = "Ice Cubes";
"settings.account.cached-posts-%@" = "캐시 데이터로 저장된 글: %@개";

View file

@ -78,6 +78,7 @@
"settings.display.font.system" = "System";
"settings.display.font.custom" = "Tilpasset";
"settings.display.font.scaling-%@" = "Font scaling: %@";
"settings.display.font.line-spacing-%@" = "Line Spacing: %@";
"settings.display.avatar.position" = "Avatarposisjon";
"settings.display.avatar.shape" = "Avatarform";
"settings.display.full-username" = "Display full username";

View file

@ -172,6 +172,7 @@
"settings.display.font.system" = "Systeem";
"settings.display.font.custom" = "Aangepast";
"settings.display.font.scaling-%@" = "Lettertype vergroten/verkleinen: %@";
"settings.display.font.line-spacing-%@" = "Line Spacing: %@";
"settings.about.built-with" = "Ice Cubes is gebouwd met de volgende opensourcesoftware:";
"settings.about.title" = "Ice Cubes";
"settings.account.cached-posts-%@" = "Posts in cache: %@";

View file

@ -175,6 +175,7 @@
"settings.display.font.system" = "Systemowa";
"settings.display.font.custom" = "Własna";
"settings.display.font.scaling-%@" = "Skalowanie czcionki: %@";
"settings.display.font.line-spacing-%@" = "Line Spacing: %@";
"settings.about.built-with" = "Ice Cubes zbudowano z wykorzystaniem następującego oprogramowania Open Source:";
"settings.about.title" = "Ice Cubes";
"settings.account.cached-posts-%@" = "Liczba postów w buforze: %@";

View file

@ -175,6 +175,7 @@
"settings.display.font.system" = "Sistema";
"settings.display.font.custom" = "Personalizada";
"settings.display.font.scaling-%@" = "Escala de fonte: %@";
"settings.display.font.line-spacing-%@" = "Line Spacing: %@";
"settings.about.built-with" = "Ice Cubes é construído com os seguintes softwares de código aberto:";
"settings.about.title" = "Ice Cubes";
"settings.account.cached-posts-%@" = "Pastagens cacheadas: %@";

View file

@ -175,6 +175,7 @@
"settings.display.font.system" = "System";
"settings.display.font.custom" = "Custom";
"settings.display.font.scaling-%@" = "Font scaling: %@";
"settings.display.font.line-spacing-%@" = "Line Spacing: %@";
"settings.about.built-with" = "Ice Cubes is built with the following Open Source software:";
"settings.about.title" = "Ice Cubes";
"settings.account.cached-posts-%@" = "Cached posts: %@";

View file

@ -78,6 +78,7 @@
"settings.display.font.system" = "Системний";
"settings.display.font.custom" = "Власний";
"settings.display.font.scaling-%@" = "Масштабування шкрифта: %@";
"settings.display.font.line-spacing-%@" = "Line Spacing: %@";
"settings.display.avatar.position" = "Розташування Аватара";
"settings.display.avatar.shape" = "Форма Аватара";
"settings.display.full-username" = "Відображати повне імʼя користувача";

View file

@ -185,6 +185,7 @@
"settings.display.font.system" = "系统";
"settings.display.font.custom" = "自定义";
"settings.display.font.scaling-%@" = "字体缩放:%@";
"settings.display.font.line-spacing-%@" = "Line Spacing: %@";
"settings.display.show-tab-label" = "显示 Tab 标签";
"settings.display.show-ipad-column" = "启用边栏";

View file

@ -78,6 +78,7 @@
"settings.display.font.system" = "系統";
"settings.display.font.custom" = "自定";
"settings.display.font.scaling-%@" = "字體縮放:%@";
"settings.display.font.line-spacing-%@" = "Line Spacing: %@";
"settings.display.avatar.position" = "頭像位置";
"settings.display.avatar.shape" = "頭像形狀";
"settings.display.full-username" = "顯示用戶全名";

View file

@ -8,6 +8,7 @@ public class Theme: ObservableObject {
case selectedSet, selectedScheme
case followSystemColorSchme
case displayFullUsernameTimeline
case lineSpacing
}
public enum FontState: Int, CaseIterable {
@ -127,6 +128,7 @@ public class Theme: ObservableObject {
@AppStorage(ThemeKey.statusDisplayStyle.rawValue) public var statusDisplayStyle: StatusDisplayStyle = .large
@AppStorage(ThemeKey.followSystemColorSchme.rawValue) public var followSystemColorScheme: Bool = true
@AppStorage(ThemeKey.displayFullUsernameTimeline.rawValue) public var displayFullUsername: Bool = true
@AppStorage(ThemeKey.lineSpacing.rawValue) public var lineSpacing: Double = 0.8
@AppStorage("font_size_scale") public var fontSizeScale: Double = 1
@AppStorage("chosen_font") public private(set) var chosenFontData: Data?

View file

@ -16,6 +16,7 @@ struct StatusRowTextView: View {
language: viewModel.finalStatus.language,
lineLimit: viewModel.lineLimit)
.font(viewModel.isFocused ? .scaledBodyFocused : .scaledBody)
.lineSpacing(CGFloat(theme.lineSpacing))
.foregroundColor(viewModel.textDisabled ? .gray : theme.labelColor)
.emojiSize(viewModel.isFocused ? Font.scaledBodyFocusedFont.emojiSize : Font.scaledBodyFont.emojiSize)
.emojiBaselineOffset(viewModel.isFocused ? Font.scaledBodyFocusedFont.emojiBaselineOffset : Font.scaledBodyFont.emojiBaselineOffset)