diff options
| author | Dustin Mierau <dustin@mierau.me> | 2024-05-05 23:17:24 -0700 |
|---|---|---|
| committer | Dustin Mierau <dustin@mierau.me> | 2024-05-05 23:17:24 -0700 |
| commit | acce577bc6a66b5c7af56adb709adf740ba548d8 (patch) | |
| tree | 5bf5a60927b14a00cfe85aba3533f3168ff69ca5 /Hotline | |
| parent | a74ceae0348bb04fc0b289dc7226934726ce9ece (diff) | |
Clean up Settings a wee bit: icons now show at proper scale, switches for sounds, same width across panes is less jumpy.
Diffstat (limited to 'Hotline')
| -rw-r--r-- | Hotline/macOS/SettingsView.swift | 76 |
1 files changed, 36 insertions, 40 deletions
diff --git a/Hotline/macOS/SettingsView.swift b/Hotline/macOS/SettingsView.swift index 99f1461..24cfddf 100644 --- a/Hotline/macOS/SettingsView.swift +++ b/Hotline/macOS/SettingsView.swift @@ -24,8 +24,8 @@ struct GeneralSettingsView: View { } } } - .padding(20) - .frame(width: 350) + .padding() + .frame(width: 392) .onAppear { self.username = preferences.username self.usernameChanged = false @@ -56,13 +56,13 @@ struct IconSettingsView: View { ScrollViewReader { scrollProxy in ScrollView { LazyVGrid(columns: [ - GridItem(.fixed(4+64+4)), - GridItem(.fixed(4+64+4)), - GridItem(.fixed(4+64+4)), - GridItem(.fixed(4+64+4)), - GridItem(.fixed(4+64+4)), - GridItem(.fixed(4+64+4)), - GridItem(.fixed(4+64+4)) + GridItem(.fixed(4+32+4)), + GridItem(.fixed(4+32+4)), + GridItem(.fixed(4+32+4)), + GridItem(.fixed(4+32+4)), + GridItem(.fixed(4+32+4)), + GridItem(.fixed(4+32+4)), + GridItem(.fixed(4+32+4)) ], spacing: 0) { ForEach(Hotline.classicIconSet, id: \.self) { iconID in HStack { @@ -70,10 +70,10 @@ struct IconSettingsView: View { .resizable() .interpolation(.none) .scaledToFit() - .frame(width: 64, height: 32) + .frame(width: 32, height: 16) } .tag(iconID) - .frame(width: 64, height: 64) + .frame(width: 32, height: 32) .padding(4) .background(iconID == preferences.userIconID ? Color.accentColor : (iconID == hoveredUserIconID ? Color.accentColor.opacity(0.1) : Color(nsColor: .textBackgroundColor))) .clipShape(RoundedRectangle(cornerRadius: 5)) @@ -95,7 +95,7 @@ struct IconSettingsView: View { .onAppear { scrollProxy.scrollTo(preferences.userIconID, anchor: .center) } - .frame(height: 415) + .frame(height: 355) } } .padding() @@ -105,43 +105,39 @@ struct IconSettingsView: View { struct SoundSettingsView: View { var body: some View { @Bindable var preferences = Prefs.shared + Form { - Toggle("Play Sounds for:", isOn: $preferences.playSounds) + Toggle("Enable Sounds", isOn: $preferences.playSounds) + .controlSize(.large) + + Section("Sounds") { + Toggle("Chat", isOn: $preferences.playChatSound) + .disabled(!preferences.playSounds) - Toggle("Chat", isOn: $preferences.playChatSound) - .disabled(!preferences.playSounds) - .padding([.leading], 20) + Toggle("File Transfers", isOn: $preferences.playFileTransferCompleteSound) + .disabled(!preferences.playSounds) - Toggle("File transfer complete", isOn: $preferences.playFileTransferCompleteSound) - .disabled(!preferences.playSounds) - .padding([.leading], 20) - Toggle("Private Message", isOn: $preferences.playPrivateMessageSound) - .disabled(!preferences.playSounds) - .padding([.leading], 20) + Toggle("Private Message", isOn: $preferences.playPrivateMessageSound) + .disabled(!preferences.playSounds) - Toggle("Join", isOn: $preferences.playJoinSound) - .disabled(!preferences.playSounds) - .padding([.leading], 20) + Toggle("Join", isOn: $preferences.playJoinSound) + .disabled(!preferences.playSounds) - Toggle("Leave", isOn: $preferences.playLeaveSound) - .disabled(!preferences.playSounds) - .padding([.leading], 20) + Toggle("Leave", isOn: $preferences.playLeaveSound) + .disabled(!preferences.playSounds) - Toggle("Logged in", isOn: $preferences.playLoggedInSound) - .disabled(!preferences.playSounds) - .padding([.leading], 20) + Toggle("Logged in", isOn: $preferences.playLoggedInSound) + .disabled(!preferences.playSounds) - Toggle("Error", isOn: $preferences.playErrorSound) - .disabled(!preferences.playSounds) - .padding([.leading], 20) - - Toggle("Chat Invitation", isOn: $preferences.playChatInvitationSound) - .disabled(!preferences.playSounds) - .padding([.leading], 20) + Toggle("Error", isOn: $preferences.playErrorSound) + .disabled(!preferences.playSounds) + Toggle("Chat Invitation", isOn: $preferences.playChatInvitationSound) + .disabled(!preferences.playSounds) + } } - .padding(20) - .frame(width: 350) + .formStyle(.grouped) + .frame(width: 392, height: 433) } } |