From 0e734a3e6275d44e2fcc0c369f377f49e5e352c5 Mon Sep 17 00:00:00 2001 From: Austin Smith Date: Fri, 18 Sep 2026 21:32:32 -0700 Subject: [PATCH 1/2] remove circled toolbar icons --- BitDream/Views/Shared/TorrentDetail.swift | 2 +- BitDream/Views/iOS/iOSContentView.swift | 10 +++------- BitDream/Views/iOS/iOSTorrentDetail.swift | 2 +- BitDream/Views/macOS/macOSContentToolbar.swift | 4 ++-- BitDream/Views/macOS/macOSTorrentActionsMenu.swift | 2 +- 5 files changed, 8 insertions(+), 12 deletions(-) diff --git a/BitDream/Views/Shared/TorrentDetail.swift b/BitDream/Views/Shared/TorrentDetail.swift index 9434689..69dc8f2 100644 --- a/BitDream/Views/Shared/TorrentDetail.swift +++ b/BitDream/Views/Shared/TorrentDetail.swift @@ -717,7 +717,7 @@ struct TorrentDetailToolbar: ToolbarContent { } }) } label: { - Image(systemName: "ellipsis.circle") + Image(systemName: "ellipsis") } } #endif diff --git a/BitDream/Views/iOS/iOSContentView.swift b/BitDream/Views/iOS/iOSContentView.swift index 3e84afd..76b5822 100644 --- a/BitDream/Views/iOS/iOSContentView.swift +++ b/BitDream/Views/iOS/iOSContentView.swift @@ -362,7 +362,7 @@ private extension iOSContentView { Label("Resume All", systemImage: "play") }) } label: { - Image(systemName: "ellipsis.circle") + Image(systemName: "ellipsis") .foregroundStyle(Color.primary.opacity(isSidebarOpen && colorScheme == .light ? 0.5 : 1)) } .iOSHapticControlActivation() @@ -376,13 +376,9 @@ private extension iOSContentView { hapticFeedback.play(.actionTriggered) showPrefs.toggle() } label: { - Label( - "Filter and Sort", - systemImage: hasActiveFilters - ? "line.3.horizontal.decrease.circle.fill" - : "line.3.horizontal.decrease.circle" - ) + Label("Filter and Sort", systemImage: "line.3.horizontal.decrease") } + .tint(hasActiveFilters ? Color.accentColor : Color.primary) .accessibilityValue(hasActiveFilters ? "Active" : "Inactive") .popover(isPresented: $showPrefs) { iOSFilterAndSortView( diff --git a/BitDream/Views/iOS/iOSTorrentDetail.swift b/BitDream/Views/iOS/iOSTorrentDetail.swift index b683f2d..6872524 100644 --- a/BitDream/Views/iOS/iOSTorrentDetail.swift +++ b/BitDream/Views/iOS/iOSTorrentDetail.swift @@ -131,7 +131,7 @@ struct iOSTorrentDetail: View { onError: presentError ) } label: { - Image(systemName: "ellipsis.circle") + Image(systemName: "ellipsis") } .iOSHapticControlActivation() } diff --git a/BitDream/Views/macOS/macOSContentToolbar.swift b/BitDream/Views/macOS/macOSContentToolbar.swift index f9e5e2c..738081a 100644 --- a/BitDream/Views/macOS/macOSContentToolbar.swift +++ b/BitDream/Views/macOS/macOSContentToolbar.swift @@ -24,7 +24,7 @@ struct macOSContentToolbar: ToolbarContent { Menu { macOSContentSortMenu(sortProperty: $sortProperty, sortOrder: $sortOrder) } label: { - Label("Sort", systemImage: "arrow.up.arrow.down.circle") + Label("Sort", systemImage: "arrow.up.arrow.down") } } @@ -32,7 +32,7 @@ struct macOSContentToolbar: ToolbarContent { Button(action: { showingFilterPopover.toggle() }, label: { - Label("Filters", systemImage: "line.3.horizontal.decrease.circle") + Label("Filters", systemImage: "line.3.horizontal.decrease") .if(hasActiveFilters) { view in view.foregroundColor(accentColor) } diff --git a/BitDream/Views/macOS/macOSTorrentActionsMenu.swift b/BitDream/Views/macOS/macOSTorrentActionsMenu.swift index a18a7d9..efff6f9 100644 --- a/BitDream/Views/macOS/macOSTorrentActionsMenu.swift +++ b/BitDream/Views/macOS/macOSTorrentActionsMenu.swift @@ -291,7 +291,7 @@ struct TorrentActionsToolbarMenu: View { ) } } label: { - Label("Actions", systemImage: "ellipsis.circle") + Label("Actions", systemImage: "ellipsis") } .sheet(isPresented: $labelDialog) { LabelEditSheetContent( From 8eb31cfb765eb23e2212e2e04d069ba884084b76 Mon Sep 17 00:00:00 2001 From: Austin Smith Date: Fri, 18 Sep 2026 23:00:07 -0700 Subject: [PATCH 2/2] highlight active filters on ios and macos --- BitDream/Views/iOS/iOSContentView.swift | 20 ++++++++++------ .../Views/macOS/macOSContentToolbar.swift | 23 +++++++++++-------- 2 files changed, 27 insertions(+), 16 deletions(-) diff --git a/BitDream/Views/iOS/iOSContentView.swift b/BitDream/Views/iOS/iOSContentView.swift index 76b5822..e3c222d 100644 --- a/BitDream/Views/iOS/iOSContentView.swift +++ b/BitDream/Views/iOS/iOSContentView.swift @@ -372,14 +372,20 @@ private extension iOSContentView { var bottomToolbarItems: some ToolbarContent { Group { ToolbarItem(placement: .bottomBar) { - Button { - hapticFeedback.play(.actionTriggered) - showPrefs.toggle() - } label: { - Label("Filter and Sort", systemImage: "line.3.horizontal.decrease") + // Keep the popover's navigation state stable when the button style changes. + ZStack { + Button { + hapticFeedback.play(.actionTriggered) + showPrefs.toggle() + } label: { + Label("Filter and Sort", systemImage: "line.3.horizontal.decrease") + } + .if(hasActiveFilters) { button in + button.buttonStyle(.borderedProminent) + } + .tint(hasActiveFilters ? Color.accentColor : Color.primary) + .accessibilityValue(hasActiveFilters ? "Active" : "Inactive") } - .tint(hasActiveFilters ? Color.accentColor : Color.primary) - .accessibilityValue(hasActiveFilters ? "Active" : "Inactive") .popover(isPresented: $showPrefs) { iOSFilterAndSortView( labelFilter: $labelFilter, diff --git a/BitDream/Views/macOS/macOSContentToolbar.swift b/BitDream/Views/macOS/macOSContentToolbar.swift index 738081a..a5e2d49 100644 --- a/BitDream/Views/macOS/macOSContentToolbar.swift +++ b/BitDream/Views/macOS/macOSContentToolbar.swift @@ -29,15 +29,20 @@ struct macOSContentToolbar: ToolbarContent { } ToolbarItem(placement: .automatic) { - Button(action: { - showingFilterPopover.toggle() - }, label: { - Label("Filters", systemImage: "line.3.horizontal.decrease") - .if(hasActiveFilters) { view in - view.foregroundColor(accentColor) - } - }) - .help(hasActiveFilters ? "Active filters (\(activeFilterCount))" : "Filter torrents") + // Keep the popover attached while the button's active style changes. + ZStack { + Button(action: { + showingFilterPopover.toggle() + }, label: { + Label("Filters", systemImage: "line.3.horizontal.decrease") + }) + .if(hasActiveFilters) { button in + button.buttonStyle(.borderedProminent) + } + .tint(hasActiveFilters ? accentColor : Color.primary) + .accessibilityValue(hasActiveFilters ? "Active" : "Inactive") + .help(hasActiveFilters ? "Active filters (\(activeFilterCount))" : "Filter torrents") + } .popover(isPresented: $showingFilterPopover, arrowEdge: .bottom) { macOSContentFilterMenu( accentColor: accentColor,