Improve path settings, add icons
This commit is contained in:
@@ -22,6 +22,9 @@ final class Settings: ChangeObservableItem {
|
||||
@Published
|
||||
var audioPlayer: AudioPlayerSettings
|
||||
|
||||
@Published
|
||||
var tools: ToolSettings
|
||||
|
||||
weak var content: Content?
|
||||
|
||||
var cancellables: Set<AnyCancellable> = []
|
||||
@@ -31,13 +34,15 @@ final class Settings: ChangeObservableItem {
|
||||
navigation: NavigationSettings,
|
||||
posts: PostSettings,
|
||||
pages: PageSettings,
|
||||
audioPlayer: AudioPlayerSettings) {
|
||||
audioPlayer: AudioPlayerSettings,
|
||||
tools: ToolSettings) {
|
||||
self.general = general
|
||||
self.paths = paths
|
||||
self.navigation = navigation
|
||||
self.posts = posts
|
||||
self.pages = pages
|
||||
self.audioPlayer = audioPlayer
|
||||
self.tools = tools
|
||||
observeChildChanges()
|
||||
}
|
||||
|
||||
@@ -58,6 +63,7 @@ final class Settings: ChangeObservableItem {
|
||||
observe(posts)
|
||||
observe(pages)
|
||||
observe(audioPlayer)
|
||||
observe(tools)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,7 +78,8 @@ extension Settings {
|
||||
navigation: .init(context: context, data: data.navigation),
|
||||
posts: .init(context: context, data: data.posts),
|
||||
pages: .init(context: context, data: data.pages),
|
||||
audioPlayer: .init(context: context, data: data.audioPlayer))
|
||||
audioPlayer: .init(context: context, data: data.audioPlayer),
|
||||
tools: .init(context: context, data: data.tools))
|
||||
content = context.content
|
||||
}
|
||||
|
||||
@@ -84,7 +91,8 @@ extension Settings {
|
||||
posts: posts.data,
|
||||
pages: pages.data,
|
||||
audioPlayer: audioPlayer.data,
|
||||
tagOverview: tagOverview?.data)
|
||||
tagOverview: tagOverview?.data,
|
||||
tools: tools.data)
|
||||
}
|
||||
|
||||
struct Data: Codable, Equatable {
|
||||
@@ -95,6 +103,7 @@ extension Settings {
|
||||
let pages: PageSettings.Data
|
||||
let audioPlayer: AudioPlayerSettings.Data
|
||||
let tagOverview: Tag.Data?
|
||||
let tools: ToolSettings.Data
|
||||
}
|
||||
|
||||
func saveToDisk(_ data: Data) -> Bool {
|
||||
@@ -110,7 +119,8 @@ extension Settings {
|
||||
navigation: .default,
|
||||
posts: .default,
|
||||
pages: .default,
|
||||
audioPlayer: .default)
|
||||
audioPlayer: .default,
|
||||
tools: .default)
|
||||
}
|
||||
|
||||
extension GeneralSettings {
|
||||
@@ -195,3 +205,11 @@ extension PageSettings {
|
||||
emptyPageText: "This page is empty"))
|
||||
}
|
||||
}
|
||||
|
||||
extension ToolSettings {
|
||||
|
||||
static var `default`: ToolSettings {
|
||||
.init(ffprobePath: "/opt/homebrew/bin/ffprobe",
|
||||
avifencPath: "/opt/homebrew/bin/avifenc")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user