paddel setup new verifier
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import SwiftUI
|
||||
import AppKit
|
||||
|
||||
struct LicenseRequiredView: View {
|
||||
@EnvironmentObject private var licensing: LicensingManager
|
||||
@@ -19,9 +20,13 @@ struct LicenseRequiredView: View {
|
||||
.frame(maxWidth: 520)
|
||||
}
|
||||
|
||||
Button("Open Licence Settings") { openSettings() }
|
||||
.buttonStyle(.borderedProminent)
|
||||
.controlSize(.large)
|
||||
HStack(spacing: 12) {
|
||||
Button("Buy Rsync Studio…") { openPurchasePage() }
|
||||
.buttonStyle(.borderedProminent)
|
||||
.controlSize(.large)
|
||||
Button("Open Licence Settings") { openSettings() }
|
||||
.controlSize(.large)
|
||||
}
|
||||
|
||||
Text("Your jobs and history remain on this Mac. Rsync Studio does not delete local data when a trial expires or a licence is removed.")
|
||||
.font(.caption)
|
||||
@@ -33,4 +38,11 @@ struct LicenseRequiredView: View {
|
||||
.frame(maxWidth: .infinity, maxHeight: .infinity)
|
||||
.background(Color(nsColor: .windowBackgroundColor))
|
||||
}
|
||||
|
||||
private func openPurchasePage() {
|
||||
guard let raw = Bundle.main.object(forInfoDictionaryKey: "RsyncStudioPurchaseURL") as? String,
|
||||
let url = URL(string: raw),
|
||||
url.scheme?.lowercased() == "https" else { return }
|
||||
NSWorkspace.shared.open(url)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import SwiftUI
|
||||
import AppKit
|
||||
|
||||
struct LicenseView: View {
|
||||
@EnvironmentObject private var licensing: LicensingManager
|
||||
@@ -60,7 +61,8 @@ struct LicenseView: View {
|
||||
showingTokenEntry.toggle()
|
||||
}
|
||||
}
|
||||
Text("Online activation will be enabled when the licensing service URL is configured. Signed offline licence tokens can be installed without contacting a server.")
|
||||
Button("Buy Rsync Studio…") { openPurchasePage() }
|
||||
Text("Buy Personal or Professional online, then enter the licence key delivered to your email. Signed offline licence tokens can also be installed without contacting the activation server.")
|
||||
.font(.caption)
|
||||
.foregroundStyle(.secondary)
|
||||
}
|
||||
@@ -130,4 +132,14 @@ struct LicenseView: View {
|
||||
showingTokenEntry = false
|
||||
} catch { errorMessage = error.localizedDescription }
|
||||
}
|
||||
|
||||
private func openPurchasePage() {
|
||||
guard let raw = Bundle.main.object(forInfoDictionaryKey: "RsyncStudioPurchaseURL") as? String,
|
||||
let url = URL(string: raw),
|
||||
url.scheme?.lowercased() == "https" else {
|
||||
errorMessage = "The Rsync Studio purchase page is not configured in this build."
|
||||
return
|
||||
}
|
||||
NSWorkspace.shared.open(url)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user