Toolbar is in a much better shape.

This commit is contained in:
Stuart Breckenridge 2020-07-13 22:29:33 +08:00
parent 122249d716
commit f4d776688b
No known key found for this signature in database
GPG Key ID: 79BD673276AE83CE
2 changed files with 38 additions and 32 deletions

View File

@ -29,33 +29,43 @@ struct MacPreferencesView: View {
}
.toolbar {
ToolbarItem {
Button(action: {
viewModel.currentPreferencePane = .general
}, label: {
Image(systemName: "checkmark.rectangle")
Text("General")
})
}
ToolbarItem {
Button(action: {
viewModel.currentPreferencePane = .accounts
}, label: {
Image(systemName: "network")
Text("Accounts")
})
}
ToolbarItem {
Button(action: {
viewModel.currentPreferencePane = .advanced
}, label: {
Image(systemName: "gearshape.fill")
Text("Advanced")
})
HStack {
Button(action: {
viewModel.currentPreferencePane = .general
}, label: {
VStack {
Image(systemName: "gearshape")
.font(.title2)
Text("General")
}.foregroundColor(
viewModel.currentPreferencePane == .general ? Color("AccentColor") : Color.gray
)
})
Button(action: {
viewModel.currentPreferencePane = .accounts
}, label: {
VStack {
Image(systemName: "at")
.font(.title2)
Text("Accounts")
}.foregroundColor(
viewModel.currentPreferencePane == .accounts ? Color("AccentColor") : Color.gray
)
})
Button(action: {
viewModel.currentPreferencePane = .advanced
}, label: {
VStack {
Image(systemName: "scale.3d")
.font(.title2)
Text("Advanced")
}.foregroundColor(
viewModel.currentPreferencePane == .advanced ? Color("AccentColor") : Color.gray
)
})
}
}
}
.presentedWindowToolbarStyle(UnifiedCompactWindowToolbarStyle())
.presentedWindowStyle(TitleBarWindowStyle())
.navigationTitle(Text(viewModel.currentPreferencePane.description))
}
}

View File

@ -14,11 +14,7 @@ class AccountsPreferenceModel: ObservableObject {
@Published var sortedAccounts: [Account] = []
// Configured Accounts
@Published var selectedConfiguredAccountID: String? = nil
// Sheets
@Published var showAddAccountView: Bool = false
var selectedAccountIsDefault: Bool {
@ -32,19 +28,19 @@ class AccountsPreferenceModel: ObservableObject {
}
// Subscriptions
var notifcationSubscriptions = Set<AnyCancellable>()
var notificationSubscriptions = Set<AnyCancellable>()
init() {
sortedAccounts = AccountManager.shared.sortedAccounts
NotificationCenter.default.publisher(for: .UserDidAddAccount).sink(receiveValue: { _ in
self.sortedAccounts = AccountManager.shared.sortedAccounts
}).store(in: &notifcationSubscriptions)
}).store(in: &notificationSubscriptions)
NotificationCenter.default.publisher(for: .UserDidDeleteAccount).sink(receiveValue: { _ in
self.selectedConfiguredAccountID = nil
self.sortedAccounts = AccountManager.shared.sortedAccounts
}).store(in: &notifcationSubscriptions)
}).store(in: &notificationSubscriptions)
}
}