@@ -2211,7 +2211,7 @@ pageQuickConvertCH sink rect tab startTasks = mdo
2211
2211
(trimClock 5 10 5 10 -> row2, row34) = chopBottom 84 bottomRect
2212
2212
[row3, row4] = map (trimClock 5 10 5 10 ) $ splitVertN 2 row34
2213
2213
updateFiles = modifyMVar_ loadedFiles
2214
- filesGroup <- fileLoadWindow filesRect sink " CH song" " CH songs" updateFiles [] searchQuickFoF
2214
+ ( filesGroup, clearFiles) <- fileLoadWindow' filesRect sink " CH song" " CH songs" updateFiles [] searchQuickFoF
2215
2215
$ \ qfof -> let
2216
2216
entry = T. pack $ qfof. location
2217
2217
subline = case qfof. format of
@@ -2301,15 +2301,19 @@ pageQuickConvertCH sink rect tab startTasks = mdo
2301
2301
transform <- getTransform
2302
2302
let warningText = " This will modify the selected songs, and the old versions will be deleted."
2303
2303
FL. flChoice warningText " Cancel" (Just " Start" ) Nothing >>= \ case
2304
- 1 -> sink $ EventOnyx $ startTasks $ flip map qfofs $ \ orig -> let
2305
- loc = orig. location
2306
- task = do
2307
- qfof <- transform orig
2308
- stackIO $ case qfof. format of
2309
- FoFFolder -> saveQuickFoFFolder loc qfof
2310
- FoFSNG -> saveQuickFoFSNG loc qfof
2311
- return [loc]
2312
- in (loc, task)
2304
+ 1 -> sink $ EventOnyx $ do
2305
+ -- TODO this is a hack to avoid stale .sng references after editing them.
2306
+ -- should come up with a better solution!
2307
+ stackIO clearFiles
2308
+ startTasks $ flip map qfofs $ \ orig -> let
2309
+ loc = orig. location
2310
+ task = do
2311
+ qfof <- transform orig
2312
+ stackIO $ case qfof. format of
2313
+ FoFFolder -> saveQuickFoFFolder loc qfof
2314
+ FoFSNG -> saveQuickFoFSNG loc qfof
2315
+ return [loc]
2316
+ in (loc, task)
2313
2317
_ -> return ()
2314
2318
2315
2319
let computeTasks qfofs ext template deleteOriginals = forM qfofs $ \ qfof -> do
@@ -2348,8 +2352,9 @@ pageQuickConvertCH sink rect tab startTasks = mdo
2348
2352
qfofs <- readMVar loadedFiles
2349
2353
transform <- getTransform
2350
2354
tasks <- computeTasks qfofs " " template deleteOriginals
2351
- promptTasks tasks $ do
2352
- sink $ EventOnyx $ startTasks $ flip map tasks $ \ (orig, _, taskType, fout) -> let
2355
+ promptTasks tasks $ sink $ EventOnyx $ do
2356
+ stackIO clearFiles -- hack as mentioned above
2357
+ startTasks $ flip map tasks $ \ (orig, _, taskType, fout) -> let
2353
2358
task = do
2354
2359
qfof <- transform orig
2355
2360
stackIO $ saveQuickFoFFolder fout qfof
@@ -2372,8 +2377,9 @@ pageQuickConvertCH sink rect tab startTasks = mdo
2372
2377
qfofs <- readMVar loadedFiles
2373
2378
transform <- getTransform
2374
2379
tasks <- computeTasks qfofs " sng" template deleteOriginals
2375
- promptTasks tasks $ do
2376
- sink $ EventOnyx $ startTasks $ flip map tasks $ \ (orig, _, taskType, fout) -> let
2380
+ promptTasks tasks $ sink $ EventOnyx $ do
2381
+ stackIO clearFiles -- hack as mentioned above
2382
+ startTasks $ flip map tasks $ \ (orig, _, taskType, fout) -> let
2377
2383
task = do
2378
2384
qfof <- transform orig
2379
2385
stackIO $ saveQuickFoFSNG fout qfof
0 commit comments