Settings View: SwiftUI wrapper

This commit is contained in:
James Magahern
2021-03-03 16:17:54 -08:00
parent 225761473d
commit fb9ec47833
8 changed files with 167 additions and 13 deletions

View File

@@ -146,4 +146,7 @@ extension BrowserViewController: ShortcutResponder
tab.webView._viewScale -= 0.10
}
func showPreferences(_ sender: Any?) {
showSettingsWindow()
}
}

View File

@@ -286,6 +286,12 @@ class BrowserViewController: UIViewController
documentControls.dismiss(animated: true, completion: nil)
}, for: .touchUpInside)
// Settings
documentControls.settingsView.addAction(UIAction { [unowned self] _ in
documentControls.dismiss(animated: false, completion: nil)
showSettingsWindow()
}, for: .touchUpInside)
present(documentControls, animated: true, completion: nil)
}), for: .touchUpInside)
@@ -312,6 +318,16 @@ class BrowserViewController: UIViewController
self.view = browserView
}
internal func showSettingsWindow() {
#if targetEnvironment(macCatalyst)
let userActivity = NSUserActivity(activityType: SessionActivityType.SettingsWindow.rawValue)
UIApplication.shared.requestSceneSessionActivation(nil, userActivity: userActivity, options: .none, errorHandler: nil)
#else
let settingsVC = SettingsViewController()
present(settingsVC, animated: true, completion: nil)
#endif
}
internal func updateLoadProgress(forWebView webView: WKWebView) {
if let loadError = loadError {
toolbarController.urlBar.loadProgress = .error(error: loadError)