diff --git a/150_gfui/src/gplx/gfui/controls/gxws/Gxw_html_load_tid_.java b/150_gfui/src/gplx/gfui/controls/gxws/Gxw_html_load_tid_.java index c3d75e4f0..100de2ceb 100644 --- a/150_gfui/src/gplx/gfui/controls/gxws/Gxw_html_load_tid_.java +++ b/150_gfui/src/gplx/gfui/controls/gxws/Gxw_html_load_tid_.java @@ -18,18 +18,9 @@ along with this program. If not, see . package gplx.gfui.controls.gxws; import gplx.*; import gplx.gfui.*; import gplx.gfui.controls.*; public class Gxw_html_load_tid_ { public static final byte Tid_mem = 0, Tid_url = 1; - public static final String Key_mem = "mem", Key_url = "url"; - public static String Xto_key(byte v) { - switch (v) { - case Tid_mem: return Key_mem; - case Tid_url: return Key_url; - default: throw Err_.new_unimplemented(); - } - } public static byte Xto_tid(String s) { - if (String_.Eq(s, Key_mem)) return Tid_mem; - else if (String_.Eq(s, Key_url)) return Tid_url; + if (String_.Eq(s, "mem")) return Tid_mem; + else if (String_.Eq(s, "url")) return Tid_url; else throw Err_.new_unimplemented(); } - public static Keyval[] Options__list = Keyval_.Ary(Keyval_.new_(Key_mem), Keyval_.new_(Key_url)); } diff --git a/400_xowa/src/gplx/xowa/Xoa_app.java b/400_xowa/src/gplx/xowa/Xoa_app.java index 363405e28..9077e4e4e 100644 --- a/400_xowa/src/gplx/xowa/Xoa_app.java +++ b/400_xowa/src/gplx/xowa/Xoa_app.java @@ -31,11 +31,12 @@ import gplx.xowa.users.*; import gplx.xowa.bldrs.*; import gplx.xowa.addons.*; import gplx.xowa.specials.mgrs.*; import gplx.xowa.parsers.amps.*; -import gplx.xowa.addons.apps.cfgs.*; +import gplx.xowa.addons.apps.cfgs.*; import gplx.xowa.apps.miscs.*; public interface Xoa_app extends Gfo_invk { boolean Tid_is_edit(); Xoa_app_mode Mode(); Xoapi_root Api_root(); + Xocfg_mgr Cfg(); Xoa_fsys_mgr Fsys_mgr(); Xoa_wiki_mgr Wiki_mgri(); Xoa_lang_mgr Lang_mgr(); @@ -50,7 +51,6 @@ public interface Xoa_app extends Gfo_invk { Xog_tab_mgr Gui__tab_mgr(); Xou_user User(); Xowmf_mgr Wmf_mgr(); - Xocfg_mgr Cfg(); boolean Xwiki_mgr__missing(byte[] domain); Xoa_sitelink_mgr Xwiki_mgr__sitelink_mgr(); Xow_xwiki_itm_parser Xwiki_mgr__itm_parser(); @@ -65,4 +65,5 @@ public interface Xoa_app extends Gfo_invk { Xoa_special_regy Special_regy(); Gfo_thread_mgr Thread_mgr(); Xop_amp_mgr Parser_amp_mgr(); + Xoa_misc_mgr Misc_mgr(); } diff --git a/400_xowa/src/gplx/xowa/Xoae_app.java b/400_xowa/src/gplx/xowa/Xoae_app.java index 2dafc0643..cd8e5f31e 100644 --- a/400_xowa/src/gplx/xowa/Xoae_app.java +++ b/400_xowa/src/gplx/xowa/Xoae_app.java @@ -30,7 +30,7 @@ import gplx.xowa.parsers.utils.*; import gplx.xowa.parsers.logs.*; import gplx.x import gplx.xowa.bldrs.wms.*; import gplx.xowa.wikis.tdbs.*; import gplx.xowa.wikis.tdbs.hives.*; import gplx.xowa.wikis.xwikis.*; import gplx.xowa.addons.*; import gplx.xowa.specials.mgrs.*; -import gplx.xowa.addons.apps.cfgs.*; +import gplx.xowa.addons.apps.cfgs.*; import gplx.xowa.apps.miscs.*; public class Xoae_app implements Xoa_app, Gfo_invk { public Xoae_app(Gfo_usr_dlg usr_dlg, Xoa_app_mode mode, Io_url root_dir, Io_url wiki_dir, Io_url file_dir, Io_url user_dir, Io_url css_dir, String bin_dir_name) { Xoa_app_.Usr_dlg_(usr_dlg); @@ -96,6 +96,7 @@ public class Xoae_app implements Xoa_app, Gfo_invk { public Xog_tab_mgr Gui__tab_mgr() {return gui__tab_mgr;} private final Xog_tab_mgr gui__tab_mgr; public Gfo_thread_mgr Thread_mgr() {return thread_mgr;} private final Gfo_thread_mgr thread_mgr = new Gfo_thread_mgr(); public Xocfg_mgr Cfg() {return cfg;} private final Xocfg_mgr cfg = new Xocfg_mgr(); + public Xoa_misc_mgr Misc_mgr() {return misc_mgr;} private final Xoa_misc_mgr misc_mgr = new Xoa_misc_mgr(); public Xoae_wiki_mgr Wiki_mgr() {return wiki_mgr;} private Xoae_wiki_mgr wiki_mgr; public Xoa_wiki_mgr Wiki_mgri() {return wiki_mgr;} @@ -148,6 +149,7 @@ public class Xoae_app implements Xoa_app, Gfo_invk { stage = Xoa_stage_.Tid_init; user.Init_by_app(this); cfg.Init_by_app(this); + misc_mgr.Init_by_app(this); user.History_mgr().Init_by_app(this); prog_mgr.Init_by_app(this, url_cmd_eval); xtn_mgr.Init_by_app(this); @@ -198,7 +200,6 @@ public class Xoae_app implements Xoa_app, Gfo_invk { this.Utl__bfr_mkr().Clear(); msg_log.Clear(); wiki_mgr.Free_mem(clear_ctx); - if (cfg != null) cfg.Clear(); // TEST:cfg is null b/c tests do not call Init_by_app } public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) { if (ctx.Match(k, Invk_gui)) return gui_mgr; diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/Xocfg_mgr.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/Xocfg_mgr.java index 544849d42..48cc88b40 100644 --- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/Xocfg_mgr.java +++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/Xocfg_mgr.java @@ -30,9 +30,6 @@ public class Xocfg_mgr { , app.User().User_db_mgr().Conn()); dflt_mgr.Init_by_app(app); } - public void Clear() { - cache_mgr.Clear(); - } public void Bind_many_app (Gfo_invk sub, String... keys) {Bind_many(sub, Xocfg_mgr.Ctx__app, keys);} public void Bind_many_wiki (Gfo_invk sub, Xow_wiki wiki, String... keys) {Bind_many(sub, wiki.Domain_itm().Abrv_xo_str(), keys);} public void Bind_many(Gfo_invk sub, String ctx, String... keys) { diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/mgrs/caches/Xocfg_cache_mgr.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/mgrs/caches/Xocfg_cache_mgr.java index 673bffceb..51dc44340 100644 --- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/mgrs/caches/Xocfg_cache_mgr.java +++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/mgrs/caches/Xocfg_cache_mgr.java @@ -30,7 +30,7 @@ public class Xocfg_cache_mgr { } public Xocfg_db_app Db_app() {return db_app;} private Xocfg_db_app db_app; public Xocfg_db_usr Db_usr() {return db_usr;} private Xocfg_db_usr db_usr; - public void Clear() {grps.Clear();} + // public void Clear() {grps.Clear();} // TOMBSTONE: do not call .Clear b/c subscribers are kept in grps and are only loaded once at app startup public String Get(String ctx, String key) { Xocfg_cache_grp grp = Grps__get_or_load(key); return grp.Get(ctx); diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/mgrs/types/Xocfg_type_mgr.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/mgrs/types/Xocfg_type_mgr.java index e2bcf2c25..6559ca484 100644 --- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/mgrs/types/Xocfg_type_mgr.java +++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/mgrs/types/Xocfg_type_mgr.java @@ -19,7 +19,7 @@ package gplx.xowa.addons.apps.cfgs.mgrs.types; import gplx.*; import gplx.xowa.* public class Xocfg_type_mgr { private final Ordered_hash list_hash = Ordered_hash_.New(); public Xocfg_type_mgr() { - this.Lists__add("list:xowa.app.security.privacy.load_mode", "mem", "url"); + this.Lists__add("list:xowa.gui.browser.page_load_mode", "mem", "url"); this.Lists__add("list:xowa.app.startup.window.mode", "previous", "maximized", "absolute", "relative", "default"); this.Lists__add("list:xowa.app.startup.pages.type", "blank", "xowa", "previous", "custom"); this.Lists__add("list:xowa.gui.window.html_box.adj_type", "none", "relative", "absolute"); diff --git a/400_xowa/src/gplx/xowa/apps/Xoav_app.java b/400_xowa/src/gplx/xowa/apps/Xoav_app.java index 55291400f..a0ad67af6 100644 --- a/400_xowa/src/gplx/xowa/apps/Xoav_app.java +++ b/400_xowa/src/gplx/xowa/apps/Xoav_app.java @@ -31,7 +31,7 @@ import gplx.xowa.bldrs.wms.*; import gplx.langs.htmls.encoders.*; import gplx.xowa.bldrs.*; import gplx.xowa.addons.*; import gplx.xowa.specials.mgrs.*; -import gplx.xowa.addons.apps.cfgs.*; +import gplx.xowa.addons.apps.cfgs.*; import gplx.xowa.apps.miscs.*; public class Xoav_app implements Xoa_app, Gfo_invk { public Xoav_app(Gfo_usr_dlg usr_dlg, Xoa_app_mode mode, Xog_tab_mgr tab_mgr, String plat_name, Io_url root_dir, Io_url file_dir, Io_url css_dir, Io_url http_root) { Xoa_app_.Usr_dlg_(usr_dlg); this.usr_dlg = usr_dlg; this.mode = mode; @@ -81,6 +81,7 @@ public class Xoav_app implements Xoa_app, Gfo_invk { public Gfo_thread_mgr Thread_mgr() {return thread_mgr;} private final Gfo_thread_mgr thread_mgr = new Gfo_thread_mgr(); public Xop_amp_mgr Parser_amp_mgr() {return parser_amp_mgr;} private final Xop_amp_mgr parser_amp_mgr = Xop_amp_mgr.Instance; public Xocfg_mgr Cfg() {return cfg;} private final Xocfg_mgr cfg = new Xocfg_mgr(); + public Xoa_misc_mgr Misc_mgr() {return misc_mgr;} private final Xoa_misc_mgr misc_mgr = new Xoa_misc_mgr(); public Xowmf_mgr Wmf_mgr() {return wmf_mgr;} private final Xowmf_mgr wmf_mgr = new Xowmf_mgr(); public Gfo_usr_dlg Usr_dlg() {return usr_dlg;} public void Usr_dlg_(Gfo_usr_dlg v) {usr_dlg = v; Xoa_app_.Usr_dlg_(usr_dlg);} private Gfo_usr_dlg usr_dlg = Gfo_usr_dlg_.Noop; @@ -98,9 +99,9 @@ public class Xoav_app implements Xoa_app, Gfo_invk { user.Init_db(this, wiki_mgr, user_db_url); this.Addon_mgr().Add_dflts_by_app(this).Run_by_app(this); cfg.Init_by_app(this); + misc_mgr.Init_by_app(this); } public void Free_mem() { // NOTE:not yet called in drd; DATE:2016-12-04 - cfg.Clear(); } public static Xoav_app New_by_drd(gplx.xowa.drds.files.Xod_fsys_mgr fsys_mgr, Xog_tab_mgr tab_mgr) { // create log diff --git a/400_xowa/src/gplx/xowa/apps/apis/Xoapi_root.java b/400_xowa/src/gplx/xowa/apps/apis/Xoapi_root.java index 0e6555e35..b0f967f91 100644 --- a/400_xowa/src/gplx/xowa/apps/apis/Xoapi_root.java +++ b/400_xowa/src/gplx/xowa/apps/apis/Xoapi_root.java @@ -31,7 +31,6 @@ public class Xoapi_root implements Gfo_invk { nav_api.Init_by_kit(app); gui_api.Init_by_kit(app); html_api.Init_by_kit(app); - net_api.Init_by_kit(app); usr_api.Init_by_kit(app); xtns_api.Init_by_kit(app); } @@ -46,7 +45,6 @@ public class Xoapi_root implements Gfo_invk { public Xoapi_gui Gui() {return gui_api;} private final Xoapi_gui gui_api = new Xoapi_gui(); public Xoapi_html Html() {return html_api;} private final Xoapi_html html_api = new Xoapi_html(); public Xoapi_bldr Bldr() {return bldr_api;} private final Xoapi_bldr bldr_api = new Xoapi_bldr(); - public Xoapi_net Net() {return net_api;} private final Xoapi_net net_api = new Xoapi_net(); public Xoapi_usr Usr() {return usr_api;} private final Xoapi_usr usr_api = new Xoapi_usr(); public Xoapi_special Special() {return special_api;} private final Xoapi_special special_api = new Xoapi_special(); public Xoapi_xtns Xtns() {return xtns_api;} private final Xoapi_xtns xtns_api = new Xoapi_xtns(); @@ -64,7 +62,6 @@ public class Xoapi_root implements Gfo_invk { else if (ctx.Match(k, Invk_nav)) return nav_api; else if (ctx.Match(k, Invk_gui)) return gui_api; else if (ctx.Match(k, Invk_html)) return html_api; - else if (ctx.Match(k, Invk_net)) return net_api; else if (ctx.Match(k, Invk_usr)) return usr_api; else if (ctx.Match(k, Invk_special)) return special_api; else if (ctx.Match(k, Invk_xtns)) return xtns_api; @@ -77,7 +74,7 @@ public class Xoapi_root implements Gfo_invk { private static final String Invk_exec = "exec" , Invk_app = "app", Invk_addon = "addon" - , Invk_bldr = "bldr", Invk_nav = "nav", Invk_gui = "gui", Invk_html = "html", Invk_net = "net", Invk_usr = "usr", Invk_special = "special", Invk_xtns = "xtns" + , Invk_bldr = "bldr", Invk_nav = "nav", Invk_gui = "gui", Invk_html = "html", Invk_usr = "usr", Invk_special = "special", Invk_xtns = "xtns" , Invk_test_str = "test_str", Invk_test_str_ = "test_str_" , Invk_wikis = "wikis" ; diff --git a/400_xowa/src/gplx/xowa/apps/apis/xowa/Xoapi_net.java b/400_xowa/src/gplx/xowa/apps/apis/xowa/Xoapi_net.java deleted file mode 100644 index 395c644c6..000000000 --- a/400_xowa/src/gplx/xowa/apps/apis/xowa/Xoapi_net.java +++ /dev/null @@ -1,42 +0,0 @@ -/* -XOWA: the XOWA Offline Wiki Application -Copyright (C) 2012 gnosygnu@gmail.com - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU Affero General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Affero General Public License for more details. - -You should have received a copy of the GNU Affero General Public License -along with this program. If not, see . -*/ -package gplx.xowa.apps.apis.xowa; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*; import gplx.xowa.apps.apis.*; -public class Xoapi_net implements Gfo_invk, Gfo_evt_itm { - public Xoapi_net() {this.ev_mgr = new Gfo_evt_mgr(this);} - public Gfo_evt_mgr Evt_mgr() {return ev_mgr;} private Gfo_evt_mgr ev_mgr; - public void Init_by_kit(Xoae_app app) { - } - public boolean Enabled() {return enabled;} private boolean enabled = true; - public void Enabled_(boolean v) { - this.enabled = v; - gplx.core.ios.IoEngine_system.Web_access_enabled = v; - Gfo_evt_mgr_.Pub_val(this, gplx.xowa.guis.menus.dom.Xog_mnu_evt_mgr.Evt_selected_changed, v); - } - public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) { - if (ctx.Match(k, Invk_enabled)) return this.Enabled(); - else if (ctx.Match(k, Invk_enabled_n_)) this.Enabled_(Bool_.N); - else if (ctx.Match(k, Invk_enabled_y_)) this.Enabled_(Bool_.Y); - else if (ctx.Match(k, Invk_enabled_x_)) this.Enabled_(this.Enabled()); - else return Gfo_invk_.Rv_unhandled; - return this; - } - private static final String - Invk_enabled = "enabled", Invk_enabled_n_ = "enabled_n_", Invk_enabled_y_ = "enabled_y_", Invk_enabled_x_ = "enabled_x_" - ; - public static final String Evt_enabled_changed = "enabled_changed"; -} diff --git a/400_xowa/src/gplx/xowa/apps/apis/xowa/Xoapi_usr.java b/400_xowa/src/gplx/xowa/apps/apis/xowa/Xoapi_usr.java index 862196b0a..f21312371 100644 --- a/400_xowa/src/gplx/xowa/apps/apis/xowa/Xoapi_usr.java +++ b/400_xowa/src/gplx/xowa/apps/apis/xowa/Xoapi_usr.java @@ -21,7 +21,6 @@ public class Xoapi_usr implements Gfo_invk { public void Ctor_by_app(Xoae_app app) { bookmarks.Ctor_by_app(app); history.Ctor_by_app(app); - logs.Ctor_by_app(app); } public void Init_by_app(Xoa_app app) { cache.Init_by_app(app); @@ -32,14 +31,12 @@ public class Xoapi_usr implements Gfo_invk { } public Xoapi_bookmarks Bookmarks() {return bookmarks;} private final Xoapi_bookmarks bookmarks = new Xoapi_bookmarks(); public Xoapi_history History() {return history;} private final Xoapi_history history = new Xoapi_history(); - public Xoapi_logs Logs() {return logs;} private final Xoapi_logs logs = new Xoapi_logs(); public Xoapi_cache Cache() {return cache;} private final Xoapi_cache cache = new Xoapi_cache(); public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) { if (ctx.Match(k, Invk_bookmarks)) return bookmarks; else if (ctx.Match(k, Invk_history)) return history; - else if (ctx.Match(k, Invk_logs)) return logs; else if (ctx.Match(k, Invk_cache)) return cache; else return Gfo_invk_.Rv_unhandled; } - private static final String Invk_bookmarks = "bookmarks", Invk_history = "history", Invk_logs = "logs", Invk_cache = "cache"; + private static final String Invk_bookmarks = "bookmarks", Invk_history = "history", Invk_cache = "cache"; } diff --git a/400_xowa/src/gplx/xowa/apps/apis/xowa/gui/browsers/Xoapi_html_box.java b/400_xowa/src/gplx/xowa/apps/apis/xowa/gui/browsers/Xoapi_html_box.java index 39a126e32..2b46d12c6 100644 --- a/400_xowa/src/gplx/xowa/apps/apis/xowa/gui/browsers/Xoapi_html_box.java +++ b/400_xowa/src/gplx/xowa/apps/apis/xowa/gui/browsers/Xoapi_html_box.java @@ -18,14 +18,9 @@ along with this program. If not, see . package gplx.xowa.apps.apis.xowa.gui.browsers; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*; import gplx.xowa.apps.apis.*; import gplx.xowa.apps.apis.xowa.*; import gplx.xowa.apps.apis.xowa.gui.*; import gplx.gfui.*; import gplx.gfui.controls.gxws.*; import gplx.gfui.controls.standards.*; import gplx.xowa.wikis.pages.*; import gplx.xowa.guis.*; import gplx.xowa.guis.views.*; -public class Xoapi_html_box implements Gfo_invk, Gfo_evt_mgr_owner { +public class Xoapi_html_box implements Gfo_invk { private Xog_win_itm win; - public Xoapi_html_box() { - evt_mgr = new Gfo_evt_mgr(this); - } - public Gfo_evt_mgr Evt_mgr() {return evt_mgr;} private Gfo_evt_mgr evt_mgr; public void Init_by_kit(Xoae_app app) {this.win = app.Gui_mgr().Browser_win();} - public byte Load_tid() {return load_tid;} private byte load_tid; public void Focus() { Xog_tab_itm tab = win.Active_tab(); if (tab == Xog_tab_itm_.Null) return; Gfui_html html_box = tab.Html_itm().Html_box(); @@ -41,14 +36,8 @@ public class Xoapi_html_box implements Gfo_invk, Gfo_evt_mgr_owner { public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) { if (ctx.Match(k, Invk_focus)) this.Focus(); else if (ctx.Match(k, Invk_selection_focus_toggle)) this.Selection_focus(); - else if (ctx.Match(k, Invk_load_tid)) return Gxw_html_load_tid_.Xto_key(load_tid); - else if (ctx.Match(k, Invk_load_tid_)) {load_tid = Gxw_html_load_tid_.Xto_tid(m.ReadStr("v")); Gfo_evt_mgr_.Pub_val(this, Evt_load_tid_changed, load_tid);} - else if (ctx.Match(k, Invk_load_tid_list)) return Gxw_html_load_tid_.Options__list; else return Gfo_invk_.Rv_unhandled; return this; } - private static final String Invk_focus = "focus", Invk_selection_focus_toggle = "selection_focus_toggle" - , Invk_load_tid = "load_tid", Invk_load_tid_ = "load_tid_", Invk_load_tid_list = "load_tid_list" - ; - public static final String Evt_load_tid_changed = "load_tid_changed"; + private static final String Invk_focus = "focus", Invk_selection_focus_toggle = "selection_focus_toggle"; } diff --git a/400_xowa/src/gplx/xowa/apps/apis/xowa/usrs/Xoapi_bookmarks.java b/400_xowa/src/gplx/xowa/apps/apis/xowa/usrs/Xoapi_bookmarks.java index 083e38b24..e06a85e57 100644 --- a/400_xowa/src/gplx/xowa/apps/apis/xowa/usrs/Xoapi_bookmarks.java +++ b/400_xowa/src/gplx/xowa/apps/apis/xowa/usrs/Xoapi_bookmarks.java @@ -21,10 +21,12 @@ import gplx.xowa.users.bmks.*; import gplx.xowa.wikis.*; public class Xoapi_bookmarks implements Gfo_invk { private Xoae_app app; private Xog_win_itm win; + private boolean enabled = true; public void Ctor_by_app(Xoae_app app) {this.app = app;} - public void Init_by_kit(Xoae_app app) {this.win = app.Gui_mgr().Browser_win();} - public boolean Enabled() {return enabled;} private boolean enabled = true; - public void Enabled_(boolean v) {enabled = v;} + public void Init_by_kit(Xoae_app app) { + this.win = app.Gui_mgr().Browser_win(); + app.Cfg().Bind_many_app(this, Cfg__enabled); + } public boolean Delete_confirm() {return delete_confirm;} private boolean delete_confirm = true; public void Show() {win.Page__navigate_by_url_bar("home/wiki/Special:XowaBookmarks");} public String Add(String url_str) { @@ -43,8 +45,7 @@ public class Xoapi_bookmarks implements Gfo_invk { return rv; } public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) { - if (ctx.Match(k, Invk_enabled)) return Yn.To_str(enabled); - else if (ctx.Match(k, Invk_enabled_)) enabled = m.ReadYn("v"); + if (ctx.Match(k, Cfg__enabled)) enabled = m.ReadYn("v"); else if (ctx.Match(k, Invk_delete_confirm)) return Yn.To_str(delete_confirm); else if (ctx.Match(k, Invk_delete_confirm_)) delete_confirm = m.ReadYn("v"); else if (ctx.Match(k, Invk_add)) return this.Add(m.ReadStrOr("v", null)); @@ -53,7 +54,8 @@ public class Xoapi_bookmarks implements Gfo_invk { return this; } private static final String - Invk_enabled = "enabled", Invk_enabled_ = "enabled_" - , Invk_delete_confirm = "delete_confirm", Invk_delete_confirm_ = "delete_confirm_" - , Invk_add = "add", Invk_show = "show"; + Invk_delete_confirm = "delete_confirm", Invk_delete_confirm_ = "delete_confirm_" + , Invk_add = "add", Invk_show = "show" + , Cfg__enabled = "xowa.app.bookmarks.enabled" + ; } diff --git a/400_xowa/src/gplx/xowa/apps/apis/xowa/usrs/Xoapi_history.java b/400_xowa/src/gplx/xowa/apps/apis/xowa/usrs/Xoapi_history.java index 86fe27033..409c2d638 100644 --- a/400_xowa/src/gplx/xowa/apps/apis/xowa/usrs/Xoapi_history.java +++ b/400_xowa/src/gplx/xowa/apps/apis/xowa/usrs/Xoapi_history.java @@ -21,17 +21,13 @@ public class Xoapi_history implements Gfo_invk { private Xoae_app app; private Xog_win_itm win; public void Ctor_by_app(Xoae_app app) {this.app = app;} public void Init_by_kit(Xoae_app app) {this.win = app.Gui_mgr().Browser_win();} - public boolean Enabled() {return enabled;} private boolean enabled = true; - public void Enabled_(boolean v) {enabled = v;} public void Goto_recent() {win.Page__navigate_by_url_bar(app.Usere().History_mgr().Get_at_last());} public void Show() {win.Page__navigate_by_url_bar("home/wiki/Special:XowaPageHistory");} public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) { - if (ctx.Match(k, Invk_enabled)) return Yn.To_str(this.Enabled()); - else if (ctx.Match(k, Invk_enabled_)) Enabled_(m.ReadYn("v")); - else if (ctx.Match(k, Invk_goto_recent)) this.Goto_recent(); + if (ctx.Match(k, Invk_goto_recent)) this.Goto_recent(); else if (ctx.Match(k, Invk_show)) this.Show(); else return Gfo_invk_.Rv_unhandled; return this; } - private static final String Invk_enabled = "enabled", Invk_enabled_ = "enabled_", Invk_goto_recent = "goto_recent", Invk_show = "show"; + private static final String Invk_goto_recent = "goto_recent", Invk_show = "show"; } diff --git a/400_xowa/src/gplx/xowa/apps/apis/xowa/usrs/Xoapi_logs.java b/400_xowa/src/gplx/xowa/apps/apis/xowa/usrs/Xoapi_logs.java deleted file mode 100644 index c26046ae8..000000000 --- a/400_xowa/src/gplx/xowa/apps/apis/xowa/usrs/Xoapi_logs.java +++ /dev/null @@ -1,37 +0,0 @@ -/* -XOWA: the XOWA Offline Wiki Application -Copyright (C) 2012 gnosygnu@gmail.com - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU Affero General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Affero General Public License for more details. - -You should have received a copy of the GNU Affero General Public License -along with this program. If not, see . -*/ -package gplx.xowa.apps.apis.xowa.usrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*; import gplx.xowa.apps.apis.*; import gplx.xowa.apps.apis.xowa.*; -import gplx.xowa.guis.views.*; -public class Xoapi_logs implements Gfo_invk { - private Xoae_app app; - public void Ctor_by_app(Xoae_app app) {this.app = app;} - public void Init_by_kit(Xoae_app app) {} - public boolean Enabled() {return app.Log_wtr().Enabled();} - public void Enabled_(boolean v) { - app.Log_wtr().Enabled_(v); - if (!v) - Io_mgr.Instance.DeleteFil_args(app.Log_wtr().Session_fil()).MissingFails_off().Exec(); - } - public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) { - if (ctx.Match(k, Invk_enabled)) return Yn.To_str(this.Enabled()); - else if (ctx.Match(k, Invk_enabled_)) Enabled_(m.ReadYn("v")); - else return Gfo_invk_.Rv_unhandled; - return this; - } - private static final String Invk_enabled = "enabled", Invk_enabled_ = "enabled_"; -} diff --git a/400_xowa/src/gplx/xowa/apps/miscs/Xoa_misc_mgr.java b/400_xowa/src/gplx/xowa/apps/miscs/Xoa_misc_mgr.java new file mode 100644 index 000000000..e7708aa4b --- /dev/null +++ b/400_xowa/src/gplx/xowa/apps/miscs/Xoa_misc_mgr.java @@ -0,0 +1,40 @@ +/* +XOWA: the XOWA Offline Wiki Application +Copyright (C) 2012 gnosygnu@gmail.com + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as +published by the Free Software Foundation, either version 3 of the +License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Affero General Public License for more details. + +You should have received a copy of the GNU Affero General Public License +along with this program. If not, see . +*/ +package gplx.xowa.apps.miscs; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*; +public class Xoa_misc_mgr implements Gfo_invk { + private Xoa_app app; + public void Init_by_app(Xoa_app app) { + this.app = app; + app.Cfg().Bind_many_app(this, Cfg__web_enabled, Cfg__logs_enabled); + } + public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) { + if (ctx.Match(k, Cfg__web_enabled)) gplx.core.ios.IoEngine_system.Web_access_enabled = m.ReadYn("v"); + else if (ctx.Match(k, Cfg__logs_enabled)) { + if (app.Tid_is_edit()) { + Xoae_app appe = (Xoae_app)app; + boolean logs_enabled = m.ReadYn("v"); + appe.Log_wtr().Enabled_(logs_enabled); + if (!logs_enabled) + Io_mgr.Instance.DeleteFil_args(appe.Log_wtr().Session_fil()).MissingFails_off().Exec(); + } + } + else return Gfo_invk_.Rv_unhandled; + return this; + } + private static final String Cfg__web_enabled = "xowa.app.web.enabled", Cfg__logs_enabled = "xowa.app.logs.enabled"; +} diff --git a/400_xowa/src/gplx/xowa/apps/site_cfgs/Xoa_site_cfg_mgr_tst.java b/400_xowa/src/gplx/xowa/apps/site_cfgs/Xoa_site_cfg_mgr_tst.java index 475abe902..5df1c2db7 100644 --- a/400_xowa/src/gplx/xowa/apps/site_cfgs/Xoa_site_cfg_mgr_tst.java +++ b/400_xowa/src/gplx/xowa/apps/site_cfgs/Xoa_site_cfg_mgr_tst.java @@ -69,6 +69,7 @@ class Xoa_site_cfg_mgr_fxt { private final Bry_bfr tmp_bfr = Bry_bfr_.New(); public Xoa_site_cfg_mgr_fxt() { // Xoa_app_.Usr_dlg_(Xoa_app_.New__usr_dlg__console()); + gplx.core.ios.IoEngine_system.Web_access_enabled = true; // HACK: must manually enable web_access else above tests will fail due to some other test disabling singleton; DATE:2016-12-15 Xoa_test_.Inet__init(); this.app = Xoa_app_fxt.Make__app__edit(); this.wiki = Xoa_app_fxt.Make__wiki__edit(app); diff --git a/400_xowa/src/gplx/xowa/bldrs/css/Xoa_css_extractor.java b/400_xowa/src/gplx/xowa/bldrs/css/Xoa_css_extractor.java index f0e130407..0ac27eefd 100644 --- a/400_xowa/src/gplx/xowa/bldrs/css/Xoa_css_extractor.java +++ b/400_xowa/src/gplx/xowa/bldrs/css/Xoa_css_extractor.java @@ -73,7 +73,7 @@ public class Xoa_css_extractor { } private void Install_by_wmf(Xowe_wiki wiki, Io_url wiki_html_dir) { opt_download_css_common = wiki.Appe().Setup_mgr().Dump_mgr().Css_commons_download(); - if (!wiki.Appe().Usere().Cfg_mgr().Security_mgr().Web_access_enabled()) opt_download_css_common = false; // if !web_access_enabled, don't download + if (!gplx.core.ios.IoEngine_system.Web_access_enabled) opt_download_css_common = false; // if !web_access_enabled, don't download this.wiki_domain = wiki.Domain_bry(); mainpage_url = "https://" + wiki.Domain_str(); // NOTE: cannot reuse protocol_prefix b/c "//" needs to be added manually; protocol_prefix is used for logo and images which have form of "//domain/image.png"; changed to https; DATE:2015-02-17 if (page_fetcher == null) page_fetcher = new Xow_page_fetcher_wiki(); diff --git a/400_xowa/src/gplx/xowa/guis/Xog_html_mgr.java b/400_xowa/src/gplx/xowa/guis/Xog_html_mgr.java index b4d3a298e..87dac1049 100644 --- a/400_xowa/src/gplx/xowa/guis/Xog_html_mgr.java +++ b/400_xowa/src/gplx/xowa/guis/Xog_html_mgr.java @@ -18,23 +18,16 @@ along with this program. If not, see . package gplx.xowa.guis; import gplx.*; import gplx.xowa.*; import gplx.xowa.htmls.portal.*; public class Xog_html_mgr implements Gfo_invk { - public Xog_html_mgr(Xoae_app app) {this.app = app; portal_mgr = new Xoa_portal_mgr(app);} private Xoae_app app; + public Xog_html_mgr(Xoae_app app) {portal_mgr = new Xoa_portal_mgr(app);} public Xoa_portal_mgr Portal_mgr() {return portal_mgr;} private Xoa_portal_mgr portal_mgr; - public boolean Javascript_enabled() {return javascript_enabled;} private boolean javascript_enabled = true; - private void Javascript_enabled_(boolean v) { - javascript_enabled = v; - app.Gui_mgr().Browser_win().Tab_mgr().Tabs_javascript_enabled_(v); - } public String Auto_focus_id() {return auto_focus_id;} private String auto_focus_id = ""; public byte[] Css_xtn() {return css_xtn;} public void Css_xtn_(byte[] v) {css_xtn = v;} private byte[] css_xtn = Bry_.Empty; public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) { - if (ctx.Match(k, Invk_javascript_enabled)) return Yn.To_str(javascript_enabled); - else if (ctx.Match(k, Invk_javascript_enabled_)) Javascript_enabled_(m.ReadYn("v")); - else if (ctx.Match(k, Invk_auto_focus_id_)) auto_focus_id = m.ReadStr("v"); + if (ctx.Match(k, Invk_auto_focus_id_)) auto_focus_id = m.ReadStr("v"); else if (ctx.Match(k, Invk_css_xtn)) return css_xtn; else if (ctx.Match(k, Invk_css_xtn_)) css_xtn = m.ReadBry("v"); else if (ctx.Match(k, Invk_portal)) return portal_mgr; else return Gfo_invk_.Rv_unhandled; return this; - } private static final String Invk_javascript_enabled = "javascript_enabled", Invk_javascript_enabled_ = "javascript_enabled_", Invk_auto_focus_id_ = "auto_focus_id_", Invk_css_xtn = "css_xtn", Invk_css_xtn_ = "css_xtn_", Invk_portal = "portal"; + } private static final String Invk_auto_focus_id_ = "auto_focus_id_", Invk_css_xtn = "css_xtn", Invk_css_xtn_ = "css_xtn_", Invk_portal = "portal"; } diff --git a/400_xowa/src/gplx/xowa/guis/views/Xog_html_itm.java b/400_xowa/src/gplx/xowa/guis/views/Xog_html_itm.java index e0354f6e2..167e346f6 100644 --- a/400_xowa/src/gplx/xowa/guis/views/Xog_html_itm.java +++ b/400_xowa/src/gplx/xowa/guis/views/Xog_html_itm.java @@ -71,7 +71,7 @@ public class Xog_html_itm implements Xog_js_wkr, Gfo_invk, Gfo_evt_itm { } private void Html_src_(Xoae_page page, byte[] html_bry) { String html_str = String_.new_u8(html_bry); - if (owner_tab.Tab_mgr().Html_load_tid__url()) { + if (owner_tab.Tab_mgr().Page_load_mode_is_url()) { Io_url html_url = app.Usere().Fsys_mgr().App_temp_html_dir().GenSubFil_ary(owner_tab.Tab_key(), ".html"); try {html_box.Html_doc_html_load_by_url(html_url, html_str);} catch (Exception e) { diff --git a/400_xowa/src/gplx/xowa/guis/views/Xog_tab_itm.java b/400_xowa/src/gplx/xowa/guis/views/Xog_tab_itm.java index 053e3b5bb..c8a3d9011 100644 --- a/400_xowa/src/gplx/xowa/guis/views/Xog_tab_itm.java +++ b/400_xowa/src/gplx/xowa/guis/views/Xog_tab_itm.java @@ -37,7 +37,7 @@ public class Xog_tab_itm implements Gfo_invk { this.tab_box = tab_box; Xoae_app app = win.App(); Xoa_gui_mgr gui_mgr = win.Gui_mgr(); Gfui_kit kit = win.Kit(); Gfui_html html_box = kit.New_html("html_box" + Int_.To_str(uid), owner); - html_box.Html_js_enabled_(gui_mgr.Html_mgr().Javascript_enabled()); + html_box.Html_js_enabled_(tab_mgr.Javascript_enabled()); html_box.Html_invk_src_(win); html_itm.Html_box_(html_box); if (app.Mode().Tid_is_gui()) { // NOTE: only run for gui; will cause firefox_addon to fail; DATE:2014-05-03 @@ -175,7 +175,7 @@ public class Xog_tab_itm implements Gfo_invk { if (page.Ttl().Anch_bgn() != Bry_find_.Not_found) page.Url().Anch_bry_(page.Ttl().Anch_txt()); // NOTE: occurs when page is a redirect to an anchor; EX: w:Duck race -> Rubber duck#Races history_mgr.Add(page); Xog_tab_itm_read_mgr.Show_page(this, page, true); - if (app.Api_root().Usr().History().Enabled()) { + if (app.Usere().History_mgr().Enabled()) { app.Usere().History_mgr().Add(page); app.User().User_db_mgr().History_mgr().Update_async(app.Async_mgr(), ttl, url); } diff --git a/400_xowa/src/gplx/xowa/guis/views/Xog_tab_mgr.java b/400_xowa/src/gplx/xowa/guis/views/Xog_tab_mgr.java index 8f8fefcc0..511944211 100644 --- a/400_xowa/src/gplx/xowa/guis/views/Xog_tab_mgr.java +++ b/400_xowa/src/gplx/xowa/guis/views/Xog_tab_mgr.java @@ -31,19 +31,17 @@ public class Xog_tab_mgr implements Gfo_evt_itm { public Gfui_tab_mgr Tab_mgr() {return tab_mgr;} private Gfui_tab_mgr tab_mgr; public int Btns__min_chars() {return btns__min_chars;} private int btns__min_chars; public int Btns__max_chars() {return btns__max_chars;} private int btns__max_chars; - public byte Html_load_tid() {return html_load_tid;} private byte html_load_tid; - public boolean Html_load_tid__url() {return html_load_tid == Gxw_html_load_tid_.Tid_url;} + public boolean Javascript_enabled() {return javascript_enabled;} private boolean javascript_enabled = true; + private byte page_load_mode; + public boolean Page_load_mode_is_url() {return page_load_mode == Gxw_html_load_tid_.Tid_url;} public void Init_by_kit(Gfui_kit kit) { tab_mgr = kit.New_tab_mgr("xowa.tab_mgr", win.Win_box()); active_tab = Xog_tab_itm_.Null; tab_mgr.Btns_selected_color_(ColorAdp_.White); tab_mgr.Btns_unselected_color_(ColorAdp_.LightGray); Gfo_evt_mgr_.Sub_same_many(tab_mgr, this, Gfui_tab_mgr.Evt_tab_selected, Gfui_tab_mgr.Evt_tab_closed, Gfui_tab_mgr.Evt_tab_switched); - win.App().Cfg().Bind_many_app(this, Cfg__place_on_top, Cfg__height, Cfg__hide_if_one, Cfg__curved, Cfg__close_btn_visible, Cfg__unselected_close_btn_visible, Cfg__max_chars, Cfg__min_chars); - html_load_tid = win.App().Api_root().Gui().Browser().Html().Load_tid(); - Gfo_evt_mgr_.Sub_same_many(win.App().Api_root().Gui().Browser().Html(), this - , Xoapi_html_box.Evt_load_tid_changed - ); + win.App().Cfg().Bind_many_app(this, Cfg__javascript_enabled, Cfg__page_load_mode + , Cfg__place_on_top, Cfg__height, Cfg__hide_if_one, Cfg__curved, Cfg__close_btn_visible, Cfg__unselected_close_btn_visible, Cfg__max_chars, Cfg__min_chars); } public Xog_tab_itm Active_tab() {return active_tab;} private Xog_tab_itm active_tab; public Xog_tab_itm Active_tab_assert() { @@ -78,6 +76,7 @@ public class Xog_tab_mgr implements Gfo_evt_itm { Xog_tab_itm rv = new Xog_tab_itm(this, tab_data, wiki, page); Gfui_tab_itm tab_box = tab_mgr.Tabs_add(tab_data); rv.Make_html_box(tab_uid, tab_box, win, tab_mgr); + rv.Html_itm().Js_enabled_(javascript_enabled); tab_box.Subs_add(rv.Html_itm().Html_box()); tab_regy.Add(tab_key, rv); if ( focus @@ -96,6 +95,7 @@ public class Xog_tab_mgr implements Gfo_evt_itm { win.Page__navigate_by_url_bar(url); } public void Tabs_javascript_enabled_(boolean v) { + this.javascript_enabled = v; int len = tab_regy.Count(); for (int i = 0; i < len; i++) { Xog_tab_itm tab = Tabs_get_by_idx_or_warn(i); @@ -237,19 +237,25 @@ public class Xog_tab_mgr implements Gfo_evt_itm { else if (ctx.Match(k, Invk_tabs_select_fwd)) Tabs_select(Bool_.Y); else if (ctx.Match(k, Invk_tabs_switch_cur_bwd)) Tabs_move(Bool_.N); else if (ctx.Match(k, Invk_tabs_switch_cur_fwd)) Tabs_move(Bool_.Y); - else if (ctx.Match(k, Xoapi_html_box.Evt_load_tid_changed)) html_load_tid = m.ReadByte("v"); - else if (ctx.Match(k, Cfg__place_on_top)) tab_mgr.Btns_place_on_top_(m.ReadBool("v")); + else if (ctx.Match(k, Cfg__place_on_top)) tab_mgr.Btns_place_on_top_(m.ReadYn("v")); else if (ctx.Match(k, Cfg__height)) {btns__height = m.ReadInt("v"); tab_mgr.Btns_height_(btns__height);} - else if (ctx.Match(k, Cfg__hide_if_one)) {btns__hide_if_one = m.ReadBool("v"); Tabs_hide_if_one_chk(true);} - else if (ctx.Match(k, Cfg__curved)) tab_mgr.Btns_curved_(m.ReadBool("v")); - else if (ctx.Match(k, Cfg__close_btn_visible)) tab_mgr.Btns_close_visible_(m.ReadBool("v")); - else if (ctx.Match(k, Cfg__unselected_close_btn_visible)) tab_mgr.Btns_unselected_close_visible_(m.ReadBool("v")); + else if (ctx.Match(k, Cfg__hide_if_one)) {btns__hide_if_one = m.ReadYn("v"); Tabs_hide_if_one_chk(true);} + else if (ctx.Match(k, Cfg__curved)) tab_mgr.Btns_curved_(m.ReadYn("v")); + else if (ctx.Match(k, Cfg__close_btn_visible)) tab_mgr.Btns_close_visible_(m.ReadYn("v")); + else if (ctx.Match(k, Cfg__unselected_close_btn_visible)) tab_mgr.Btns_unselected_close_visible_(m.ReadYn("v")); else if (ctx.Match(k, Cfg__max_chars)) {btns__max_chars = m.ReadInt("v"); Btns_text_recalc();} else if (ctx.Match(k, Cfg__min_chars)) {btns__min_chars = m.ReadInt("v"); Btns_text_recalc();} + + else if (ctx.Match(k, Cfg__javascript_enabled)) Tabs_javascript_enabled_(m.ReadYnOrY("v")); // NOTE: must be "OrY" else broken cfg.db will break cfg_maint; DATE:2016-12-15 + else if (ctx.Match(k, Cfg__page_load_mode)) Page_load_mode_(m.ReadStr("v")); else return Gfo_invk_.Rv_unhandled; return this; } + private void Page_load_mode_(String v) { + page_load_mode = Gxw_html_load_tid_.Xto_tid(v); + // Gfo_evt_mgr_.Pub_val(this, Evt_load_tid_changed, load_tid); + } public static final String Invk_tabs_select_fwd = "tabs_select_fwd" , Invk_tabs_select_bwd = "tabs_select_bwd" @@ -268,6 +274,7 @@ public class Xog_tab_mgr implements Gfo_evt_itm { , Cfg__unselected_close_btn_visible = "xowa.gui.tabs.unselected_close_btn_visible" , Cfg__max_chars = "xowa.gui.tabs.max_chars" , Cfg__min_chars = "xowa.gui.tabs.min_chars" + , Cfg__javascript_enabled = "xowa.gui.browser.javascript_enabled" + , Cfg__page_load_mode = "xowa.gui.browser.page_load_mode" ; - } diff --git a/400_xowa/src/gplx/xowa/htmls/core/Xow_hdump_mgr__load.java b/400_xowa/src/gplx/xowa/htmls/core/Xow_hdump_mgr__load.java index 2709c51e7..d0972762f 100644 --- a/400_xowa/src/gplx/xowa/htmls/core/Xow_hdump_mgr__load.java +++ b/400_xowa/src/gplx/xowa/htmls/core/Xow_hdump_mgr__load.java @@ -30,7 +30,7 @@ public class Xow_hdump_mgr__load implements Gfo_invk { this.make_mgr = new Xoh_make_mgr(); } public boolean Read_preferred() {return read_preferred;} private boolean read_preferred = true; - public Xow_hdump_mode Html_mode() {return html_mode;} private Xow_hdump_mode html_mode; + public Xow_hdump_mode Html_mode() {return html_mode;} private Xow_hdump_mode html_mode = Xow_hdump_mode.Shown; public Xoh_make_mgr Make_mgr() {return make_mgr;} private final Xoh_make_mgr make_mgr; public void Init_by_wiki(Xow_wiki wiki) { gplx.xowa.addons.apps.cfgs.Xocfg_mgr cfg_mgr = wiki.App().Cfg(); diff --git a/400_xowa/src/gplx/xowa/htmls/core/Xow_hdump_mode.java b/400_xowa/src/gplx/xowa/htmls/core/Xow_hdump_mode.java index 07e12cc80..cfa31fb26 100644 --- a/400_xowa/src/gplx/xowa/htmls/core/Xow_hdump_mode.java +++ b/400_xowa/src/gplx/xowa/htmls/core/Xow_hdump_mode.java @@ -26,7 +26,7 @@ public class Xow_hdump_mode { } public boolean Tid_is_hdump_save() {return tid == Hdump_save.tid;} - private static final Xow_hdump_mode + public static final Xow_hdump_mode Shown = new Xow_hdump_mode(0, "shown" , "Shown") , Hdump_save = new Xow_hdump_mode(1, "hdump_save" , "Saved for HTML DB") , Hdump_load = new Xow_hdump_mode(2, "hdump_load" , "Loaded by HTML DB"); diff --git a/400_xowa/src/gplx/xowa/users/Xou_cfg.java b/400_xowa/src/gplx/xowa/users/Xou_cfg.java index 0340fdbd6..c15a39703 100644 --- a/400_xowa/src/gplx/xowa/users/Xou_cfg.java +++ b/400_xowa/src/gplx/xowa/users/Xou_cfg.java @@ -21,25 +21,21 @@ public class Xou_cfg implements Gfo_invk { this.user = user; pages_mgr = new Xouc_pages_mgr(this); startup_mgr = new Xouc_startup_mgr(this); setup_mgr = new Xouc_setup_mgr(user); layout_mgr = new Xoc_layout_mgr(user.Appe()); - security_mgr = new Xou_security_mgr(user.Appe()); } public Xoue_user User() {return user;} private Xoue_user user; public Xouc_pages_mgr Pages_mgr() {return pages_mgr;} private Xouc_pages_mgr pages_mgr; public Xouc_startup_mgr Startup_mgr() {return startup_mgr;} private Xouc_startup_mgr startup_mgr; public Xouc_setup_mgr Setup_mgr() {return setup_mgr;} private Xouc_setup_mgr setup_mgr; public Xoc_layout_mgr Layout_mgr() {return layout_mgr;} private Xoc_layout_mgr layout_mgr; - public Xou_security_mgr Security_mgr() {return security_mgr;} private Xou_security_mgr security_mgr; public Xou_log_mgr Log_mgr() {return log_mgr;} private final Xou_log_mgr log_mgr = new Xou_log_mgr(); public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) { if (ctx.Match(k, Invk_pages)) return pages_mgr; else if (ctx.Match(k, Invk_startup)) return startup_mgr; else if (ctx.Match(k, Invk_setup)) return setup_mgr; else if (ctx.Match(k, Invk_layout)) return layout_mgr; - else if (ctx.Match(k, Invk_security)) return security_mgr; else if (ctx.Match(k, Invk_log)) return log_mgr; return this; } public static final String - Invk_pages = "pages", Invk_startup = "startup", Invk_setup = "setup", Invk_layout = "layout", Invk_security = "security", Invk_log = "log" - ; + Invk_pages = "pages", Invk_startup = "startup", Invk_setup = "setup", Invk_layout = "layout", Invk_log = "log"; } diff --git a/400_xowa/src/gplx/xowa/users/Xou_security_mgr.java b/400_xowa/src/gplx/xowa/users/Xou_security_mgr.java deleted file mode 100644 index 6c38afbe1..000000000 --- a/400_xowa/src/gplx/xowa/users/Xou_security_mgr.java +++ /dev/null @@ -1,30 +0,0 @@ -/* -XOWA: the XOWA Offline Wiki Application -Copyright (C) 2012 gnosygnu@gmail.com - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU Affero General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Affero General Public License for more details. - -You should have received a copy of the GNU Affero General Public License -along with this program. If not, see . -*/ -package gplx.xowa.users; import gplx.*; import gplx.xowa.*; -public class Xou_security_mgr implements Gfo_invk { - public Xou_security_mgr(Xoae_app app) {this.app = app;} private Xoae_app app; - public boolean Web_access_enabled() {return app.Api_root().Net().Enabled();} - public void Web_access_enabled_(boolean v) {app.Api_root().Net().Enabled_(v);} - public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) { - if (ctx.Match(k, Invk_web_access_enabled)) return Yn.To_str(this.Web_access_enabled()); - else if (ctx.Match(k, Invk_web_access_enabled_)) Web_access_enabled_(m.ReadYn("v")); - return this; - } - public static final String - Invk_web_access_enabled = "web_access_enabled", Invk_web_access_enabled_ = "web_access_enabled_"; -} diff --git a/400_xowa/src/gplx/xowa/users/Xoue_user.java b/400_xowa/src/gplx/xowa/users/Xoue_user.java index 0a1fcbf38..9c470cea8 100644 --- a/400_xowa/src/gplx/xowa/users/Xoue_user.java +++ b/400_xowa/src/gplx/xowa/users/Xoue_user.java @@ -69,7 +69,7 @@ public class Xoue_user implements Xou_user, Gfo_evt_mgr_owner, Gfo_invk { public void App_term() { session_mgr.Window_mgr().Save_window(app.Gui_mgr().Browser_win().Win_box()); history_mgr.Save(app); - if (app.Gui_mgr().Browser_win().Tab_mgr().Html_load_tid__url()) + if (app.Gui_mgr().Browser_win().Tab_mgr().Page_load_mode_is_url()) Io_mgr.Instance.DeleteDirDeep(fsys_mgr.App_temp_html_dir()); app.File_mgr().Cache_mgr().Db_term(); } diff --git a/400_xowa/src/gplx/xowa/users/history/Xou_history_mgr.java b/400_xowa/src/gplx/xowa/users/history/Xou_history_mgr.java index 1593738b7..315b29571 100644 --- a/400_xowa/src/gplx/xowa/users/history/Xou_history_mgr.java +++ b/400_xowa/src/gplx/xowa/users/history/Xou_history_mgr.java @@ -23,13 +23,14 @@ public class Xou_history_mgr implements Gfo_invk { private Ordered_hash itms = Ordered_hash_.New_bry(); private boolean load_chk = false; private final Bry_bfr tmp_bfr = Bry_bfr_.New(); - private boolean log_all; + private boolean log_all = false; public Xou_history_mgr(Io_url history_fil) { this.history_fil = history_fil; } public void Init_by_app(Xoa_app app) { - app.Cfg().Bind_many_app(this, Cfg__log_all); + app.Cfg().Bind_many_app(this, Cfg__enabled, Cfg__log_all); } + public boolean Enabled() {return enabled;} private boolean enabled = true; public int Len() {return itms.Count();} public void Clear() {itms.Clear();} public Xou_history_itm Get_at(int i) {return (Xou_history_itm)itms.Get_at(i);} @@ -126,6 +127,7 @@ public class Xou_history_mgr implements Gfo_invk { else if (ctx.Match(k, Invk_html_itm_)) html_mgr.Html_itm().Fmt_(m.ReadBry("v")); else if (ctx.Match(k, Invk_current_itms_max_)) current_itms_max = m.ReadInt("v"); else if (ctx.Match(k, Invk_current_itms_reset_)) current_itms_reset = m.ReadInt("v"); + else if (ctx.Match(k, Cfg__enabled)) enabled = m.ReadYn("v"); else if (ctx.Match(k, Cfg__log_all)) log_all = m.ReadYn("v"); else return Gfo_invk_.Rv_unhandled; return this; @@ -133,7 +135,7 @@ public class Xou_history_mgr implements Gfo_invk { public static final String Invk_html_grp = "html_grp", Invk_html_grp_ = "html_grp_", Invk_html_itm = "html_itm", Invk_html_itm_ = "html_itm_", Invk_current_itms_max_ = "current_itms_max_", Invk_current_itms_reset_ = "current_itms_reset_"; public static final byte[] Ttl_name = Bry_.new_a7("XowaPageHistory"); public static final byte[] Ttl_full = Bry_.new_a7("Special:XowaPageHistory"); - private static final String Cfg__log_all = "xowa.app.page_history.log_all"; + private static final String Cfg__enabled = "xowa.app.page_history.enabled", Cfg__log_all = "xowa.app.page_history.log_all"; } class Xou_history_itm_srl { public static void Load(byte[] ary, Ordered_hash list) {