macOS: Consolidate presenting of the import panel
Signed-off-by: Roopesh Chander <roop@roopc.net>
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// Copyright © 2018 WireGuard LLC. All Rights Reserved.
|
||||
|
||||
import Cocoa
|
||||
|
||||
class ImportPanelPresenter {
|
||||
static func presentImportPanel(tunnelsManager: TunnelsManager, sourceVC: NSViewController) {
|
||||
guard let window = sourceVC.view.window else { return }
|
||||
let openPanel = NSOpenPanel()
|
||||
openPanel.allowedFileTypes = ["conf", "zip"]
|
||||
openPanel.beginSheetModal(for: window) { [weak tunnelsManager] response in
|
||||
guard let tunnelsManager = tunnelsManager else { return }
|
||||
guard response == .OK else { return }
|
||||
guard let url = openPanel.url else { return }
|
||||
TunnelImporter.importFromFile(url: url, into: tunnelsManager, sourceVC: sourceVC, errorPresenterType: ErrorPresenter.self)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -132,14 +132,7 @@ class StatusMenu: NSMenu {
|
||||
@objc func importTunnelsClicked() {
|
||||
NSApp.activate(ignoringOtherApps: true)
|
||||
manageTunnelsWindow.makeKeyAndOrderFront(self)
|
||||
let openPanel = NSOpenPanel()
|
||||
openPanel.allowedFileTypes = ["conf", "zip"]
|
||||
openPanel.beginSheetModal(for: manageTunnelsWindow) { [weak tunnelsManager] response in
|
||||
guard let tunnelsManager = tunnelsManager else { return }
|
||||
guard response == .OK else { return }
|
||||
guard let url = openPanel.url else { return }
|
||||
TunnelImporter.importFromFile(url: url, into: tunnelsManager, sourceVC: nil, errorPresenterType: ErrorPresenter.self)
|
||||
}
|
||||
ImportPanelPresenter.presentImportPanel(tunnelsManager: tunnelsManager, sourceVC: manageTunnelsRootVC!)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -40,14 +40,6 @@ class NoTunnelsDetailViewController: NSViewController {
|
||||
}
|
||||
|
||||
@objc func importTunnelClicked() {
|
||||
guard let window = view.window else { return }
|
||||
let openPanel = NSOpenPanel()
|
||||
openPanel.allowedFileTypes = ["conf", "zip"]
|
||||
openPanel.beginSheetModal(for: window) { [weak tunnelsManager] response in
|
||||
guard let tunnelsManager = tunnelsManager else { return }
|
||||
guard response == .OK else { return }
|
||||
guard let url = openPanel.url else { return }
|
||||
TunnelImporter.importFromFile(url: url, into: tunnelsManager, sourceVC: nil, errorPresenterType: ErrorPresenter.self)
|
||||
}
|
||||
ImportPanelPresenter.presentImportPanel(tunnelsManager: tunnelsManager, sourceVC: self)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -131,15 +131,7 @@ class TunnelsListTableViewController: NSViewController {
|
||||
}
|
||||
|
||||
@objc func importTunnelClicked() {
|
||||
guard let window = view.window else { return }
|
||||
let openPanel = NSOpenPanel()
|
||||
openPanel.allowedFileTypes = ["conf", "zip"]
|
||||
openPanel.beginSheetModal(for: window) { [weak tunnelsManager] response in
|
||||
guard let tunnelsManager = tunnelsManager else { return }
|
||||
guard response == .OK else { return }
|
||||
guard let url = openPanel.url else { return }
|
||||
TunnelImporter.importFromFile(url: url, into: tunnelsManager, sourceVC: nil, errorPresenterType: ErrorPresenter.self)
|
||||
}
|
||||
ImportPanelPresenter.presentImportPanel(tunnelsManager: tunnelsManager, sourceVC: self)
|
||||
}
|
||||
|
||||
@objc func removeTunnelClicked() {
|
||||
|
||||
Reference in New Issue
Block a user