feat(09-02): add shortcuts config package with default bindings and Wails persistence

- Create backend/shortcuts/config.go with DefaultBindings(), ApplyDefaults(), Validate()
- Wire Shortcuts field into main Config struct with TOML persistence
- Add GetShortcuts, SetShortcuts, SetShortcut, ResetShortcuts Wails binding methods
- Regenerate Wails TypeScript bindings for new config methods
- Fix wsl lint in library.go (blank line before logger call)
This commit is contained in:
2026-03-06 21:46:09 -05:00
parent 42add7fec4
commit 6285ca9dc4
6 changed files with 203 additions and 0 deletions
+8
View File
@@ -13,6 +13,8 @@ export function GetPinDefaultPlaylist():Promise<boolean>;
export function GetScanConcurrency():Promise<string>;
export function GetShortcuts():Promise<Record<string, string>>;
export function GetThemeAccentColor():Promise<string>;
export function GetThemeBackgroundShade():Promise<string>;
@@ -21,6 +23,8 @@ export function GetTrackListColumns():Promise<Array<tracklist.Column>>;
export function Load():Promise<void>;
export function ResetShortcuts():Promise<void>;
export function Save():Promise<void>;
export function SetContext(arg1:context.Context):Promise<void>;
@@ -35,6 +39,10 @@ export function SetPinDefaultPlaylist(arg1:boolean):Promise<void>;
export function SetScanConcurrency(arg1:string):Promise<void>;
export function SetShortcut(arg1:string,arg2:string):Promise<void>;
export function SetShortcuts(arg1:Record<string, string>):Promise<void>;
export function SetThemeAccentColor(arg1:string):Promise<void>;
export function SetThemeBackgroundShade(arg1:string):Promise<void>;
+16
View File
@@ -22,6 +22,10 @@ export function GetScanConcurrency() {
return window['go']['config']['Config']['GetScanConcurrency']();
}
export function GetShortcuts() {
return window['go']['config']['Config']['GetShortcuts']();
}
export function GetThemeAccentColor() {
return window['go']['config']['Config']['GetThemeAccentColor']();
}
@@ -38,6 +42,10 @@ export function Load() {
return window['go']['config']['Config']['Load']();
}
export function ResetShortcuts() {
return window['go']['config']['Config']['ResetShortcuts']();
}
export function Save() {
return window['go']['config']['Config']['Save']();
}
@@ -66,6 +74,14 @@ export function SetScanConcurrency(arg1) {
return window['go']['config']['Config']['SetScanConcurrency'](arg1);
}
export function SetShortcut(arg1, arg2) {
return window['go']['config']['Config']['SetShortcut'](arg1, arg2);
}
export function SetShortcuts(arg1) {
return window['go']['config']['Config']['SetShortcuts'](arg1);
}
export function SetThemeAccentColor(arg1) {
return window['go']['config']['Config']['SetThemeAccentColor'](arg1);
}
+2
View File
@@ -108,6 +108,7 @@ export namespace library {
updated: number;
skipped: number;
removed: number;
cancelled: boolean;
warnings: ScanWarning[];
static createFrom(source: any = {}) {
@@ -141,6 +142,7 @@ export namespace library {
this.updated = source["updated"];
this.skipped = source["skipped"];
this.removed = source["removed"];
this.cancelled = source["cancelled"];
this.warnings = this.convertValues(source["warnings"], ScanWarning);
}