Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 16 additions & 3 deletions Sources/ProcessBarMonitor/MonitorViewModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,26 @@ final class MonitorViewModel: ObservableObject {

@Published var searchText = ""
@Published var processLimit: Int {
didSet { settings.set(processLimit, forKey: Keys.processLimit) }
didSet {
settings.set(processLimit, forKey: Keys.processLimit)
// Immediately reflect the new row count in the visible process list.
recomputeVisibleProcesses()
}
}
@Published var temperatureMode: TemperatureMode {
didSet { settings.set(temperatureMode.rawValue, forKey: Keys.temperatureMode) }
didSet {
settings.set(temperatureMode.rawValue, forKey: Keys.temperatureMode)
// Immediate refresh ensures the new temperature mode is reflected
// without waiting for the next scheduled refresh cycle.
Task { await refresh(forceProcesses: true) }
}
}
@Published var menuBarDisplayMode: MenuBarDisplayMode {
didSet { settings.set(menuBarDisplayMode.rawValue, forKey: Keys.menuBarDisplayMode) }
didSet {
settings.set(menuBarDisplayMode.rawValue, forKey: Keys.menuBarDisplayMode)
// Refresh so the menu bar title format update is immediate.
Task { await refresh(forceProcesses: false) }
}
}

private let metricsProvider = SystemMetricsProvider()
Expand Down
4 changes: 1 addition & 3 deletions Sources/ProcessBarMonitor/SettingsView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,7 @@ struct SettingsView: View {
Text("12").tag(12)
Text("20").tag(20)
}
.onChange(of: viewModel.processLimit) { _ in
viewModel.recomputeVisibleProcesses()
}
// Side-effect (recomputeVisibleProcesses) is in MonitorViewModel.processLimit.didSet
} header: {
Text(L10n.string("settings.section.display"))
}
Expand Down
8 changes: 2 additions & 6 deletions Sources/ProcessBarMonitor/Views.swift
Original file line number Diff line number Diff line change
Expand Up @@ -231,9 +231,7 @@ struct MenuBarContentView: View {
Text(mode.title).tag(mode)
}
}
.onChange(of: viewModel.temperatureMode) { _ in
Task { await viewModel.refresh(forceProcesses: true) }
}
// Refresh side-effect is in MonitorViewModel.temperatureMode.didSet

TextField(L10n.string("search.placeholder"), text: $viewModel.searchText)
.textFieldStyle(.roundedBorder)
Expand All @@ -248,9 +246,7 @@ struct MenuBarContentView: View {
Text("20").tag(20)
}
.pickerStyle(.segmented)
.onChange(of: viewModel.processLimit) { _ in
viewModel.recomputeVisibleProcesses()
}
// Side-effect (recomputeVisibleProcesses) is in MonitorViewModel.processLimit.didSet
}

Toggle(L10n.string("toggle.launch_at_login"), isOn: Binding(
Expand Down