X-Git-Url: http://git.nikiroo.be/?p=fanfix.git;a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Freader%2Ftui%2FTuiReaderApplication.java;h=6fa969b50da925f0ffe1994fa0f25dbc76faec8f;hp=b7109ab8d6ae55fba0e225d0604c1a6a139f89e8;hb=4f66bfa85209c2c1683f938df9b43fa2924b351e;hpb=9293188fcedc803a8a5a800007b9ac8febdb00ce diff --git a/src/be/nikiroo/fanfix/reader/tui/TuiReaderApplication.java b/src/be/nikiroo/fanfix/reader/tui/TuiReaderApplication.java index b7109ab..6fa969b 100644 --- a/src/be/nikiroo/fanfix/reader/tui/TuiReaderApplication.java +++ b/src/be/nikiroo/fanfix/reader/tui/TuiReaderApplication.java @@ -34,11 +34,16 @@ class TuiReaderApplication extends TApplication implements Reader { public static final int MENU_IMPORT_URL = 1026; public static final int MENU_IMPORT_FILE = 1027; public static final int MENU_EXPORT = 1028; - public static final int MENU_EXIT = 1029; + public static final int MENU_LIBRARY = 1029; + public static final int MENU_EXIT = 1030; private Reader reader; private TuiReaderMainWindow main; + private MetaData meta; + private String source; + private boolean useMeta; + // start reading if meta present public TuiReaderApplication(Reader reader, BackendType backend) throws Exception { @@ -47,11 +52,7 @@ class TuiReaderApplication extends TApplication implements Reader { MetaData meta = getMeta(); - main = new TuiReaderMainWindow(this); - main.setMeta(meta); - if (meta != null) { - read(); - } + showMain(meta, null, true); } public TuiReaderApplication(Reader reader, String source, @@ -59,8 +60,32 @@ class TuiReaderApplication extends TApplication implements Reader { super(backend); init(reader); - main = new TuiReaderMainWindow(this); - main.setSource(source); + showMain(null, source, false); + } + + private void showMain(MetaData meta, String source, boolean useMeta) + throws IOException { + // TODO: thread-safety + this.meta = meta; + this.source = source; + this.useMeta = useMeta; + + if (main != null && main.isVisible()) { + main.activate(); + } else { + if (main != null) { + main.close(); + } + main = new TuiReaderMainWindow(this); + if (useMeta) { + main.setMeta(meta); + if (meta != null) { + read(); + } + } else { + main.setSource(source); + } + } } @Override @@ -151,6 +176,8 @@ class TuiReaderApplication extends TApplication implements Reader { fileMenu.addItem(MENU_IMPORT_URL, "Import &URL..."); fileMenu.addItem(MENU_IMPORT_FILE, "Import &file..."); fileMenu.addSeparator(); + fileMenu.addItem(MENU_LIBRARY, "Lib&rary"); + fileMenu.addSeparator(); fileMenu.addItem(MENU_EXIT, "E&xit"); TStatusBar statusBar = fileMenu.newStatusBar("File-management " @@ -174,7 +201,7 @@ class TuiReaderApplication extends TApplication implements Reader { case MENU_EXIT: if (messageBox("Confirmation", "(TODO: i18n) Exit application?", TMessageBox.Type.YESNO).getResult() == TMessageBox.Result.YES) { - // exit(false); + exit(); // TODO: exit(false) for "no confirm box" } return true; @@ -211,6 +238,14 @@ class TuiReaderApplication extends TApplication implements Reader { e.printStackTrace(); } + return true; + case MENU_LIBRARY: + try { + showMain(meta, source, useMeta); + } catch (IOException e) { + e.printStackTrace(); + } + return true; }