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 { .toolbar {
ToolbarItem { ToolbarItem {
Button(action: { HStack {
viewModel.currentPreferencePane = .general Button(action: {
}, label: { viewModel.currentPreferencePane = .general
Image(systemName: "checkmark.rectangle") }, label: {
Text("General") VStack {
}) Image(systemName: "gearshape")
} .font(.title2)
ToolbarItem { Text("General")
Button(action: { }.foregroundColor(
viewModel.currentPreferencePane = .accounts viewModel.currentPreferencePane == .general ? Color("AccentColor") : Color.gray
}, label: { )
Image(systemName: "network") })
Text("Accounts") Button(action: {
}) viewModel.currentPreferencePane = .accounts
} }, label: {
ToolbarItem { VStack {
Button(action: { Image(systemName: "at")
viewModel.currentPreferencePane = .advanced .font(.title2)
}, label: { Text("Accounts")
Image(systemName: "gearshape.fill") }.foregroundColor(
Text("Advanced") 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] = [] @Published var sortedAccounts: [Account] = []
// Configured Accounts
@Published var selectedConfiguredAccountID: String? = nil @Published var selectedConfiguredAccountID: String? = nil
// Sheets
@Published var showAddAccountView: Bool = false @Published var showAddAccountView: Bool = false
var selectedAccountIsDefault: Bool { var selectedAccountIsDefault: Bool {
@ -32,19 +28,19 @@ class AccountsPreferenceModel: ObservableObject {
} }
// Subscriptions // Subscriptions
var notifcationSubscriptions = Set<AnyCancellable>() var notificationSubscriptions = Set<AnyCancellable>()
init() { init() {
sortedAccounts = AccountManager.shared.sortedAccounts sortedAccounts = AccountManager.shared.sortedAccounts
NotificationCenter.default.publisher(for: .UserDidAddAccount).sink(receiveValue: { _ in NotificationCenter.default.publisher(for: .UserDidAddAccount).sink(receiveValue: { _ in
self.sortedAccounts = AccountManager.shared.sortedAccounts self.sortedAccounts = AccountManager.shared.sortedAccounts
}).store(in: &notifcationSubscriptions) }).store(in: &notificationSubscriptions)
NotificationCenter.default.publisher(for: .UserDidDeleteAccount).sink(receiveValue: { _ in NotificationCenter.default.publisher(for: .UserDidDeleteAccount).sink(receiveValue: { _ in
self.selectedConfiguredAccountID = nil self.selectedConfiguredAccountID = nil
self.sortedAccounts = AccountManager.shared.sortedAccounts self.sortedAccounts = AccountManager.shared.sortedAccounts
}).store(in: &notifcationSubscriptions) }).store(in: &notificationSubscriptions)
} }
} }