Move draw controls into the draw toolbar

The color picker, undo/redo, and clear eraser now live in the dedicated
draw top bar instead of the main toolbar, keeping the primary actions
(Copy/Save/Get Text) uncluttered. Keyboard shortcuts (⌘Z/⌘⇧Z) remain.

💘 Generated with Crush

Assisted-by: Crush:deepseek-v4-flash-0731
This commit is contained in:
2026-08-23 13:55:00 +08:00
parent 41cb06dcb5
commit 1961d0dc9c
2 changed files with 4 additions and 45 deletions
+2 -43
View File
@@ -305,49 +305,6 @@ struct ResultView: View {
.foregroundStyle(model.isDrawing ? .primary : .secondary)
.help("Toggle drawing on the screenshot")
if model.isDrawing {
ColorPicker("", selection: Binding(
get: { Color(nsColor: model.drawColor) },
set: { model.drawColor = NSColor($0) }
), supportsOpacity: false)
.labelsHidden()
.frame(width: 28)
.help("Drawing color")
}
if model.isDrawing || !model.strokes.isEmpty {
HStack(spacing: 6) {
Button {
model.undoStroke()
} label: {
Image(systemName: "arrow.uturn.backward")
}
.buttonStyle(.bordered)
.disabled(!model.canUndo)
.keyboardShortcut("z", modifiers: .command)
.help("Undo last stroke (⌘Z)")
Button {
model.redoStroke()
} label: {
Image(systemName: "arrow.uturn.forward")
}
.buttonStyle(.bordered)
.disabled(!model.canRedo)
.keyboardShortcut("z", modifiers: [.command, .shift])
.help("Redo stroke (⌘⇧Z)")
Button {
model.clearAnnotations()
} label: {
Image(systemName: "eraser")
}
.buttonStyle(.bordered)
.disabled(model.strokes.isEmpty)
.help("Remove all drawn annotations")
}
}
Button {
model.copyImage()
} label: {
@@ -417,6 +374,7 @@ struct ResultView: View {
.buttonStyle(.bordered)
.controlSize(.small)
.disabled(!model.canUndo)
.keyboardShortcut("z", modifiers: .command)
.help("Undo last stroke (⌘Z)")
Button {
@@ -427,6 +385,7 @@ struct ResultView: View {
.buttonStyle(.bordered)
.controlSize(.small)
.disabled(!model.canRedo)
.keyboardShortcut("z", modifiers: [.command, .shift])
.help("Redo stroke (⌘⇧Z)")
}
.padding(.horizontal, 14)