Merge pull request #255 from d-date/copy-release-note

Adds Copy Release Notes URL context menu
This commit is contained in:
Matt Kiazyk 2022-07-12 22:58:56 -05:00 committed by GitHub
commit 5f0b722799
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 45 additions and 0 deletions

View file

@ -535,6 +535,13 @@ class AppState: ObservableObject {
NSPasteboard.general.writeObjects([installedXcodePath.url as NSURL])
NSPasteboard.general.setString(installedXcodePath.string, forType: .string)
}
func copyReleaseNote(xcode: Xcode) {
guard let url = xcode.releaseNotesURL else { return }
NSPasteboard.general.declareTypes([.URL, .string], owner: nil)
NSPasteboard.general.writeObjects([url as NSURL])
NSPasteboard.general.setString(url.absoluteString, forType: .string)
}
func createSymbolicLink(xcode: Xcode) {
guard let installedXcodePath = xcode.installedPath else { return }

View file

@ -154,6 +154,24 @@ struct CopyPathButton: View {
}
}
struct CopyReleaseNoteButton: View {
@EnvironmentObject var appState: AppState
let xcode: Xcode?
var body: some View {
Button(action: copyReleaseNote) {
Text("CopyReleaseNoteURL")
}
.help("CopyReleaseNoteURL")
}
private func copyReleaseNote() {
guard let xcode = xcode else { return }
appState.copyReleaseNote(xcode: xcode)
}
}
struct CreateSymbolicLinkButton: View {
@EnvironmentObject var appState: AppState
let xcode: Xcode?

View file

@ -136,12 +136,20 @@ struct InfoPane: View {
Label("ReleaseNotes", systemImage: "link")
}
.buttonStyle(LinkButtonStyle())
.contextMenu(menuItems: {
releaseNotesMenu(for: xcode)
})
.frame(maxWidth: .infinity, alignment: .leading)
.help("ReleaseNotes.help")
} else {
EmptyView()
}
}
@ViewBuilder
private func releaseNotesMenu(for xcode: Xcode) -> some View {
CopyReleaseNoteButton(xcode: xcode)
}
@ViewBuilder
private func compatibility(for xcode: Xcode) -> some View {

View file

@ -32,6 +32,7 @@
"ReleaseDate" = "Release-Datum";
"ReleaseNotes" = "Release-Notes";
"ReleaseNotes.help" = "Release-Notes anzeigen";
"CopyReleaseNoteURL" = "URL kopieren";
"Compatibility" = "Kompatibilität";
"MacOSRequirement" = "Erfordert macOS %@ oder neuer";
"SDKs" = "SDKs";

View file

@ -32,6 +32,7 @@
"ReleaseDate" = "Release Date";
"ReleaseNotes" = "Release Notes";
"ReleaseNotes.help" = "View Release Notes";
"CopyReleaseNoteURL" = "Copy URL";
"Compatibility" = "Compatibility";
"MacOSRequirement" = "Requires macOS %@ or later";
"SDKs" = "SDKs";

View file

@ -32,6 +32,7 @@
"ReleaseDate" = "Fecha de lanzamiento";
"ReleaseNotes" = "Notas del lanzamiento";
"ReleaseNotes.help" = "Ver Notas del Lanzamiento";
"CopyReleaseNoteURL" = "Copiar URL";
"Compatibility" = "Compatibilidad";
"MacOSRequirement" = "Requiere macOS %@ o posterior";
"SDKs" = "SDKs";

View file

@ -10,6 +10,7 @@
"Install" = "Installer";
"InstallDescription" = "Installer cette version";
"RevealInFinder" = "Ouvrir dans le Finder";
"CopyReleaseNoteURL" = "Copier l'URL";
"Active" = "Version Active";
"MakeActive" = "Activer";
"Open" = "Ouvrir";

View file

@ -31,6 +31,7 @@
"ReleaseDate" = "रिलीज़ दिनांक";
"ReleaseNotes" = "रिलीज नोट्स";
"ReleaseNotes.help" = "रिलीज़ नोट्स देखें";
"CopyReleaseNoteURL" = "URL कॉपी करें";
"Compatibility" = "अनुकूलता";
"MacOSRequirement" = "macOS %@ या बाद के संस्करण की आवश्यकता है";
"SDKs" = "SDKs";

View file

@ -32,6 +32,7 @@
"ReleaseDate" = "Data di Rilascio";
"ReleaseNotes" = "Note di Rilascio";
"ReleaseNotes.help" = "Vedi Note di Rilascio";
"CopyReleaseNoteURL" = "Copia URL";
"Compatibility" = "Compatibilità";
"MacOSRequirement" = "Richiede macOS %@ o successivo";
"SDKs" = "SDKs";

View file

@ -32,6 +32,7 @@
"ReleaseDate" = "リリース日";
"ReleaseNotes" = "リリースノート";
"ReleaseNotes.help" = "リリースノートを表示";
"CopyReleaseNoteURL" = "URLをコピー";
"Compatibility" = "互換性";
"MacOSRequirement" = "macOS %@ 以降";
"SDKs" = "SDK";

View file

@ -32,6 +32,7 @@
"ReleaseDate" = "출시일";
"ReleaseNotes" = "릴리즈 노트";
"ReleaseNotes.help" = "릴리즈 노트 보기";
"CopyReleaseNoteURL" = "URL 복사";
"Compatibility" = "호환성";
"MacOSRequirement" = "macOS %@ 또는 이후 버전";
"SDKs" = "SDKs";

View file

@ -31,6 +31,7 @@
"ReleaseDate" = "Дата выпуска";
"ReleaseNotes" = "Примечания к выпуску";
"ReleaseNotes.help" = "Просмотреть примечания к выпуску";
"CopyReleaseNoteURL" = "Копировать URL";
"Compatibility" = "Совместимость";
"MacOSRequirement" = "Требуется macOS %@ или новее";
"SDKs" = "SDK";

View file

@ -32,6 +32,7 @@
"ReleaseDate" = "Yayınlanma Tarihi";
"ReleaseNotes" = "Yayınlanma Notları";
"ReleaseNotes.help" = "Yayınlanma Notlarını Görüntüle";
"CopyReleaseNoteURL" = "URL'yi kopyala";
"Compatibility" = "Uyumluluk";
"MacOSRequirement" = "macOS %@ veya sonrasını gerektirir";
"SDKs" = "SDKler";

View file

@ -32,6 +32,7 @@
"ReleaseDate" = "发布日期";
"ReleaseNotes" = "更新说明";
"ReleaseNotes.help" = "查看更新说明";
"CopyReleaseNoteURL" = "复制 URL";
"Compatibility" = "兼容性";
"MacOSRequirement" = "需要macOS %@及以上";
"SDKs" = "SDK";

View file

@ -32,6 +32,7 @@
"ReleaseDate" = "發行日期";
"ReleaseNotes" = "版本附註";
"ReleaseNotes.help" = "檢視版本附註";
"CopyReleaseNoteURL" = "複製 URL";
"Compatibility" = "相容性";
"MacOSRequirement" = "需要 macOS %@ 或以上版本";
"SDKs" = "SDKs";