Implement ensureFolder — it actually creates and adds a folder and makes sure account is saved to disk.

This commit is contained in:
Brent Simmons 2017-10-18 19:46:35 -07:00
parent 31947854c0
commit 2383ecd480
2 changed files with 20 additions and 5 deletions

View File

@ -68,7 +68,7 @@ class AddFolderWindowController : NSWindowController {
return
}
let _ = account.ensureFolder(with: folderName)
account.ensureFolder(with: folderName)
}
// MARK: Actions

View File

@ -174,10 +174,25 @@ public final class Account: DisplayNameProvider, UnreadCountProvider, Container,
noteStatusesForArticlesDidChange(updatedArticles)
}
@discardableResult
public func ensureFolder(with name: String) -> Folder? {
return nil //TODO
// TODO: support subfolders, maybe, some day
if name.isEmpty {
return nil
}
if let folder = existingFolder(with: name) {
return folder
}
let folder = Folder(account: self, name: name)
children += [folder]
dirty = true
return folder
}
public func canAddFeed(_ feed: Feed, to folder: Folder?) -> Bool {
@ -287,7 +302,7 @@ public final class Account: DisplayNameProvider, UnreadCountProvider, Container,
// Update the unread count if its a direct child.
// If the object is owned by this account, then mark dirty
// since unread counts are saved to disk along with other feed info.
if let object = note.object {
if objectIsChild(object as AnyObject) {