diff --git a/150_gfui/src/gplx/gfui/kits/core/Swt_kit.java b/150_gfui/src/gplx/gfui/kits/core/Swt_kit.java index cc9a02929..ef1fac8bd 100644 --- a/150_gfui/src/gplx/gfui/kits/core/Swt_kit.java +++ b/150_gfui/src/gplx/gfui/kits/core/Swt_kit.java @@ -234,6 +234,7 @@ public class Swt_kit implements Gfui_kit { public Gfui_dlg_msg New_dlg_msg(String msg) {return new Swt_dlg_msg(shell).Init_msg_(msg);} public ImageAdp New_img_load(Io_url url) { if (url == Io_url_.Empty) return ImageAdp_.Null; + if (!Io_mgr.Instance.Exists(url)) return ImageAdp_.Null; // must check if exists or fatal error; DATE:2017-06-02 Image img = new Image(display, url.Raw()); Rectangle rect = img.getBounds(); return new Swt_img(this, img, rect.width, rect.height).Url_(url); diff --git a/150_gfui/src/gplx/gfui/kits/swts/Swt_btn_no_border.java b/150_gfui/src/gplx/gfui/kits/swts/Swt_btn_no_border.java index 68dfc40e6..0c5e69740 100644 --- a/150_gfui/src/gplx/gfui/kits/swts/Swt_btn_no_border.java +++ b/150_gfui/src/gplx/gfui/kits/swts/Swt_btn_no_border.java @@ -69,7 +69,9 @@ public class Swt_btn_no_border implements GxwElem, Swt_control { // note can't use width, b/c search_exec_btn somehow goes from 16px to 20px if (v.Size().Height() != size.Height()) v = v.Resize(size.Width(), size.Height()); - box_btn.setImage(Copy_w_transparency((Image)v.Under())); + if ((v.Under() instanceof Image)) { // check needed else will fail when image doesn't exist; DATE:2017-06-03 + box_btn.setImage(Copy_w_transparency((Image)v.Under())); + } } private Image Copy_w_transparency(Image src) { // set transparency diff --git a/400_xowa/.classpath b/400_xowa/.classpath index e624119ef..51d3ee90a 100644 --- a/400_xowa/.classpath +++ b/400_xowa/.classpath @@ -1,6 +1,5 @@ - diff --git a/400_xowa/src/gplx/fsdb/meta/Fsm_mnt_mgr.java b/400_xowa/src/gplx/fsdb/meta/Fsm_mnt_mgr.java index f5c5bea7f..db8ddc572 100644 --- a/400_xowa/src/gplx/fsdb/meta/Fsm_mnt_mgr.java +++ b/400_xowa/src/gplx/fsdb/meta/Fsm_mnt_mgr.java @@ -35,6 +35,7 @@ public class Fsm_mnt_mgr implements Gfo_invk { } public int Mnts__len() {return mnt_ary_len;} public Fsm_mnt_itm Mnts__get_at(int i) {return mnt_ary[i];} + public Fsm_mnt_itm Mnts__get_main_or_null() {return mnt_ary == null ? null : mnt_ary[Mnt_idx_main];} // NOTE: can be null for embeddable parser; DATE:2017-06-06 public Fsm_mnt_itm Mnts__get_main() {return mnt_ary[Mnt_idx_main];} public Fsm_mnt_itm Mnts__get_insert() {return mnt_ary[insert_idx];} public void Mnts__get_insert_idx_(int v) {insert_idx = v;} private int insert_idx = Mnt_idx_user; public Fsm_bin_fil Bins__at(int mnt_id, int bin_db_id) {return mnt_ary[mnt_id].Bin_mgr().Dbs__get_by_or_null(bin_db_id);} diff --git a/400_xowa/src/gplx/xowa/Xoa_app_.java b/400_xowa/src/gplx/xowa/Xoa_app_.java index 7486a5628..b744bb84a 100644 --- a/400_xowa/src/gplx/xowa/Xoa_app_.java +++ b/400_xowa/src/gplx/xowa/Xoa_app_.java @@ -30,8 +30,8 @@ public class Xoa_app_ { } } public static final String Name = "xowa"; - public static final int Version_id = 527; - public static final String Version = "4.5.5.1705"; + public static final int Version_id = 528; + public static final String Version = "4.5.6.1706"; public static String Build_date = "2012-12-30 00:00:00"; public static String Build_date_fmt = "yyyy-MM-dd HH:mm:ss"; public static String Op_sys_str; diff --git a/400_xowa/src/gplx/xowa/files/Xow_file_mgr.java b/400_xowa/src/gplx/xowa/files/Xow_file_mgr.java index b678c3736..f860181ed 100644 --- a/400_xowa/src/gplx/xowa/files/Xow_file_mgr.java +++ b/400_xowa/src/gplx/xowa/files/Xow_file_mgr.java @@ -111,7 +111,8 @@ public class Xow_file_mgr implements Gfo_invk { } if (this.Version() == Version_1) return new Db_cfg_hash(""); this.Init_file_mgr_by_load(wiki); // make sure fsdb is init'd - return fsdb_mgr.Mnt_mgr().Mnts__get_main().Cfg_mgr().Grps_get_or_load(grp); + Fsm_mnt_itm mnt_itm = fsdb_mgr.Mnt_mgr().Mnts__get_main_or_null(); // NOTE: can be null for embeddable parser; DATE:2017-06-06 + return mnt_itm == null ? new Db_cfg_hash("") : mnt_itm.Cfg_mgr().Grps_get_or_load(grp); } public Xof_fsdb_mgr Fsdb_mgr() {return fsdb_mgr;} private Xof_fsdb_mgr fsdb_mgr = new Xof_fsdb_mgr__sql(); public void Clear_for_tests() { // NOTE: must clear else fsdb_mode will be cached for multiple runs; will generally be v1, but some tests will set to v2; DATE:2015-12-22 @@ -146,6 +147,8 @@ public class Xow_file_mgr implements Gfo_invk { } public void Init_file_mgr_by_load(Xow_wiki wiki) { if (db_core != null) return; // already init'd + if (wiki.Data__core_mgr() == null) return; // NOTE: can be null for embeddable parser; DATE:2017-06-06 + this.db_core = Fsdb_db_mgr_.new_detect(wiki, wiki.Fsys_mgr().Root_dir(), wiki.Fsys_mgr().File_dir()); if ( db_core == null // "-file-core.xowa" not found && !wiki.Data__core_mgr().Props().Layout_file().Tid_is_all() // DATE:2015-08-10 diff --git a/400_xowa/src/gplx/xowa/guis/bnds/Xog_bnd_mgr.java b/400_xowa/src/gplx/xowa/guis/bnds/Xog_bnd_mgr.java index eef7b1559..d0bd7b15a 100644 --- a/400_xowa/src/gplx/xowa/guis/bnds/Xog_bnd_mgr.java +++ b/400_xowa/src/gplx/xowa/guis/bnds/Xog_bnd_mgr.java @@ -388,7 +388,12 @@ public class Xog_bnd_mgr implements Gfo_invk { win.Show(app, app.Gui_mgr().Kit(), app.Gui_mgr().Browser_win().Win_box(), args[0], args[1], args[2]); } else { - String[] flds = gplx.xowa.addons.apps.cfgs.enums.Xoitm_gui_binding.To_ary(m.ReadStr("v")); + String val = m.ReadStr("v"); + if (String_.Len_eq_0(val)) { // need to check, or may fail when running newer codebase against old cfgs; DATE:2017-06-02 + Gfo_usr_dlg_.Instance.Warn_many("", "", "binding does not have val; key=~{0}", k); + return this; + } + String[] flds = gplx.xowa.addons.apps.cfgs.enums.Xoitm_gui_binding.To_ary(val); int box = Xog_bnd_box_.Xto_sys_int(flds[0]); String key = String_.Replace(k, "xowa.gui.shortcuts.", ""); Xog_bnd_itm bnd = app.Gui_mgr().Bnd_mgr().Get_or_null(key);