11using System ;
22using System . Collections . Generic ;
3+ using System . IO ;
34using System . Threading . Tasks ;
4-
55using Avalonia ;
66using Avalonia . Controls ;
77using Avalonia . Interactivity ;
@@ -226,42 +226,32 @@ protected override async void OnClosing(WindowClosingEventArgs e)
226226 preferences . Save ( ) ;
227227 }
228228
229- private async void SelectThemeOverrideFile ( object _ , RoutedEventArgs e )
229+ private void OpenThemeRepository ( object _ , RoutedEventArgs e )
230230 {
231- var options = new FilePickerOpenOptions ( )
232- {
233- FileTypeFilter = [ new FilePickerFileType ( "Theme Overrides File" ) { Patterns = [ "*.json" ] } ] ,
234- AllowMultiple = false ,
235- } ;
231+ Native . OS . OpenBrowser ( $ "https://github.com/sourcegit-scm/sourcegit-theme") ;
232+ e . Handled = true ;
233+ }
236234
235+ private async void OpenThemeFolder ( object _ , RoutedEventArgs e )
236+ {
237+ var themesPath = Path . Combine ( Native . OS . DataDir , "themes" ) ;
237238 try
238239 {
239- var selected = await StorageProvider . OpenFilePickerAsync ( options ) ;
240- if ( selected is { Count : 1 } )
241- ViewModels . Preferences . Instance . ThemeOverrides = selected [ 0 ] . Path . LocalPath ;
240+ if ( ! Directory . Exists ( themesPath ) ) Directory . CreateDirectory ( themesPath ) ;
241+ Native . OS . OpenInFileManager ( themesPath ) ;
242242 }
243- catch ( Exception ex )
243+ catch
244244 {
245- await new Alert ( ) . ShowAsync ( this , $ "Failed to select theme override file: { ex . Message } " , true ) ;
245+ // Ignore
246246 }
247247
248248 e . Handled = true ;
249249 }
250250
251- private void OpenThemeRepository ( object _ , RoutedEventArgs e )
252- {
253- Native . OS . OpenBrowser ( $ "https://github.com/sourcegit-scm/sourcegit-theme") ;
254- e . Handled = true ;
255- }
256-
257251 private async void SelectGitExecutable ( object _ , RoutedEventArgs e )
258252 {
259253 var pattern = OperatingSystem . IsWindows ( ) ? "git.exe" : "git" ;
260- var options = new FilePickerOpenOptions ( )
261- {
262- FileTypeFilter = [ new FilePickerFileType ( "Git Executable" ) { Patterns = [ pattern ] } ] ,
263- AllowMultiple = false ,
264- } ;
254+ var options = new FilePickerOpenOptions ( ) { FileTypeFilter = [ new FilePickerFileType ( "Git Executable" ) { Patterns = [ pattern ] } ] , AllowMultiple = false , } ;
265255
266256 try
267257 {
@@ -309,11 +299,7 @@ private async void SelectGPGExecutable(object _, RoutedEventArgs e)
309299 else
310300 patterns . Add ( GPGFormat . Program ) ;
311301
312- var options = new FilePickerOpenOptions ( )
313- {
314- FileTypeFilter = [ new FilePickerFileType ( "GPG Program" ) { Patterns = patterns } ] ,
315- AllowMultiple = false ,
316- } ;
302+ var options = new FilePickerOpenOptions ( ) { FileTypeFilter = [ new FilePickerFileType ( "GPG Program" ) { Patterns = patterns } ] , AllowMultiple = false , } ;
317303
318304 try
319305 {
@@ -339,11 +325,7 @@ private async void SelectShellOrTerminal(object _, RoutedEventArgs e)
339325 var options = new FilePickerOpenOptions ( ) { AllowMultiple = false } ;
340326 if ( shell . Type != "custom" )
341327 {
342- options = new FilePickerOpenOptions ( )
343- {
344- FileTypeFilter = [ new FilePickerFileType ( shell . Name ) { Patterns = [ shell . Exec ] } ] ,
345- AllowMultiple = false ,
346- } ;
328+ options = new FilePickerOpenOptions ( ) { FileTypeFilter = [ new FilePickerFileType ( shell . Name ) { Patterns = [ shell . Exec ] } ] , AllowMultiple = false , } ;
347329 }
348330
349331 try
@@ -371,11 +353,7 @@ private async void SelectExternalMergeTool(object _, RoutedEventArgs e)
371353 }
372354
373355 var tool = Models . ExternalMerger . Supported [ type ] ;
374- var options = new FilePickerOpenOptions ( )
375- {
376- FileTypeFilter = [ new FilePickerFileType ( tool . Name ) { Patterns = tool . GetPatternsToFindExecFile ( ) } ] ,
377- AllowMultiple = false ,
378- } ;
356+ var options = new FilePickerOpenOptions ( ) { FileTypeFilter = [ new FilePickerFileType ( tool . Name ) { Patterns = tool . GetPatternsToFindExecFile ( ) } ] , AllowMultiple = false , } ;
379357
380358 try
381359 {
@@ -449,11 +427,7 @@ private void OnAddCustomAction(object sender, RoutedEventArgs e)
449427
450428 private async void SelectExecutableForCustomAction ( object sender , RoutedEventArgs e )
451429 {
452- var options = new FilePickerOpenOptions ( )
453- {
454- AllowMultiple = false ,
455- FileTypeFilter = [ new ( "Executable file(script)" ) { Patterns = [ "*" ] } ]
456- } ;
430+ var options = new FilePickerOpenOptions ( ) { AllowMultiple = false , FileTypeFilter = [ new ( "Executable file(script)" ) { Patterns = [ "*" ] } ] } ;
457431
458432 try
459433 {
0 commit comments