diff --git a/README.md b/README.md index c0cc12e..1ec31a6 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ Active playback prevents idle system sleep. Local video also keeps the display a ### Local-file queue -Use the titlebar's **Queue** icon or **View → Show Queue** to show the editable sidebar. **Add to Queue…** and dropping files onto the sidebar append without replacing the queue or interrupting the current item. Drag rows to reorder, remove them with the minus button, and double-click a row to play it. The current item is marked; context menus also offer Play, Remove and Move Up/Down. +Use the **Queue** icon immediately left of the compact-mode button in the playback controls, or **View → Show Queue**, to show the editable sidebar. **Add to Queue…** and dropping files onto the sidebar append without replacing the queue or interrupting the current item. Drag rows to reorder, remove them with the minus button, and double-click a row to play it. The current item is marked; context menus also offer Play, Remove and Move Up/Down. The navigation/Add row has extra space above it. Queue rows use equal-width leading and remove-icon slots, with 8-point outer insets matching the gaps between icons and filenames and no additional horizontal scroll-content margin. @@ -63,7 +63,7 @@ In a normal window, showing the queue expands the window outward while preservin Resizing with the queue open preserves the video's aspect ratio while keeping the sidebar at a fixed width; closing the queue retains ordinary aspect-locked video resizing. -While the sidebar is open, its persistent top header holds the queue count, queue toggle, pin, Cast and settings controls without a surrounding glass container, with matching top and right button insets; these do not fade with the video controls. Closing the sidebar returns those controls to the auto-hiding video titlebar with its glass container. Space and configured playback shortcuts continue working with queue-list focus; Tab navigation, deliberately focused buttons/sliders and text entry keep their native keyboard behavior. +While the sidebar is open, its persistent top header holds the queue count, pin, Cast and settings controls without a surrounding glass container, with matching top and right button insets; these do not fade with the video controls. Closing the sidebar returns the pin, Cast and settings controls to the auto-hiding video titlebar with its glass container. The queue toggle stays in the playback controls. Space and configured playback shortcuts continue working with queue-list focus; Tab navigation, deliberately focused buttons/sliders and text entry keep their native keyboard behavior. Playback advances automatically and stops at the end, without wrapping. **Previous Queue Item** and **Next Queue Item** are available in the sidebar and Playback menu and are disabled at their respective ends. Reordering or removing another item does not interrupt playback; removing the current item plays its next neighbor, or stops if there is none. A playback error stays on that item rather than skipping it. diff --git a/Sources/App/TerebiApp.swift b/Sources/App/TerebiApp.swift index c55fdcc..fc4aee5 100644 --- a/Sources/App/TerebiApp.swift +++ b/Sources/App/TerebiApp.swift @@ -2099,9 +2099,6 @@ private struct PlayerContent: View { private var titleControls: some View { HStack(spacing: 4) { - iconButton("list.bullet", model.showsQueue ? "Hide Queue" : "Show Queue") { - model.showsQueue.toggle() - } iconButton(model.isOnTop ? "pin.fill" : "pin", model.isOnTop ? "Stop Keeping Window on Top" : "Keep Window on Top", action: model.toggleOnTop) .imageScale(.small) @@ -2231,6 +2228,9 @@ private struct PlayerContent: View { Spacer(minLength: 8) HStack(spacing: 12) { if !model.subtitleTracks.isEmpty { captionsMenu } + iconButton("list.bullet", model.showsQueue ? "Hide Queue" : "Show Queue") { + model.showsQueue.toggle() + } iconButton("pip.enter", "Enter Compact Mode", action: model.toggleCompact) .disabled(!model.canToggleCompact) }