Refactored add window code to allow for multiple types of feed add window

This commit is contained in:
Maurice Parker
2020-04-21 18:33:07 -05:00
parent 575288b78e
commit 0e7c47b04e
5 changed files with 70 additions and 49 deletions

View File

@@ -38,13 +38,13 @@ class AddFeedController: AddFeedWindowControllerDelegate {
let folderTreeControllerDelegate = FolderTreeControllerDelegate()
let folderTreeController = TreeController(delegate: folderTreeControllerDelegate)
addFeedWindowController = AddFeedWindowController(urlString: urlString ?? urlStringFromPasteboard, name: name, account: account, folder: folder, folderTreeController: folderTreeController, delegate: self)
addFeedWindowController = AddWebFeedWindowController(urlString: urlString ?? urlStringFromPasteboard, name: name, account: account, folder: folder, folderTreeController: folderTreeController, delegate: self)
addFeedWindowController!.runSheetOnWindow(hostWindow)
}
// MARK: AddFeedWindowControllerDelegate
func addFeedWindowController(_: AddFeedWindowController, userEnteredURL url: URL, userEnteredTitle title: String?, container: Container) {
func addFeedWindowController(_: AddWebFeedWindowController, userEnteredURL url: URL, userEnteredTitle title: String?, container: Container) {
closeAddFeedSheet(NSApplication.ModalResponse.OK)
@@ -84,8 +84,7 @@ class AddFeedController: AddFeedWindowControllerDelegate {
}
func addFeedWindowControllerUserDidCancel(_: AddFeedWindowController) {
func addFeedWindowControllerUserDidCancel(_: AddWebFeedWindowController) {
closeAddFeedSheet(NSApplication.ModalResponse.cancel)
}

View File

@@ -0,0 +1,25 @@
//
// AddFeedWIndowController.swift
// NetNewsWire
//
// Created by Maurice Parker on 4/21/20.
// Copyright © 2020 Ranchero Software. All rights reserved.
//
import Foundation
import Account
protocol AddFeedWindowControllerDelegate: class {
// userEnteredURL will have already been validated and normalized.
func addFeedWindowController(_: AddWebFeedWindowController, userEnteredURL: URL, userEnteredTitle: String?, container: Container)
func addFeedWindowControllerUserDidCancel(_: AddWebFeedWindowController)
}
protocol AddFeedWindowController {
var window: NSWindow? { get }
func runSheetOnWindow(_ hostWindow: NSWindow)
}

View File

@@ -12,15 +12,7 @@ import RSTree
import Articles
import Account
protocol AddFeedWindowControllerDelegate: class {
// userEnteredURL will have already been validated and normalized.
func addFeedWindowController(_: AddFeedWindowController, userEnteredURL: URL, userEnteredTitle: String?, container: Container)
func addFeedWindowControllerUserDidCancel(_: AddFeedWindowController)
}
class AddFeedWindowController : NSWindowController {
class AddWebFeedWindowController : NSWindowController, AddFeedWindowController {
@IBOutlet var urlTextField: NSTextField!
@IBOutlet var nameTextField: NSTextField!
@@ -46,7 +38,7 @@ class AddFeedWindowController : NSWindowController {
var hostWindow: NSWindow!
convenience init(urlString: String?, name: String?, account: Account?, folder: Folder?, folderTreeController: TreeController, delegate: AddFeedWindowControllerDelegate?) {
self.init(windowNibName: NSNib.Name("AddFeedSheet"))
self.init(windowNibName: NSNib.Name("AddWebFeedSheet"))
self.urlString = urlString
self.initialName = name
self.initialAccount = account
@@ -127,7 +119,7 @@ class AddFeedWindowController : NSWindowController {
}
}
private extension AddFeedWindowController {
private extension AddWebFeedWindowController {
private func updateUI() {
addButton.isEnabled = urlTextField.stringValue.mayBeURL