Skip to content

Commit 55f21b9

Browse files
committed
fix: wire Copy as JSON keyboard shortcut (Cmd+Option+J)
1 parent 00da11e commit 55f21b9

7 files changed

Lines changed: 17 additions & 7 deletions

File tree

TablePro/Models/UI/KeyboardShortcutModels.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ enum ShortcutAction: String, Codable, CaseIterable, Identifiable {
5555
case cut
5656
case copy
5757
case copyWithHeaders
58+
case copyAsJson
5859
case paste
5960
case delete
6061
case selectAll
@@ -87,7 +88,7 @@ enum ShortcutAction: String, Codable, CaseIterable, Identifiable {
8788
.saveChanges, .previewSQL, .closeTab, .refresh,
8889
.explainQuery, .export, .importData, .quickSwitcher:
8990
return .file
90-
case .undo, .redo, .cut, .copy, .copyWithHeaders, .paste,
91+
case .undo, .redo, .cut, .copy, .copyWithHeaders, .copyAsJson, .paste,
9192
.delete, .selectAll, .clearSelection, .addRow,
9293
.duplicateRow, .truncateTable:
9394
return .edit
@@ -120,6 +121,7 @@ enum ShortcutAction: String, Codable, CaseIterable, Identifiable {
120121
case .cut: return String(localized: "Cut")
121122
case .copy: return String(localized: "Copy")
122123
case .copyWithHeaders: return String(localized: "Copy with Headers")
124+
case .copyAsJson: return String(localized: "Copy as JSON")
123125
case .paste: return String(localized: "Paste")
124126
case .delete: return String(localized: "Delete")
125127
case .selectAll: return String(localized: "Select All")
@@ -418,6 +420,7 @@ struct KeyboardSettings: Codable, Equatable {
418420
.cut: KeyCombo(key: "x", command: true),
419421
.copy: KeyCombo(key: "c", command: true),
420422
.copyWithHeaders: KeyCombo(key: "c", command: true, shift: true),
423+
.copyAsJson: KeyCombo(key: "j", command: true, option: true),
421424
.paste: KeyCombo(key: "v", command: true),
422425
.delete: KeyCombo(key: "delete", command: true, isSpecialKey: true),
423426
.selectAll: KeyCombo(key: "a", command: true),

TablePro/Resources/Localizable.xcstrings

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4662,6 +4662,9 @@
46624662
}
46634663
}
46644664
}
4665+
},
4666+
"Copy as JSON" : {
4667+
46654668
},
46664669
"Copy as URL" : {
46674670
"localizations" : {
@@ -9845,6 +9848,9 @@
98459848
}
98469849
}
98479850
}
9851+
},
9852+
"JSON" : {
9853+
98489854
},
98499855
"Jump Hosts" : {
98509856
"localizations" : {

TablePro/TableProApp.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ struct PasteboardCommands: Commands {
7777
Button("Copy as JSON") {
7878
actions?.copySelectedRowsAsJson()
7979
}
80+
.optionalKeyboardShortcut(shortcut(for: .copyAsJson))
8081
.disabled(!appState.hasRowSelection)
8182

8283
Button("Paste") {

docs/features/data-grid.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -464,7 +464,7 @@ Multiple copy formats:
464464
|--------|----------|-------------|
465465
| Tab-separated | `Cmd+C` | Default copy, compatible with spreadsheets |
466466
| CSV | `Cmd+Shift+C` | Comma-separated values |
467-
| JSON | `Cmd+Option+C` | JSON array of objects |
467+
| JSON | `Cmd+Option+J` | JSON array of objects |
468468
| TSV | Available from context menu | Tab-separated with header |
469469

470470
The default tab-separated format works with:
@@ -697,7 +697,7 @@ See [Import & Export](/features/import-export) for detailed export options.
697697
|--------|----------|
698698
| Copy selection | `Cmd+C` |
699699
| Copy as CSV | `Cmd+Shift+C` |
700-
| Copy as JSON | `Cmd+Option+C` |
700+
| Copy as JSON | `Cmd+Option+J` |
701701
| Select all | `Cmd+A` |
702702
| Delete row | `Delete` |
703703
| Edit cell | `Enter` |

docs/features/keyboard-shortcuts.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ TablePro is keyboard-driven. Most actions have shortcuts, and most menu shortcut
125125
|--------|----------|
126126
| Copy selection | `Cmd+C` |
127127
| Copy as CSV | `Cmd+Shift+C` |
128-
| Copy as JSON | `Cmd+Option+C` |
128+
| Copy as JSON | `Cmd+Option+J` |
129129
| Copy as TSV | Available from context menu |
130130

131131
## Application

docs/vi/features/data-grid.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -464,7 +464,7 @@ Nhiều định dạng sao chép:
464464
|--------|----------|-------------|
465465
| Tab-separated | `Cmd+C` | Mặc định, tương thích bảng tính |
466466
| CSV | `Cmd+Shift+C` | Phân tách dấu phẩy |
467-
| JSON | `Cmd+Option+C` | Mảng JSON |
467+
| JSON | `Cmd+Option+J` | Mảng JSON |
468468
| TSV | Menu ngữ cảnh | Tab-separated có header |
469469

470470
Tab-separated mặc định tương thích với:
@@ -697,7 +697,7 @@ Xem [Import & Export](/features/import-export) để biết chi tiết.
697697
|--------|----------|
698698
| Sao chép | `Cmd+C` |
699699
| Sao chép CSV | `Cmd+Shift+C` |
700-
| Sao chép JSON | `Cmd+Option+C` |
700+
| Sao chép JSON | `Cmd+Option+J` |
701701
| Chọn tất cả | `Cmd+A` |
702702
| Xóa hàng | `Delete` |
703703
| Chỉnh sửa ô | `Enter` |

docs/vi/features/keyboard-shortcuts.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ TablePro thiên về bàn phím. Hầu hết thao tác đều có phím tắt, v
125125
|--------|----------|
126126
| Sao chép lựa chọn | `Cmd+C` |
127127
| Sao chép dạng CSV | `Cmd+Shift+C` |
128-
| Sao chép dạng JSON | `Cmd+Option+C` |
128+
| Sao chép dạng JSON | `Cmd+Option+J` |
129129
| Sao chép dạng TSV | Có trong menu ngữ cảnh |
130130

131131
## Ứng Dụng

0 commit comments

Comments
 (0)