diff --git a/Secretive.xcodeproj/project.pbxproj b/Secretive.xcodeproj/project.pbxproj
index 12347fc..7b398a0 100644
--- a/Secretive.xcodeproj/project.pbxproj
+++ b/Secretive.xcodeproj/project.pbxproj
@@ -1223,7 +1223,7 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
- MACOSX_DEPLOYMENT_TARGET = 10.15;
+ MACOSX_DEPLOYMENT_TARGET = 10.16;
MARKETING_VERSION = 1;
PRODUCT_BUNDLE_IDENTIFIER = com.maxgoedjen.Secretive.Host;
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -1251,7 +1251,7 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
- MACOSX_DEPLOYMENT_TARGET = 10.15;
+ MACOSX_DEPLOYMENT_TARGET = 10.16;
MARKETING_VERSION = 1;
PRODUCT_BUNDLE_IDENTIFIER = com.maxgoedjen.Secretive.Host;
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -1566,7 +1566,7 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
- MACOSX_DEPLOYMENT_TARGET = 10.15;
+ MACOSX_DEPLOYMENT_TARGET = 10.16;
MARKETING_VERSION = 1;
PRODUCT_BUNDLE_IDENTIFIER = com.maxgoedjen.Secretive.Host;
PRODUCT_NAME = "$(TARGET_NAME)";
diff --git a/Secretive/AppDelegate.swift b/Secretive/AppDelegate.swift
index c9e116d..dff359d 100644
--- a/Secretive/AppDelegate.swift
+++ b/Secretive/AppDelegate.swift
@@ -3,12 +3,88 @@ import SwiftUI
import SecretKit
import Brief
-@NSApplicationMain
-class AppDelegate: NSObject, NSApplicationDelegate {
+//@NSApplicationMain
+//class AppDelegate: NSObject, NSApplicationDelegate {
+//
+// var window: NSWindow!
+// @IBOutlet var newMenuItem: NSMenuItem!
+// @IBOutlet var toolbar: NSToolbar!
+// let storeList: SecretStoreList = {
+// let list = SecretStoreList()
+// list.add(store: SecureEnclave.Store())
+// list.add(store: SmartCard.Store())
+// return list
+// }()
+// let updater = Updater()
+// let agentStatusChecker = AgentStatusChecker()
+// let justUpdatedChecker = JustUpdatedChecker()
+//
+// func applicationDidFinishLaunching(_ aNotification: Notification) {
+// let contentView = ContentView(storeList: storeList, updater: updater, agentStatusChecker: agentStatusChecker, runSetupBlock: { self.runSetup(sender: nil) })
+// // Create the window and set the content view.
+// window = NSWindow(
+// contentRect: NSRect(x: 0, y: 0, width: 480, height: 300),
+// styleMask: [.titled, .closable, .miniaturizable, .resizable, .fullSizeContentView],
+// backing: .buffered, defer: false)
+// window.center()
+// window.setFrameAutosaveName("Main Window")
+// window.contentView = NSHostingView(rootView: contentView)
+// window.makeKeyAndOrderFront(nil)
+// window.titleVisibility = .hidden
+// window.toolbar = toolbar
+// window.isReleasedWhenClosed = false
+// if storeList.modifiableStore?.isAvailable ?? false {
+// let plus = NSTitlebarAccessoryViewController()
+// plus.view = NSButton(image: NSImage(named: NSImage.addTemplateName)!, target: self, action: #selector(add(sender:)))
+// plus.layoutAttribute = .right
+// window.addTitlebarAccessoryViewController(plus)
+// newMenuItem.isEnabled = true
+// }
+// runSetupIfNeeded()
+// relaunchAgentIfNeeded()
+// }
+//
+// func applicationDidBecomeActive(_ notification: Notification) {
+// agentStatusChecker.check()
+// }
+//
+// func applicationShouldHandleReopen(_ sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool {
+// guard !flag else { return false }
+// window.makeKeyAndOrderFront(self)
+// return true
+// }
+//
+// @IBAction func add(sender: AnyObject?) {
+// var addWindow: NSWindow!
+// let addView = CreateSecretView(store: storeList.modifiableStore!) {
+// self.window.endSheet(addWindow)
+// }
+// addWindow = NSWindow(
+// contentRect: NSRect(x: 0, y: 0, width: 480, height: 300),
+// styleMask: [.titled, .closable, .miniaturizable, .resizable, .fullSizeContentView],
+// backing: .buffered, defer: false)
+// addWindow.contentView = NSHostingView(rootView: addView)
+// window.beginSheet(addWindow, completionHandler: nil)
+// }
+//
+// @IBAction func runSetup(sender: AnyObject?) {
+// let setupWindow = NSWindow(
+// contentRect: NSRect(x: 0, y: 0, width: 0, height: 0),
+// styleMask: [.titled, .closable, .miniaturizable, .resizable, .fullSizeContentView],
+// backing: .buffered, defer: false)
+// let setupView = SetupView() { success in
+// self.window.endSheet(setupWindow)
+// self.agentStatusChecker.check()
+// }
+// setupWindow.contentView = NSHostingView(rootView: setupView)
+// window.beginSheet(setupWindow, completionHandler: nil)
+// }
+//
+//}
+
+@main
+struct AppDelegate: App {
- var window: NSWindow!
- @IBOutlet var newMenuItem: NSMenuItem!
- @IBOutlet var toolbar: NSToolbar!
let storeList: SecretStoreList = {
let list = SecretStoreList()
list.add(store: SecureEnclave.Store())
@@ -19,71 +95,34 @@ class AppDelegate: NSObject, NSApplicationDelegate {
let agentStatusChecker = AgentStatusChecker()
let justUpdatedChecker = JustUpdatedChecker()
- func applicationDidFinishLaunching(_ aNotification: Notification) {
- let contentView = ContentView(storeList: storeList, updater: updater, agentStatusChecker: agentStatusChecker, runSetupBlock: { self.runSetup(sender: nil) })
- // Create the window and set the content view.
- window = NSWindow(
- contentRect: NSRect(x: 0, y: 0, width: 480, height: 300),
- styleMask: [.titled, .closable, .miniaturizable, .resizable, .fullSizeContentView],
- backing: .buffered, defer: false)
- window.center()
- window.setFrameAutosaveName("Main Window")
- window.contentView = NSHostingView(rootView: contentView)
- window.makeKeyAndOrderFront(nil)
- window.titleVisibility = .hidden
- window.toolbar = toolbar
- window.isReleasedWhenClosed = false
- if storeList.modifiableStore?.isAvailable ?? false {
- let plus = NSTitlebarAccessoryViewController()
- plus.view = NSButton(image: NSImage(named: NSImage.addTemplateName)!, target: self, action: #selector(add(sender:)))
- plus.layoutAttribute = .right
- window.addTitlebarAccessoryViewController(plus)
- newMenuItem.isEnabled = true
+ @SceneBuilder var body: some Scene {
+ WindowGroup {
+ ContentView(storeList: storeList, updater: updater, agentStatusChecker: agentStatusChecker, runSetupBlock: { self.runSetup(sender: nil) })
}
- runSetupIfNeeded()
- relaunchAgentIfNeeded()
- }
-
- func applicationDidBecomeActive(_ notification: Notification) {
- agentStatusChecker.check()
- }
-
- func applicationShouldHandleReopen(_ sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool {
- guard !flag else { return false }
- window.makeKeyAndOrderFront(self)
- return true
- }
-
- @IBAction func add(sender: AnyObject?) {
- var addWindow: NSWindow!
- let addView = CreateSecretView(store: storeList.modifiableStore!) {
- self.window.endSheet(addWindow)
+ WindowGroup {
+ SetupView() { _ in
+ print("Setup")
+ }
}
- addWindow = NSWindow(
- contentRect: NSRect(x: 0, y: 0, width: 480, height: 300),
- styleMask: [.titled, .closable, .miniaturizable, .resizable, .fullSizeContentView],
- backing: .buffered, defer: false)
- addWindow.contentView = NSHostingView(rootView: addView)
- window.beginSheet(addWindow, completionHandler: nil)
- }
-
- @IBAction func runSetup(sender: AnyObject?) {
- let setupWindow = NSWindow(
- contentRect: NSRect(x: 0, y: 0, width: 0, height: 0),
- styleMask: [.titled, .closable, .miniaturizable, .resizable, .fullSizeContentView],
- backing: .buffered, defer: false)
- let setupView = SetupView() { success in
- self.window.endSheet(setupWindow)
- self.agentStatusChecker.check()
- }
- setupWindow.contentView = NSHostingView(rootView: setupView)
- window.beginSheet(setupWindow, completionHandler: nil)
}
}
extension AppDelegate {
+ func runSetup(sender: AnyObject?) {
+ let setupWindow = NSWindow(
+ contentRect: NSRect(x: 0, y: 0, width: 0, height: 0),
+ styleMask: [.titled, .closable, .miniaturizable, .resizable, .fullSizeContentView],
+ backing: .buffered, defer: false)
+ let setupView = SetupView() { success in
+// self.window.endSheet(setupWindow)
+ self.agentStatusChecker.check()
+ }
+ setupWindow.contentView = NSHostingView(rootView: setupView)
+// window.beginSheet(setupWindow, completionHandler: nil)
+ }
+
func runSetupIfNeeded() {
if !UserDefaults.standard.bool(forKey: Constants.defaultsHasRunSetup) {
UserDefaults.standard.set(true, forKey: Constants.defaultsHasRunSetup)
diff --git a/Secretive/Info.plist b/Secretive/Info.plist
index 5ea2305..beb76e8 100644
--- a/Secretive/Info.plist
+++ b/Secretive/Info.plist
@@ -24,8 +24,6 @@
$(MACOSX_DEPLOYMENT_TARGET)
NSHumanReadableCopyright
$(PRODUCT_NAME) is MIT Licensed.
- NSMainStoryboardFile
- Main
NSPrincipalClass
NSApplication
NSSupportsAutomaticTermination
diff --git a/Secretive/Views/ContentView.swift b/Secretive/Views/ContentView.swift
index aa23966..f2597cc 100644
--- a/Secretive/Views/ContentView.swift
+++ b/Secretive/Views/ContentView.swift
@@ -15,12 +15,12 @@ struct ContentView> {
+ ToolbarItem {
+ Button(action: {
+ print("OK")
+ }, label: {
+ Image(systemName: "plus")
+ })
+ }
}
func updateNotice() -> some View {