mirror of
https://github.com/Ranchero-Software/NetNewsWire
synced 2025-08-12 06:26:36 +00:00
Refactored add window code to allow for multiple types of feed add window
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
25
Mac/MainWindow/AddFeed/AddFeedWIndowController.swift
Normal file
25
Mac/MainWindow/AddFeed/AddFeedWIndowController.swift
Normal 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)
|
||||
|
||||
}
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user