aboutsummaryrefslogtreecommitdiff
path: root/Hotline/macOS/Trackers/TrackerView.swift
diff options
context:
space:
mode:
Diffstat (limited to 'Hotline/macOS/Trackers/TrackerView.swift')
-rw-r--r--Hotline/macOS/Trackers/TrackerView.swift50
1 files changed, 40 insertions, 10 deletions
diff --git a/Hotline/macOS/Trackers/TrackerView.swift b/Hotline/macOS/Trackers/TrackerView.swift
index 0eb4a12..dbbacaa 100644
--- a/Hotline/macOS/Trackers/TrackerView.swift
+++ b/Hotline/macOS/Trackers/TrackerView.swift
@@ -405,14 +405,13 @@ struct TrackerView: View {
@ViewBuilder
func bookmarkServerContextMenu(_ server: BookmarkServer) -> some View {
Button {
- let newBookmark = Bookmark(type: .server, name: server.name ?? server.address, address: server.address, port: server.port, login: nil, password: nil)
- Bookmark.add(newBookmark, context: modelContext)
+ NSPasteboard.general.clearContents()
+ let displayAddress = (server.port == HotlinePorts.DefaultServerPort) ? server.address : "\(server.address):\(server.port)"
+ NSPasteboard.general.setString("hotline://\(displayAddress)", forType: .string)
} label: {
- Label("Bookmark", systemImage: "bookmark")
+ Label("Copy Link", systemImage: "link")
}
- Divider()
-
Button {
NSPasteboard.general.clearContents()
let displayAddress = (server.port == HotlinePorts.DefaultServerPort) ? server.address : "\(server.address):\(server.port)"
@@ -420,11 +419,31 @@ struct TrackerView: View {
} label: {
Label("Copy Address", systemImage: "doc.on.doc")
}
+
+ Divider()
+
+ Button {
+ let newBookmark = Bookmark(type: .server, name: server.name ?? server.address, address: server.address, port: server.port, login: nil, password: nil)
+ Bookmark.add(newBookmark, context: modelContext)
+ } label: {
+ Label("Bookmark", systemImage: "bookmark")
+ }
}
@ViewBuilder
func bookmarkContextMenu(_ bookmark: Bookmark) -> some View {
Button {
+ let linkString: String = switch bookmark.type {
+ case .tracker: "hotlinetracker://\(bookmark.displayAddress)"
+ case .server: "hotline://\(bookmark.displayAddress)"
+ }
+ NSPasteboard.general.clearContents()
+ NSPasteboard.general.setString(linkString, forType: .string)
+ } label: {
+ Label("Copy Link", systemImage: "link")
+ }
+
+ Button {
NSPasteboard.general.clearContents()
NSPasteboard.general.setString(bookmark.displayAddress, forType: .string)
} label: {
@@ -471,14 +490,13 @@ struct TrackerView: View {
guard let server = bonjourServer.server else {
return
}
- let newBookmark = Bookmark(type: .server, name: server.name ?? server.address, address: server.address, port: server.port, login: nil, password: nil)
- Bookmark.add(newBookmark, context: modelContext)
+ NSPasteboard.general.clearContents()
+ let displayAddress = (server.port == HotlinePorts.DefaultServerPort) ? server.address : "\(server.address):\(server.port)"
+ NSPasteboard.general.setString("hotline://\(displayAddress)", forType: .string)
} label: {
- Label("Bookmark", systemImage: "bookmark")
+ Label("Copy Link", systemImage: "link")
}
- Divider()
-
Button {
guard let server = bonjourServer.server else {
return
@@ -488,6 +506,18 @@ struct TrackerView: View {
} label: {
Label("Copy Address", systemImage: "doc.on.doc")
}
+
+ Divider()
+
+ Button {
+ guard let server = bonjourServer.server else {
+ return
+ }
+ let newBookmark = Bookmark(type: .server, name: server.name ?? server.address, address: server.address, port: server.port, login: nil, password: nil)
+ Bookmark.add(newBookmark, context: modelContext)
+ } label: {
+ Label("Bookmark", systemImage: "bookmark")
+ }
}
func refresh() {