mirror of
https://github.com/yattee/yattee.git
synced 2026-07-20 14:22:02 +00:00
Show queue mode label and split bottom bar on macOS
On macOS the queue sheet's mode selector now shows both icon and text and shares a single bottom toolbar bar with the Close button, pinned to opposite edges.
This commit is contained in:
@@ -122,11 +122,35 @@ struct QueueManagementSheet: View {
|
|||||||
.navigationBarTitleDisplayMode(.inline)
|
.navigationBarTitleDisplayMode(.inline)
|
||||||
#endif
|
#endif
|
||||||
.toolbar {
|
.toolbar {
|
||||||
|
#if !os(macOS)
|
||||||
ToolbarItem(placement: .cancellationAction) {
|
ToolbarItem(placement: .cancellationAction) {
|
||||||
queueModeMenu
|
queueModeMenu
|
||||||
}
|
}
|
||||||
sheetCloseToolbarItem { performDismiss() }
|
sheetCloseToolbarItem { performDismiss() }
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
#if os(macOS)
|
||||||
|
// On macOS the mode selector and Close button share one bottom bar,
|
||||||
|
// with the mode selector pinned to the leading edge so it can show
|
||||||
|
// both icon and text.
|
||||||
|
.safeAreaInset(edge: .bottom) {
|
||||||
|
VStack(spacing: 0) {
|
||||||
|
Divider()
|
||||||
|
HStack {
|
||||||
|
queueModeMenu
|
||||||
|
Spacer()
|
||||||
|
Button(role: .cancel) { performDismiss() } label: {
|
||||||
|
Text(String(localized: "common.close"))
|
||||||
|
}
|
||||||
|
.keyboardShortcut(.cancelAction)
|
||||||
|
.buttonStyle(.borderedProminent)
|
||||||
|
}
|
||||||
|
.padding(.horizontal, 16)
|
||||||
|
.padding(.vertical, 10)
|
||||||
|
}
|
||||||
|
.background(.bar)
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
.presentationDragIndicator(.visible)
|
.presentationDragIndicator(.visible)
|
||||||
#if os(iOS)
|
#if os(iOS)
|
||||||
@@ -459,11 +483,20 @@ struct QueueManagementSheet: View {
|
|||||||
} label: {
|
} label: {
|
||||||
HStack(spacing: 4) {
|
HStack(spacing: 4) {
|
||||||
Image(systemName: playerState?.queueMode.icon ?? "list.bullet")
|
Image(systemName: playerState?.queueMode.icon ?? "list.bullet")
|
||||||
|
#if os(macOS)
|
||||||
|
Text(playerState?.queueMode.displayName ?? QueueMode.normal.displayName)
|
||||||
|
#endif
|
||||||
Image(systemName: "chevron.down")
|
Image(systemName: "chevron.down")
|
||||||
.font(.caption2)
|
.font(.caption2)
|
||||||
}
|
}
|
||||||
.foregroundStyle(.tint)
|
.foregroundStyle(.tint)
|
||||||
}
|
}
|
||||||
|
#if os(macOS)
|
||||||
|
// Default Menu style stretches full-width on macOS; keep the button
|
||||||
|
// hugging its label so it sits tidily in the bottom-left bar.
|
||||||
|
.menuStyle(.borderlessButton)
|
||||||
|
.fixedSize()
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user