@@ -100,6 +100,7 @@ function KomaUI(;
100100 sim_params = merge (Dict {String,Any} (), sim)
101101 rec_params = merge (Dict {Symbol,Any} (:reco => " direct" ), rec)
102102 mat_folder = tempdir ()
103+ seq_file = Ref (" " )
103104
104105 # Print gpu information
105106 if ! (haskey (sim_params, " gpu" ) && sim_params[" gpu" ] == false )
@@ -118,6 +119,11 @@ function KomaUI(;
118119 handle (w, " pulses_seq" ) do _
119120 view_ui! (seq_ui[], w; type= " sequence" , darkmode)
120121 end
122+ handle (w, " reload_seq" ) do _
123+ if seq_file[] != " "
124+ seq_ui[] = callback_filepicker (seq_file[], w, seq_ui[])
125+ end
126+ end
121127 handle (w, " pulses_kspace" ) do _
122128 view_ui! (seq_ui[], w; type= " kspace" , darkmode)
123129 end
@@ -330,7 +336,7 @@ function KomaUI(;
330336 " KomaMRIPlots.jl v" + version_plots);
331337 )
332338 # Filepickers
333- setup_filepickers! (w)
339+ setup_filepickers! (w; seq_file )
334340
335341 @info " KomaMRI loaded successfully 🚀" KomaMRI= version_ui KomaMRIBase= version_base KomaMRICore= version_core KomaMRIFiles= version_io KomaMRIPlots= version_plots
336342
@@ -342,17 +348,21 @@ function KomaUI(;
342348 return nothing
343349end
344350
345- function setup_filepickers! (w:: Window )
346- setup_filepicker! (w, " #seqfilepicker" , " .seq (Pulseq)/.seqk (Koma)" , seq_ui; accept= " .seq,.seqk" )
351+ function setup_filepickers! (w:: Window ; seq_file= Ref (" " ))
352+ setup_filepicker! (
353+ w, " #seqfilepicker" , " .seq (Pulseq)" , seq_ui; accept= " .seq,.seqk" , selected_file= seq_file,
354+ )
347355 setup_filepicker! (w, " #phafilepicker" , " .phantom (Koma)/.h5 (JEMRIS)" , obj_ui; accept= " .phantom,.h5" )
348356 setup_filepicker! (w, " #sigfilepicker" , " .h5/.mrd (ISMRMRD)" , raw_ui; accept= " .h5,.mrd" )
349357 return nothing
350358end
351359
352- function setup_filepicker! (w:: Window , selector:: String , label:: String , output; accept)
360+ function setup_filepicker! (w:: Window , selector:: String , label:: String , output; accept, selected_file = nothing )
353361 widget = filepicker (label; accept)
354362 content! (w, selector, widget, async= false , fade= false )
355363 on (observe (widget)) do filename
364+ filename == " " && return nothing
365+ isnothing (selected_file) || (selected_file[] = filename)
356366 output[] = callback_filepicker (filename, w, output[])
357367 end
358368 return nothing
0 commit comments