X-Git-Url: https://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Freader%2Fui%2FGuiReader.java;h=c6c8413632e07bff43f99cb9dd0a8b575a59a055;hb=dd81a122f978dd0f7f74348fdab122d19fadd159;hp=aed0a921e42c867dd7c879abf93626b42a19337c;hpb=7a3eb29f983ead2aa175db281a9ddab79eeabb80;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/reader/ui/GuiReader.java b/src/be/nikiroo/fanfix/reader/ui/GuiReader.java index aed0a92..c6c8413 100644 --- a/src/be/nikiroo/fanfix/reader/ui/GuiReader.java +++ b/src/be/nikiroo/fanfix/reader/ui/GuiReader.java @@ -17,6 +17,7 @@ import javax.swing.event.HyperlinkListener; import be.nikiroo.fanfix.Instance; import be.nikiroo.fanfix.VersionCheck; +import be.nikiroo.fanfix.bundles.UiConfig; import be.nikiroo.fanfix.data.MetaData; import be.nikiroo.fanfix.data.Story; import be.nikiroo.fanfix.library.BasicLibrary; @@ -266,12 +267,33 @@ class GuiReader extends BasicReader { * in case of I/O errors */ void read(String luid, boolean sync, Progress pg) throws IOException { - File file = cacheLib.getFile(luid, pg); + MetaData meta = cacheLib.getInfo(luid); - // TODO: show a special page for the chapter? - // We could also implement an internal viewer, both for image and - // non-image documents - openExternal(getLibrary().getInfo(luid), file, sync); + boolean textInternal = Instance.getUiConfig().getBoolean( + UiConfig.NON_IMAGES_DOCUMENT_USE_INTERNAL_READER, true); + boolean imageInternal = Instance.getUiConfig().getBoolean( + UiConfig.IMAGES_DOCUMENT_USE_INTERNAL_READER, true); + + boolean useInternalViewer = true; + if (meta.isImageDocument() && !imageInternal) { + useInternalViewer = false; + } + if (!meta.isImageDocument() && !textInternal) { + useInternalViewer = false; + } + + if (useInternalViewer) { + GuiReaderViewer viewer = new GuiReaderViewer(cacheLib, + cacheLib.getStory(luid, null)); + if (sync) { + sync(viewer); + } else { + viewer.setVisible(true); + } + } else { + File file = cacheLib.getFile(luid, pg); + openExternal(meta, file, sync); + } } /**