mirror of
https://github.com/Ranchero-Software/NetNewsWire
synced 2025-08-12 06:26:36 +00:00
Make ArticleThemesManager specify its folder itself.
This commit is contained in:
@@ -104,7 +104,6 @@ import Sparkle
|
||||
private var themeImportPath: String?
|
||||
private let secretsProvider = Secrets()
|
||||
private let accountManager: AccountManager
|
||||
private let articleThemesManager: ArticleThemesManager
|
||||
|
||||
override init() {
|
||||
|
||||
@@ -113,9 +112,6 @@ import Sparkle
|
||||
self.accountManager = AccountManager(accountsFolder: Platform.dataSubfolder(forApplication: nil, folderName: "Accounts")!, secretsProvider: secretsProvider)
|
||||
AccountManager.shared = self.accountManager
|
||||
|
||||
self.articleThemesManager = ArticleThemesManager(folderPath: Platform.dataSubfolder(forApplication: nil, folderName: "Themes")!)
|
||||
ArticleThemesManager.shared = self.articleThemesManager
|
||||
|
||||
super.init()
|
||||
|
||||
#if !MAC_APP_STORE
|
||||
@@ -823,7 +819,7 @@ internal extension AppDelegate {
|
||||
|
||||
func importTheme() {
|
||||
do {
|
||||
try articleThemesManager.importTheme(filename: filename)
|
||||
try ArticleThemesManager.shared.importTheme(filePath: filename)
|
||||
confirmImportSuccess(themeName: theme.name)
|
||||
} catch {
|
||||
NSApplication.shared.presentError(error)
|
||||
@@ -833,7 +829,7 @@ internal extension AppDelegate {
|
||||
alert.beginSheetModal(for: window) { result in
|
||||
if result == NSApplication.ModalResponse.alertFirstButtonReturn {
|
||||
|
||||
if self.articleThemesManager.themeExists(filename: filename) {
|
||||
if ArticleThemesManager.shared.themeExists(filePath: filename) {
|
||||
let alert = NSAlert()
|
||||
alert.alertStyle = .warning
|
||||
|
||||
@@ -926,7 +922,7 @@ internal extension AppDelegate {
|
||||
|
||||
@objc func openThemesFolder(_ sender: Any) {
|
||||
if themeImportPath == nil {
|
||||
let url = URL(fileURLWithPath: articleThemesManager.folderPath)
|
||||
let url = URL(fileURLWithPath: ArticleThemesManager.shared.folderPath)
|
||||
NSWorkspace.shared.open(url)
|
||||
} else {
|
||||
let url = URL(fileURLWithPath: themeImportPath!)
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import Core
|
||||
|
||||
public extension Notification.Name {
|
||||
static let ArticleThemeNamesDidChangeNotification = Notification.Name("ArticleThemeNamesDidChangeNotification")
|
||||
@@ -15,12 +16,15 @@ public extension Notification.Name {
|
||||
|
||||
final class ArticleThemesManager: NSObject, NSFilePresenter {
|
||||
|
||||
@MainActor static var shared: ArticleThemesManager!
|
||||
public let folderPath: String
|
||||
@MainActor static var shared = ArticleThemesManager()
|
||||
public let folderURL: URL
|
||||
private var folderPath: String {
|
||||
folderURL.path
|
||||
}
|
||||
|
||||
lazy var presentedItemOperationQueue = OperationQueue.main
|
||||
var presentedItemURL: URL? {
|
||||
return URL(fileURLWithPath: folderPath)
|
||||
folderURL
|
||||
}
|
||||
|
||||
var currentThemeName: String {
|
||||
@@ -48,19 +52,12 @@ final class ArticleThemesManager: NSObject, NSFilePresenter {
|
||||
}
|
||||
}
|
||||
|
||||
init(folderPath: String) {
|
||||
self.folderPath = folderPath
|
||||
override init() {
|
||||
self.folderURL = AppConfig.dataSubfolder(named: "Themes")
|
||||
self.currentTheme = ArticleTheme.defaultTheme
|
||||
|
||||
super.init()
|
||||
|
||||
do {
|
||||
try FileManager.default.createDirectory(atPath: folderPath, withIntermediateDirectories: true, attributes: nil)
|
||||
} catch {
|
||||
assertionFailure("Could not create folder for Themes.")
|
||||
abort()
|
||||
}
|
||||
|
||||
updateThemeNames()
|
||||
updateCurrentTheme()
|
||||
|
||||
|
||||
@@ -70,10 +70,6 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
|
||||
|
||||
appDelegate = self
|
||||
|
||||
let documentThemesFolder = documentFolder.appendingPathComponent("Themes").absoluteString
|
||||
let documentThemesFolderPath = String(documentThemesFolder.suffix(from: documentAccountsFolder.index(documentThemesFolder.startIndex, offsetBy: 7)))
|
||||
ArticleThemesManager.shared = ArticleThemesManager(folderPath: documentThemesFolderPath)
|
||||
|
||||
NotificationCenter.default.addObserver(self, selector: #selector(unreadCountDidChange(_:)), name: .UnreadCountDidChange, object: nil)
|
||||
NotificationCenter.default.addObserver(self, selector: #selector(accountRefreshDidFinish(_:)), name: .AccountRefreshDidFinish, object: nil)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user