X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Flibrary%2FBasicLibrary.java;h=4c32e3c2a6cbb68d85efb17a3df113026c82ef4d;hb=5083ef84efb7e001c0b5de235d3424e1b59c62f4;hp=328ef656e444fbe4686dca82e08fafa204590d0d;hpb=99ccbdf63b539f1f40e070f5833f2d15fcf79830;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/library/BasicLibrary.java b/src/be/nikiroo/fanfix/library/BasicLibrary.java index 328ef65..4c32e3c 100644 --- a/src/be/nikiroo/fanfix/library/BasicLibrary.java +++ b/src/be/nikiroo/fanfix/library/BasicLibrary.java @@ -48,10 +48,12 @@ abstract public class BasicLibrary { * * @param luid * the Library UID of the story + * @param pg + * the optional {@link Progress} * * @return the corresponding {@link Story} */ - public abstract File getFile(String luid); + public abstract File getFile(String luid, Progress pg); /** * Return the cover image associated to this story. @@ -294,30 +296,44 @@ abstract public class BasicLibrary { * @return the corresponding {@link Story} or NULL if not found */ public synchronized Story getStory(String luid, Progress pg) { - // TODO: pg if (pg == null) { pg = new Progress(); } + Progress pgGet = new Progress(); + Progress pgProcess = new Progress(); + + pg.setMinMax(0, 2); + pg.addProgress(pgGet, 1); + pg.addProgress(pgProcess, 1); + Story story = null; for (MetaData meta : getMetas(null)) { if (meta.getLuid().equals(luid)) { - File file = getFile(luid); + File file = getFile(luid, pgGet); + pgGet.done(); try { SupportType type = SupportType.valueOfAllOkUC(meta .getType()); URL url = file.toURI().toURL(); if (type != null) { - story = BasicSupport.getSupport(type).process(url, pg); + story = BasicSupport.getSupport(type).process(url, + pgProcess); + // Because we do not want to clear the meta cache: + meta.setCover(story.getMeta().getCover()); + story.setMeta(meta); + // } else { throw new IOException("Unknown type: " + meta.getType()); } } catch (IOException e) { // We should not have not-supported files in the // library - Instance.syserr(new IOException( - "Cannot load file from library: " + file, e)); + Instance.getTraceHandler().error( + new IOException("Cannot load file from library: " + + file, e)); } finally { + pgProcess.done(); pg.done(); }