Skip to content

Commit 7a9a31c

Browse files
committed
feat: add Help menu, sponsor link, and external links to welcome screen and About view
1 parent 9f7913f commit 7a9a31c

6 files changed

Lines changed: 57 additions & 7 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
### Added
1111

12-
- Display BLOB data as multi-line hex dump in detail view sidebar
13-
- SQL Favorites: save and organize frequently used queries with optional keyword bindings for autocomplete expansion
12+
- iCloud Sync (Pro): sync connections, groups, tags, settings, and query history across Macs with per-category toggles, conflict resolution, and real-time status indicator
13+
- SQL Favorites: save frequently used queries with optional keyword bindings for autocomplete expansion
1414
- Copy selected rows as JSON from context menu and Edit menu
15-
- iCloud Sync (Pro): sync connections, groups, tags, settings, and query history across Macs via CloudKit
16-
- Pro feature gating system with license-aware UI overlay for Pro-only features
17-
- Sync settings tab with per-category toggles and configurable history sync limit
18-
- Sync status indicator in welcome window showing real-time sync state
19-
- Conflict resolution dialog for handling simultaneous edits across devices
15+
- Help menu and welcome screen links to website, documentation, GitHub, and sponsor page
16+
- Display BLOB data as hex dump in detail view sidebar
2017

2118
### Fixed
2219

TablePro/Resources/Localizable.xcstrings

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8599,6 +8599,9 @@
85998599
}
86008600
}
86018601
}
8602+
},
8603+
"GitHub Repository" : {
8604+
86028605
},
86038606
"Global:" : {
86048607

@@ -9687,6 +9690,9 @@
96879690
}
96889691
}
96899692
}
9693+
},
9694+
"Invalid hex" : {
9695+
96909696
},
96919697
"Invalid JSON" : {
96929698
"localizations" : {
@@ -16537,6 +16543,12 @@
1653716543
}
1653816544
}
1653916545
}
16546+
},
16547+
"Sponsor" : {
16548+
16549+
},
16550+
"Sponsor TablePro" : {
16551+
1654016552
},
1654116553
"SQL" : {
1654216554
"extractionState" : "stale",
@@ -17522,6 +17534,9 @@
1752217534
}
1752317535
}
1752417536
}
17537+
},
17538+
"TablePro Website" : {
17539+
1752517540
},
1752617541
"Tables" : {
1752717542
"localizations" : {

TablePro/TableProApp.swift

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -385,6 +385,27 @@ struct AppMenuCommands: Commands {
385385
.optionalKeyboardShortcut(shortcut(for: .nextTabArrows))
386386
.disabled(!appState.isConnected)
387387
}
388+
389+
// Help menu
390+
CommandGroup(replacing: .help) {
391+
Button(String(localized: "TablePro Website")) {
392+
NSWorkspace.shared.open(URL(string: "https://tablepro.app")!)
393+
}
394+
395+
Button(String(localized: "Documentation")) {
396+
NSWorkspace.shared.open(URL(string: "https://docs.tablepro.app")!)
397+
}
398+
399+
Divider()
400+
401+
Button("GitHub Repository") {
402+
NSWorkspace.shared.open(URL(string: "https://github.com/datlechin/TablePro")!)
403+
}
404+
405+
Button(String(localized: "Sponsor TablePro")) {
406+
NSWorkspace.shared.open(URL(string: "https://github.com/sponsors/datlechin")!)
407+
}
408+
}
388409
}
389410
}
390411

TablePro/Views/About/AboutView.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,11 @@ struct AboutView: View {
5252
icon: "book",
5353
url: "https://docs.tablepro.app"
5454
)
55+
linkButton(
56+
title: String(localized: "Sponsor"),
57+
icon: "heart",
58+
url: "https://github.com/sponsors/datlechin"
59+
)
5560
}
5661

5762
Spacer()

TablePro/Views/Connection/WelcomeWindowView.swift

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,17 @@ struct WelcomeWindowView: View {
166166

167167
// Action button
168168
VStack(spacing: 12) {
169+
Button {
170+
if let url = URL(string: "https://github.com/sponsors/datlechin") {
171+
NSWorkspace.shared.open(url)
172+
}
173+
} label: {
174+
Label("Sponsor TablePro", systemImage: "heart")
175+
}
176+
.buttonStyle(.plain)
177+
.font(.system(size: ThemeEngine.shared.activeTheme.typography.small))
178+
.foregroundStyle(.pink)
179+
169180
Button(action: { openWindow(id: "connection-form") }) {
170181
Label("Create connection...", systemImage: "plus.circle")
171182
.frame(maxWidth: .infinity, alignment: .leading)

TablePro/Views/Toolbar/TableProToolbarView.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,7 @@ struct TableProToolbar: ViewModifier {
187187
.help("Import Data (⌘⇧I)")
188188
.disabled(state.connectionState != .connected || state.safeModeLevel.blocksAllWrites)
189189
}
190+
190191
}
191192
}
192193
.onReceive(NotificationCenter.default.publisher(for: .openConnectionSwitcher)) { _ in

0 commit comments

Comments
 (0)