- // 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 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);
+ }