summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-06-27 19:18:54 -0700
committerFuwn <[email protected]>2025-06-27 19:18:54 -0700
commit40918f417cec13cde2b7be8555d3f3bf8fa6656f (patch)
treece3f0daaaece3a6af75f37305898530f9b4d940f
parentfeat: Development commit (diff)
downloadsora-testing-40918f417cec13cde2b7be8555d3f3bf8fa6656f.tar.xz
sora-testing-40918f417cec13cde2b7be8555d3f3bf8fa6656f.zip
feat: Development commit
-rw-r--r--Localizable.xcstrings3
-rw-r--r--Sora/Data/Settings/SettingsManager.swift3
-rw-r--r--Sora/Views/Post/Grid/PostGridThumbnailView.swift16
-rw-r--r--Sora/Views/Settings/Section/SettingsThumbnailsView.swift2
4 files changed, 23 insertions, 1 deletions
diff --git a/Localizable.xcstrings b/Localizable.xcstrings
index 49b207b..f94e55f 100644
--- a/Localizable.xcstrings
+++ b/Localizable.xcstrings
@@ -428,6 +428,9 @@
"Uncategorised" : {
},
+ "Uniform Thumbnail Size" : {
+
+ },
"User ID" : {
}
diff --git a/Sora/Data/Settings/SettingsManager.swift b/Sora/Data/Settings/SettingsManager.swift
index 5cd59ff..007c1d8 100644
--- a/Sora/Data/Settings/SettingsManager.swift
+++ b/Sora/Data/Settings/SettingsManager.swift
@@ -31,6 +31,9 @@ class SettingsManager: ObservableObject { // swiftlint:disable:this type_body_l
@AppStorage("alternativeThumbnailGrid")
var alternativeThumbnailGrid = false
+ @AppStorage("uniformThumbnailGrid")
+ var uniformThumbnailGrid = false
+
private var syncObservation: NSObjectProtocol?
#if os(macOS)
diff --git a/Sora/Views/Post/Grid/PostGridThumbnailView.swift b/Sora/Views/Post/Grid/PostGridThumbnailView.swift
index b281980..15bf9da 100644
--- a/Sora/Views/Post/Grid/PostGridThumbnailView.swift
+++ b/Sora/Views/Post/Grid/PostGridThumbnailView.swift
@@ -20,7 +20,7 @@ struct PostGridThumbnailView: View {
}
@ViewBuilder
- private func imageContent(image: Image) -> some View {
+ private func primaryImageContent(image: Image) -> some View {
let isFiltered =
settings.blurRatings.contains(post.rating)
&& manager.selectedPost?.id != post.id
@@ -34,6 +34,20 @@ struct PostGridThumbnailView: View {
.clipShape(RoundedRectangle(cornerRadius: 8))
}
+ @ViewBuilder
+ private func imageContent(image: Image) -> some View {
+ if settings.uniformThumbnailGrid {
+ GeometryReader { proxy in
+ primaryImageContent(image: image)
+ .frame(width: proxy.size.width, height: proxy.size.width)
+ }
+ .clipped()
+ .aspectRatio(1, contentMode: .fit)
+ } else {
+ primaryImageContent(image: image)
+ }
+ }
+
var body: some View {
VStack {
NetworkImage(
diff --git a/Sora/Views/Settings/Section/SettingsThumbnailsView.swift b/Sora/Views/Settings/Section/SettingsThumbnailsView.swift
index 9e4c856..910debb 100644
--- a/Sora/Views/Settings/Section/SettingsThumbnailsView.swift
+++ b/Sora/Views/Settings/Section/SettingsThumbnailsView.swift
@@ -23,6 +23,8 @@ struct SettingsThumbnailsView: View {
)
#endif
+ Toggle("Uniform Thumbnail Size", isOn: $settings.uniformThumbnailGrid)
+
Toggle("Lazy Thumbnail Loading", isOn: $settings.alternativeThumbnailGrid)
#if os(macOS)