Fixed a crash that occurs when trying to add a new feed with no active accounts
This commit is contained in:
parent
e98d28c770
commit
5ded56fc28
@ -228,6 +228,10 @@ class MainWindowController : NSWindowController, NSUserInterfaceValidations {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if item.action == #selector(showAddFeedWindow(_:)) {
|
||||||
|
return canAddNewFeed()
|
||||||
|
}
|
||||||
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -592,6 +596,10 @@ private extension MainWindowController {
|
|||||||
return currentTimelineViewController?.canMarkAllAsRead() ?? false
|
return currentTimelineViewController?.canMarkAllAsRead() ?? false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func canAddNewFeed() -> Bool {
|
||||||
|
return sidebarViewController?.canAddNewFeed() ?? false
|
||||||
|
}
|
||||||
|
|
||||||
func validateToggleRead(_ item: NSValidatedUserInterfaceItem) -> Bool {
|
func validateToggleRead(_ item: NSValidatedUserInterfaceItem) -> Bool {
|
||||||
|
|
||||||
let validationStatus = currentTimelineViewController?.markReadCommandStatus() ?? .canDoNothing
|
let validationStatus = currentTimelineViewController?.markReadCommandStatus() ?? .canDoNothing
|
||||||
|
@ -345,10 +345,9 @@ protocol SidebarDelegate: class {
|
|||||||
// MARK: - API
|
// MARK: - API
|
||||||
|
|
||||||
func rebuildTreeAndRestoreSelection() {
|
func rebuildTreeAndRestoreSelection() {
|
||||||
|
let savedAccounts = accountNodes
|
||||||
let savedAccounts = treeController.rootNode.childNodes.compactMap { $0.representedObject as? Account }
|
|
||||||
|
|
||||||
let savedSelection = selectedNodes
|
let savedSelection = selectedNodes
|
||||||
|
|
||||||
rebuildTreeAndReloadDataIfNeeded()
|
rebuildTreeAndReloadDataIfNeeded()
|
||||||
restoreSelection(to: savedSelection, sendNotificationIfChanged: true)
|
restoreSelection(to: savedSelection, sendNotificationIfChanged: true)
|
||||||
|
|
||||||
@ -361,6 +360,11 @@ protocol SidebarDelegate: class {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func canAddNewFeed() -> Bool {
|
||||||
|
return !accountNodes.isEmpty
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: - NSUserInterfaceValidations
|
// MARK: - NSUserInterfaceValidations
|
||||||
@ -380,6 +384,10 @@ extension SidebarViewController: NSUserInterfaceValidations {
|
|||||||
|
|
||||||
private extension SidebarViewController {
|
private extension SidebarViewController {
|
||||||
|
|
||||||
|
var accountNodes: [Account] {
|
||||||
|
return treeController.rootNode.childNodes.compactMap { $0.representedObject as? Account }
|
||||||
|
}
|
||||||
|
|
||||||
var selectedNodes: [Node] {
|
var selectedNodes: [Node] {
|
||||||
if let nodes = outlineView.selectedItems as? [Node] {
|
if let nodes = outlineView.selectedItems as? [Node] {
|
||||||
return nodes
|
return nodes
|
||||||
|
Loading…
x
Reference in New Issue
Block a user