mirror of
https://github.com/Ranchero-Software/NetNewsWire.git
synced 2025-02-03 12:27:32 +01:00
Rebuild the tree controller when deleting/undoing-deleting from the sidebar. Fix #292.
This commit is contained in:
parent
fc38a485d6
commit
0debd033de
@ -14,6 +14,7 @@ import Data
|
|||||||
|
|
||||||
final class DeleteFromSidebarCommand: UndoableCommand {
|
final class DeleteFromSidebarCommand: UndoableCommand {
|
||||||
|
|
||||||
|
let treeController: TreeController
|
||||||
let undoManager: UndoManager
|
let undoManager: UndoManager
|
||||||
let undoActionName: String
|
let undoActionName: String
|
||||||
var redoActionName: String {
|
var redoActionName: String {
|
||||||
@ -22,7 +23,7 @@ final class DeleteFromSidebarCommand: UndoableCommand {
|
|||||||
|
|
||||||
private let itemSpecifiers: [SidebarItemSpecifier]
|
private let itemSpecifiers: [SidebarItemSpecifier]
|
||||||
|
|
||||||
init?(nodesToDelete: [Node], undoManager: UndoManager) {
|
init?(nodesToDelete: [Node], treeController: TreeController, undoManager: UndoManager) {
|
||||||
|
|
||||||
guard DeleteFromSidebarCommand.canDelete(nodesToDelete) else {
|
guard DeleteFromSidebarCommand.canDelete(nodesToDelete) else {
|
||||||
return nil
|
return nil
|
||||||
@ -31,6 +32,7 @@ final class DeleteFromSidebarCommand: UndoableCommand {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self.treeController = treeController
|
||||||
self.undoActionName = actionName
|
self.undoActionName = actionName
|
||||||
self.undoManager = undoManager
|
self.undoManager = undoManager
|
||||||
|
|
||||||
@ -45,6 +47,7 @@ final class DeleteFromSidebarCommand: UndoableCommand {
|
|||||||
|
|
||||||
BatchUpdate.shared.perform {
|
BatchUpdate.shared.perform {
|
||||||
itemSpecifiers.forEach { $0.delete() }
|
itemSpecifiers.forEach { $0.delete() }
|
||||||
|
treeController.rebuild()
|
||||||
}
|
}
|
||||||
registerUndo()
|
registerUndo()
|
||||||
}
|
}
|
||||||
@ -53,6 +56,7 @@ final class DeleteFromSidebarCommand: UndoableCommand {
|
|||||||
|
|
||||||
BatchUpdate.shared.perform {
|
BatchUpdate.shared.perform {
|
||||||
itemSpecifiers.forEach { $0.restore() }
|
itemSpecifiers.forEach { $0.restore() }
|
||||||
|
treeController.rebuild()
|
||||||
}
|
}
|
||||||
registerRedo()
|
registerRedo()
|
||||||
}
|
}
|
||||||
|
@ -129,7 +129,7 @@ import RSCore
|
|||||||
|
|
||||||
let nodesToDelete = treeController.normalizedSelectedNodes(selectedNodes)
|
let nodesToDelete = treeController.normalizedSelectedNodes(selectedNodes)
|
||||||
|
|
||||||
guard let undoManager = undoManager, let deleteCommand = DeleteFromSidebarCommand(nodesToDelete: nodesToDelete, undoManager: undoManager) else {
|
guard let undoManager = undoManager, let deleteCommand = DeleteFromSidebarCommand(nodesToDelete: nodesToDelete, treeController: treeController, undoManager: undoManager) else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user