Add persistent app quit control
This commit is contained in:
parent
e1e8ff89cd
commit
833a9bfec2
@ -1,3 +1,4 @@
|
|||||||
|
import AppKit
|
||||||
import SwiftUI
|
import SwiftUI
|
||||||
|
|
||||||
@main
|
@main
|
||||||
@ -38,6 +39,7 @@ private struct RootView: View {
|
|||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
VStack(spacing: 0) {
|
VStack(spacing: 0) {
|
||||||
|
HStack(spacing: 8) {
|
||||||
Picker("Section", selection: $selectedTab) {
|
Picker("Section", selection: $selectedTab) {
|
||||||
ForEach(AppTab.allCases) { tab in
|
ForEach(AppTab.allCases) { tab in
|
||||||
Label(tab.title, systemImage: tab.icon)
|
Label(tab.title, systemImage: tab.icon)
|
||||||
@ -46,6 +48,15 @@ private struct RootView: View {
|
|||||||
}
|
}
|
||||||
.pickerStyle(.segmented)
|
.pickerStyle(.segmented)
|
||||||
.labelsHidden()
|
.labelsHidden()
|
||||||
|
|
||||||
|
Button {
|
||||||
|
NSApplication.shared.terminate(nil)
|
||||||
|
} label: {
|
||||||
|
Image(systemName: "power")
|
||||||
|
}
|
||||||
|
.accessibilityLabel("Quit Fchati")
|
||||||
|
.help("Quit Fchati")
|
||||||
|
}
|
||||||
.padding()
|
.padding()
|
||||||
|
|
||||||
Divider()
|
Divider()
|
||||||
|
|||||||
@ -197,6 +197,7 @@
|
|||||||
- The relay now defaults to the production Traefik certificate resolver (`myresolver`) and allows a host-specific override through `TRAEFIK_CERT_RESOLVER`.
|
- The relay now defaults to the production Traefik certificate resolver (`myresolver`) and allows a host-specific override through `TRAEFIK_CERT_RESOLVER`.
|
||||||
- Corrected the production hostname to `fchaty.diyaa.de` in the relay route and macOS application HTTP and WebSocket clients.
|
- Corrected the production hostname to `fchaty.diyaa.de` in the relay route and macOS application HTTP and WebSocket clients.
|
||||||
- `relay-server/Dockerfile` initializes all persistent-data paths as the unprivileged `node` user, preventing pairing, queue, and upload write failures on newly created volumes.
|
- `relay-server/Dockerfile` initializes all persistent-data paths as the unprivileged `node` user, preventing pairing, queue, and upload write failures on newly created volumes.
|
||||||
|
- The macOS app now has an always-visible quit control beside the top-level tabs, in addition to the existing Settings action.
|
||||||
|
|
||||||
## Bug Fixes — Post-Review ✅
|
## Bug Fixes — Post-Review ✅
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user