diff options
| author | Fuwn <[email protected]> | 2025-09-22 02:05:34 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-09-22 02:05:34 -0700 |
| commit | 3e82a4422fadfadd8b6bd4b41b9a41d768e70ac1 (patch) | |
| tree | f0287230c16ab8a30e15588314f32238b0803cb9 /Sora/Views/Settings/Section/SettingsSectionThumbnailsView.swift | |
| parent | feat: Development commit (diff) | |
| download | sora-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.swift | 67 |
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()) + } +} |