summaryrefslogtreecommitdiff
path: root/Sora/Views/Settings/Section/SettingsSectionThumbnailsView.swift
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-09-22 02:05:34 -0700
committerFuwn <[email protected]>2025-09-22 02:05:34 -0700
commit3e82a4422fadfadd8b6bd4b41b9a41d768e70ac1 (patch)
treef0287230c16ab8a30e15588314f32238b0803cb9 /Sora/Views/Settings/Section/SettingsSectionThumbnailsView.swift
parentfeat: Development commit (diff)
downloadsora-testing-3e82a4422fadfadd8b6bd4b41b9a41d768e70ac1.tar.xz
sora-testing-3e82a4422fadfadd8b6bd4b41b9a41d768e70ac1.zip
feat: Development commit
Diffstat (limited to 'Sora/Views/Settings/Section/SettingsSectionThumbnailsView.swift')
-rw-r--r--Sora/Views/Settings/Section/SettingsSectionThumbnailsView.swift67
1 files changed, 67 insertions, 0 deletions
diff --git a/Sora/Views/Settings/Section/SettingsSectionThumbnailsView.swift b/Sora/Views/Settings/Section/SettingsSectionThumbnailsView.swift
new file mode 100644
index 0000000..27c4676
--- /dev/null
+++ b/Sora/Views/Settings/Section/SettingsSectionThumbnailsView.swift
@@ -0,0 +1,67 @@
+import SwiftUI
+
+struct SettingsSectionThumbnailsView: View {
+ @EnvironmentObject var settings: SettingsManager
+ @State private var isShowingContentFiltering = false
+
+ var body: some View {
+ Form {
+ Section(header: Text("Thumbnail Quality")) {
+ Picker("Thumbnail Quality", selection: $settings.thumbnailQuality) {
+ ForEach(BooruPostFileType.allCases, id: \.self) { type in
+ Text(type.rawValue.capitalized).tag(type)
+ }
+ }
+ }
+
+ Section(header: Text("Grid Layout")) {
+ #if os(macOS)
+ Picker("Thumbnail Grid Columns", selection: $settings.thumbnailGridColumns) {
+ ForEach(1...10, id: \.self) { columns in Text("\(columns)") }
+ }
+ #else
+ Stepper(
+ "Thumbnail Grid Columns: \(settings.thumbnailGridColumns)",
+ value: $settings.thumbnailGridColumns,
+ in: 1...10
+ )
+ #endif
+
+ Toggle("Uniform Thumbnail Size", isOn: $settings.uniformThumbnailGrid)
+
+ Toggle("Lazy Thumbnail Loading", isOn: $settings.alternativeThumbnailGrid)
+ }
+
+ Section(header: Text("Content Filtering")) {
+ #if os(macOS)
+ Button("Content Filtering") {
+ isShowingContentFiltering.toggle()
+ }
+ .sheet(isPresented: $isShowingContentFiltering) {
+ SettingsContentRatingsView()
+ .frame(minHeight: 250)
+ }
+ .trailingFrame()
+ #else
+ NavigationLink(destination: SettingsContentRatingsView()) {
+ Text("Content Filtering")
+ }
+ #endif
+ }
+ }
+ #if os(macOS)
+ .formStyle(.grouped)
+ #endif
+ .navigationTitle("Thumbnails")
+ #if !os(macOS)
+ .navigationBarTitleDisplayMode(.large)
+ #endif
+ }
+}
+
+#Preview {
+ NavigationStack {
+ SettingsSectionThumbnailsView()
+ .environmentObject(SettingsManager())
+ }
+}