mirror of
https://github.com/Ranchero-Software/NetNewsWire
synced 2025-08-12 06:26:36 +00:00
Move Protocol declaration to top of ExportOPMLAccessoryViewController.swift. As critical API, it needs to be easy to spot.
Create separation extensions — one for protocol conformance, one for private methods — ExportOPMLController.
Make minor code formatting change: instead of { return } — which is hard to set a breakpoint on — move the return to its own line.
Remove an internal access qualifier, since internal is default and implied.
This commit is contained in:
@@ -9,6 +9,10 @@
|
||||
import AppKit
|
||||
import Account
|
||||
|
||||
protocol ExportOPMLAccessoryViewControllerDelegate: class {
|
||||
func selectedAccountDidChange(_ accessoryViewController: ExportOPMLAccessoryViewController)
|
||||
}
|
||||
|
||||
class ExportOPMLAccessoryViewController: NSViewController {
|
||||
|
||||
@IBOutlet weak var accountPopUpButton: NSPopUpButton!
|
||||
@@ -56,6 +60,3 @@ class ExportOPMLAccessoryViewController: NSViewController {
|
||||
}
|
||||
}
|
||||
|
||||
protocol ExportOPMLAccessoryViewControllerDelegate: class {
|
||||
func selectedAccountDidChange(_ accessoryViewController: ExportOPMLAccessoryViewController)
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
import AppKit
|
||||
import Account
|
||||
|
||||
class ExportOPMLController: ExportOPMLAccessoryViewControllerDelegate {
|
||||
class ExportOPMLController {
|
||||
|
||||
weak var savePanel: NSSavePanel?
|
||||
|
||||
@@ -33,7 +33,9 @@ class ExportOPMLController: ExportOPMLAccessoryViewControllerDelegate {
|
||||
panel.beginSheetModal(for: hostWindow) { result in
|
||||
if result == NSApplication.ModalResponse.OK, let url = panel.url {
|
||||
DispatchQueue.main.async {
|
||||
guard let account = accessoryViewController.selectedAccount else { return }
|
||||
guard let account = accessoryViewController.selectedAccount else {
|
||||
return
|
||||
}
|
||||
let filename = url.lastPathComponent
|
||||
let opmlString = OPMLExporter.OPMLString(with: account, title: filename)
|
||||
do {
|
||||
@@ -45,22 +47,31 @@ class ExportOPMLController: ExportOPMLAccessoryViewControllerDelegate {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private func updateNameFieldStringValueIfAppropriate(savePanel panel: NSSavePanel, from accessoryViewController: ExportOPMLAccessoryViewController, force: Bool = false) {
|
||||
extension ExportOPMLController: ExportOPMLAccessoryViewControllerDelegate {
|
||||
|
||||
if !force && !panel.nameFieldStringValue.hasPrefix("Subscriptions-") { return }
|
||||
|
||||
guard let account = accessoryViewController.selectedAccount else { return }
|
||||
let accountName = account.nameForDisplay.replacingOccurrences(of: " ", with: "").trimmingCharacters(in: .whitespaces)
|
||||
panel.nameFieldStringValue = "Subscriptions-\(accountName).opml"
|
||||
|
||||
}
|
||||
|
||||
internal func selectedAccountDidChange(_ accessoryViewController: ExportOPMLAccessoryViewController) {
|
||||
func selectedAccountDidChange(_ accessoryViewController: ExportOPMLAccessoryViewController) {
|
||||
if let savePanel = savePanel {
|
||||
self.updateNameFieldStringValueIfAppropriate(savePanel: savePanel, from: accessoryViewController)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private extension ExportOPMLController {
|
||||
|
||||
func updateNameFieldStringValueIfAppropriate(savePanel panel: NSSavePanel, from accessoryViewController: ExportOPMLAccessoryViewController, force: Bool = false) {
|
||||
|
||||
if !force && !panel.nameFieldStringValue.hasPrefix("Subscriptions-") {
|
||||
return
|
||||
}
|
||||
|
||||
guard let account = accessoryViewController.selectedAccount else {
|
||||
return
|
||||
}
|
||||
let accountName = account.nameForDisplay.replacingOccurrences(of: " ", with: "").trimmingCharacters(in: .whitespaces)
|
||||
panel.nameFieldStringValue = "Subscriptions-\(accountName).opml"
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user