1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2026-03-02 03:49:30 +00:00
This commit is contained in:
gnosygnu
2014-07-20 23:42:54 -04:00
parent bc10cd76b6
commit e882217c62
408 changed files with 3648 additions and 2687 deletions

View File

@@ -28,7 +28,7 @@ public class Xog_html_mgr implements GfoInvkAble {
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.X_to_str(javascript_enabled);
if (ctx.Match(k, Invk_javascript_enabled)) return Yn.Xto_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");
else if (ctx.Match(k, Invk_css_xtn)) return css_xtn;

View File

@@ -35,15 +35,15 @@ public class Xog_bnd_box_ {
return ary;
} private static Xog_bnd_box[] ary;
private static void ary_init(Xog_bnd_box[] ary, int tid, String key) {ary[tid] = new Xog_bnd_box(tid, key);}
public static int[] X_to_sys_int_ary(String s) {
public static int[] Xto_sys_int_ary(String s) {
String[] ary = String_.Split(s, "|");
int len = ary.length;
int[] rv = new int[len];
for (int i = 0; i < len; i++)
rv[i] = X_to_sys_int(ary[i]);
rv[i] = Xto_sys_int(ary[i]);
return rv;
}
public static int X_to_sys_int(String s) {
public static int Xto_sys_int(String s) {
if (String_.Eq(s, Key_browser)) return Tid_browser;
else if (String_.Eq(s, Key_browser_url)) return Tid_browser_url;
else if (String_.Eq(s, Key_browser_search)) return Tid_browser_search;
@@ -53,7 +53,7 @@ public class Xog_bnd_box_ {
else if (String_.Eq(s, Key_browser_info)) return Tid_browser_info;
else throw Err_.unhandled(s);
}
public static String X_to_sys_str(int v) {
public static String Xto_sys_str(int v) {
switch (v) {
case Tid_browser: return Key_browser;
case Tid_browser_url: return Key_browser_url;
@@ -65,7 +65,7 @@ public class Xog_bnd_box_ {
default: throw Err_.unhandled(v);
}
}
public static String X_to_gui_str(int v) {
public static String Xto_gui_str(int v) {
switch (v) {
case Tid_browser: return Gui_browser;
case Tid_browser_url: return Gui_browser_url;
@@ -77,7 +77,7 @@ public class Xog_bnd_box_ {
default: throw Err_.unhandled(v);
}
}
public static int X_by_gui_str(String s) {
public static int Xby_gui_str(String s) {
if (String_.Eq(s, Gui_browser)) return Tid_browser;
else if (String_.Eq(s, Gui_browser_url)) return Tid_browser_url;
else if (String_.Eq(s, Gui_browser_search)) return Tid_browser_search;

View File

@@ -55,8 +55,8 @@ public class Xog_bnd_mgr_srl extends Dsv_wkr_base {
if (uids == null) Init();
Xog_bnd_itm bnd = (Xog_bnd_itm)uids.Fetch(Int_obj_val.new_(uid));
int box = Xog_bnd_box_.X_by_gui_str(String_.new_utf8_(box_bry));
IptArg ipt = IptArg_.parse_or_none_(bnd_parser.X_to_gfui(String_.new_utf8_(ipt_bry)));
int box = Xog_bnd_box_.Xby_gui_str(String_.new_utf8_(box_bry));
IptArg ipt = IptArg_.parse_or_none_(bnd_parser.Xto_gfui(String_.new_utf8_(ipt_bry)));
bnd_mgr.Del(bnd, ipt);
Xog_bnd_mgr_srl.Update_cfg(app, bnd, box, ipt);
uid = -1; box_bry = ipt_bry = null;

View File

@@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.gui.cmds; import gplx.*; import gplx.xowa.*; import gplx.xowa.gui.*;
import gplx.xowa.apis.xowa.*;
import gplx.xowa.apis.xowa.*; import gplx.xowa.langs.msgs.*;
public class Xog_cmd_mgr {
public void Init_by_kit(Xoa_app app) {
invk_mgr.Ctor(app, this);
@@ -30,7 +30,7 @@ public class Xog_cmd_mgr {
Xol_lang lang = app.User().Lang();
for (int i = 0; i < len; i++) {
Xog_cmd_ctg itm = ary[i];
itm.Name_(Pf_msg_mgr.Get_msg_val_gui_or_null(lang, Xog_cmd_itm_.Msg_pre_ctg, itm.Key_bry(), Xog_cmd_itm_.Msg_suf_name));
itm.Name_(Xol_msg_mgr_.Get_msg_val_gui_or_null(lang, Xog_cmd_itm_.Msg_pre_ctg, itm.Key_bry(), Xog_cmd_itm_.Msg_suf_name));
}
}
private void Load_cmd_msgs(Xoa_app app) {
@@ -38,8 +38,8 @@ public class Xog_cmd_mgr {
Xol_lang lang = app.User().Lang();
for (int i = 0; i < len; i++) {
Xog_cmd_itm itm = this.Get_at(i);
itm.Name_(Pf_msg_mgr.Get_msg_val_gui_or_null(lang, Xog_cmd_itm_.Msg_pre_api, itm.Key_bry(), Xog_cmd_itm_.Msg_suf_name));
itm.Tip_(Pf_msg_mgr.Get_msg_val_gui_or_null(lang, Xog_cmd_itm_.Msg_pre_api, itm.Key_bry(), Xog_cmd_itm_.Msg_suf_tip));
itm.Name_(Xol_msg_mgr_.Get_msg_val_gui_or_null(lang, Xog_cmd_itm_.Msg_pre_api, itm.Key_bry(), Xog_cmd_itm_.Msg_suf_name));
itm.Tip_(Xol_msg_mgr_.Get_msg_val_gui_or_null(lang, Xog_cmd_itm_.Msg_pre_api, itm.Key_bry(), Xog_cmd_itm_.Msg_suf_tip));
}
}
public int Len() {return Xog_cmd_itm_.Regy_len();}

View File

@@ -100,7 +100,7 @@ public class Xog_mnu_grp extends Xog_mnu_base {
}
@Override public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_build)) this.Build();
else if (ctx.Match(k, Invk_enabled)) return Yn.X_to_str(enabled);
else if (ctx.Match(k, Invk_enabled)) return Yn.Xto_str(enabled);
else if (ctx.Match(k, Invk_enabled_)) this.Enabled_(m.ReadYn("v"));
else if (ctx.Match(k, Invk_source)) return source;
else if (ctx.Match(k, Invk_source_)) this.Source_(app.Gfs_mgr(), m.ReadStr("v"));

View File

@@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.gui.menus.dom; import gplx.*; import gplx.xowa.*; import gplx.xowa.gui.*; import gplx.xowa.gui.menus.*;
import gplx.gfui.*; import gplx.xowa.gui.cmds.*;
import gplx.gfui.*; import gplx.xowa.gui.cmds.*; import gplx.xowa.langs.msgs.*;
public class Xog_mnu_itm extends Xog_mnu_base {
private Xoa_gui_mgr gui_mgr;
public Xog_mnu_itm(Xoa_gui_mgr gui_mgr, String key) {
@@ -45,9 +45,9 @@ public class Xog_mnu_itm extends Xog_mnu_base {
return this;
}
public void Init_by_lang(Xol_lang lang) {
this.name = Pf_msg_mgr.Get_msg_val_gui_or(lang, Xog_cmd_itm_.Msg_pre_api, key_bry, Xog_cmd_itm_.Msg_suf_name, name); // NOTE: custom cmds must use Get_val_or, not Get_val_or_null; DATE:2014-05-30
this.shortcut = Pf_msg_mgr.Get_msg_val_gui_or(lang, Xog_cmd_itm_.Msg_pre_api, key_bry, Xog_cmd_itm_.Msg_suf_letter, shortcut);
this.img_nest = Img_nest_of(Pf_msg_mgr.Get_msg_val_gui_or(lang, Xog_cmd_itm_.Msg_pre_api, key_bry, Xog_cmd_itm_.Msg_suf_image, ""));
this.name = Xol_msg_mgr_.Get_msg_val_gui_or(lang, Xog_cmd_itm_.Msg_pre_api, key_bry, Xog_cmd_itm_.Msg_suf_name, name); // NOTE: custom cmds must use Get_val_or, not Get_val_or_null; DATE:2014-05-30
this.shortcut = Xol_msg_mgr_.Get_msg_val_gui_or(lang, Xog_cmd_itm_.Msg_pre_api, key_bry, Xog_cmd_itm_.Msg_suf_letter, shortcut);
this.img_nest = Img_nest_of(Xol_msg_mgr_.Get_msg_val_gui_or(lang, Xog_cmd_itm_.Msg_pre_api, key_bry, Xog_cmd_itm_.Msg_suf_image, ""));
this.gui_text = Gui_text_calc(name, shortcut);
}
public void Init_by_custom(String name, String shortcut, String img_nest_str) {

View File

@@ -67,15 +67,15 @@ public class Xog_url_wkr {
return Rslt_handled;
}
private Xoa_url Exec_url_file(Xoa_app app, Xoa_page page, Xog_win_itm win, byte[] href_bry) { // EX: file:///xowa/A.png
href_bry = app.Url_converter_url().Decode(href_bry);
href_bry = app.Encoder_mgr().Url().Decode(href_bry);
Io_url href_url = Io_url_.http_any_(String_.new_utf8_(href_bry), Op_sys.Cur().Tid_is_wnt());
gplx.gfui.Gfui_html html_box = win.Active_html_box();
String xowa_ttl = page.Wiki().Gui_mgr().Cfg_browser().Content_editable()
? html_box.Html_active_atr_get_str(gplx.xowa.html.Xoh_html_tag.Nde_xowa_title_str, null)
: Xoh_dom_.Title_by_href(app.Url_converter_comma(), app.Utl_bry_bfr_mkr().Get_b512().Mkr_rls(), href_bry, Bry_.new_utf8_(html_box.Html_doc_html()));
: Xoh_dom_.Title_by_href(app.Encoder_mgr().Comma(), app.Utl_bry_bfr_mkr().Get_b512().Mkr_rls(), href_bry, Bry_.new_utf8_(html_box.Html_doc_html()));
if (!Io_mgr._.ExistsFil(href_url)) {
Xof_xfer_itm xfer_itm = new Xof_xfer_itm();
byte[] title = app.Url_converter_url().Decode(Bry_.new_utf8_(xowa_ttl));
byte[] title = app.Encoder_mgr().Url().Decode(Bry_.new_utf8_(xowa_ttl));
xfer_itm.Atrs_by_lnki(Xop_lnki_type.Id_none, -1, -1, -1, Xof_doc_thumb.Null, Xof_doc_page.Null).Atrs_by_ttl(title, Bry_.Empty);
page.Wiki().File_mgr().Find_meta(xfer_itm);
page.File_queue().Clear();

View File

@@ -143,7 +143,7 @@ public class Xog_html_itm implements GfoInvkAble, GfoEvObj {
private boolean Scroll_page_by_id(String id) {
return (id == null)
? false
: html_box.Html_elem_scroll_into_view(app.Url_converter_id().Encode_str(id));
: html_box.Html_elem_scroll_into_view(app.Encoder_mgr().Id().Encode_str(id));
}
public void Js_enabled_(boolean v) {
html_box.Html_js_enabled_(v);
@@ -197,7 +197,7 @@ class Xog_html_itm__href_extractor {
;
public static String Html_extract_text(String site, String page, String text_str) {
byte[] text_bry = Bry_.new_utf8_(text_str);
int text_tid = Byte_ascii.X_to_digit(text_bry[0]);
int text_tid = Byte_ascii.Xto_digit(text_bry[0]);
int text_len = text_bry.length;
switch (text_tid) {
case Text_tid_none: return "";

View File

@@ -37,7 +37,7 @@ public class Xog_html_js_cbk implements GfoInvkAble {
String[] rv = new String[len + 1];
rv[0] = Invk_xowa_exec_test_as_array;
for (int i = 0; i < len; i++)
rv[i + 1] = Object_.XtoStr_OrEmpty(m.ReadValAt(i));
rv[i + 1] = Object_.Xto_str_strict_or_empty(m.ReadValAt(i));
return rv;
}
private String Parse_to_html(GfoMsg m) {
@@ -75,7 +75,7 @@ public class Xog_html_js_cbk implements GfoInvkAble {
}
private String Popups_get_html(GfoMsg m) {
try {
int popups_id = Int_.X_by_double_(Double_.cast_(m.Args_getAt(0).Val()));
int popups_id = Int_.Xby_double_(Double_.cast_(m.Args_getAt(0).Val()));
byte[] href_bry = m.Args_getAt(1).Val_to_bry();
return html_itm.Owner_tab().Page().Wiki().Html_mgr().Module_mgr().Popup_mgr().Show_init(href_bry, popups_id);
} catch (Exception e) {Err_.Noop(e); return null;}
@@ -164,7 +164,7 @@ public class Xog_html_js_cbk implements GfoInvkAble {
rv = app.Gfs_mgr().Run_str(m.Args_getAt(0).Val_to_str_or_empty());
}
catch (Exception e) {Err_.Noop(e); return null;}
return Object_.XtoStr_OrEmpty(rv);
return Object_.Xto_str_strict_or_empty(rv);
}
private static final byte[] Wikidata_get_label_xowa_ui_lang = Bry_.new_ascii_("xowa_ui_lang"), Wikidata_get_label_xowa_title = Bry_.new_ascii_("xowa_title");
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {

View File

@@ -0,0 +1,106 @@
/*
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 <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.gui.views; import gplx.*; import gplx.xowa.*; import gplx.xowa.gui.*;
class Xog_launcher_tabs {
public void Launch(Xog_win_itm win) {
Xoa_app app = win.App(); Gfo_log_bfr log_bfr = app.Log_bfr();
log_bfr.Add("app.launch.page.bgn");
Io_fil_marker fil_marker = new Io_fil_marker().Usr_dlg_(app.Usr_dlg()).Url_(app.User().Fsys_mgr().App_temp_dir().GenSubFil_nest("session", "launch.tabs.marker"));
boolean tabs_restored = false;
Xow_wiki home_wiki = app.User().Wiki();
if (fil_marker.Bgn())
tabs_restored = Restore_tabs(app, home_wiki, win, fil_marker);
if (!tabs_restored)
Restore_tab_failover(app, home_wiki, win);
// tab.Html_itm().Html_box().Focus(); // focus the html_box so wheel scroll works; DATE:2013-02-08
app.Gui_wtr().Prog_none("", "", "");
log_bfr.Add("app.launch.page.end");
app.Gui_wtr().Log_wtr().Log_msg_to_session_direct(log_bfr.Xto_str());
}
private boolean Restore_tabs(Xoa_app app, Xow_wiki home_wiki, Xog_win_itm win, Io_fil_marker fil_marker) {
Xog_tab_itm tab = win.Active_tab();
String[] launch_urls = app.Api_root().App().Startup().Tabs().Calc_startup_strs();
try {
int launch_urls_len = launch_urls.length;
for (int i = 0; i < launch_urls_len; ++i) {
String launch_url = launch_urls[i];
tab = i == 0 ? win.Active_tab() : win.Tab_mgr().Tabs_new_init();
Launch_tab(tab, win, home_wiki, launch_url);
}
fil_marker.End();
return true;
}
catch (Exception e) {
app.Usr_dlg().Warn_many("", "", "failed to launch urls: urls=~{0} err=~{1}", String_.AryXtoStr(launch_urls), Err_.Message_gplx(e));
Restore_tab_failover(app, home_wiki, win);
return false;
}
}
private void Restore_tab_failover(Xoa_app app, Xow_wiki home_wiki, Xog_win_itm win) {
Launch_tab(win.Active_tab(), win, home_wiki, gplx.xowa.users.Xouc_pages_mgr.Page_xowa);
}
private void Launch_tab(Xog_tab_itm tab, Xog_win_itm win, Xow_wiki home_wiki, String launch_str) {
Xoa_page launch_page = Launch_page(win, home_wiki, launch_str);
if (launch_page.Missing()) return;
Xog_tab_itm_read_mgr.Show_page(tab, launch_page, false);
tab.History_mgr().Add(launch_page);
}
private Xoa_page Launch_page(Xog_win_itm win, Xow_wiki home_wiki, String launch_str) {
Xoa_url launch_url = Xoa_url_parser.Parse_from_url_bar(win.App(), home_wiki, launch_str);
Xow_wiki launch_wiki = launch_url.Wiki();
Xoa_ttl launch_ttl = Xoa_ttl.parse_(launch_wiki, launch_url.Page_bry());
Xoa_page rv = launch_wiki.GetPageByTtl(launch_url, launch_ttl).Url_(launch_url); // FUTURE: .Url_() should not be called (needed for anchor); EX: en.wikipedia.org/Earth#Biosphere
win.Active_page_(rv); // set to blank page
return rv;
}
public static final Xog_launcher_tabs _ = new Xog_launcher_tabs(); Xog_launcher_tabs() {}
}
class Io_fil_marker {
private Io_url url;
private Gfo_usr_dlg usr_dlg = Gfo_usr_dlg_._;
public Io_fil_marker Usr_dlg_(Gfo_usr_dlg v) {this.usr_dlg = v; return this;}
public Io_fil_marker Url_(Io_url url) {this.url = url; return this;}
public boolean Bgn() {
boolean rv = false;
synchronized (this) {
try {
rv = !Io_mgr._.ExistsFil(url); // exists = fail; !exists = pass;
if (rv) // pass: file does not exist;
Io_mgr._.SaveFilStr(url, ""); // create
else // file exists from previous run
Io_mgr._.DeleteFil(url); // delete
}
catch (Exception exc) { // something unexpected happened
usr_dlg.Warn_many("", "", "marker.bgn failed: url=~{0} err=~{1}", url.Raw(), Err_.Message_gplx(exc));
Io_mgr._.DeleteFil(url); // try to delete it again
}
}
return rv;
}
public void End() {
synchronized (this) {
try {
Io_mgr._.DeleteFil(url); // delete
}
catch (Exception exc) {
usr_dlg.Warn_many("", "", "marker.end failed: url=~{0} err=~{1}", url.Raw(), Err_.Message_gplx(exc));
Io_mgr._.DeleteFil(url); // try to delete it again
}
}
}
}

View File

@@ -199,9 +199,11 @@ public class Xog_tab_itm implements GfoInvkAble {
catch (Exception e) {usr_dlg.Warn_many("", "", "page.thread.cmds: page=~{0} err=~{1}", page_ttl_str, Err_.Message_gplx_brief(e));}
}
try {
Xop_lnki_logger_redlinks_wkr redlinks_wkr = new Xop_lnki_logger_redlinks_wkr(win_itm, page);
ThreadAdp_.invk_(redlinks_wkr, gplx.xowa.parsers.lnkis.redlinks.Xop_lnki_logger_redlinks_wkr.Invk_run).Start();
usr_dlg.Prog_none("", "imgs.done", "");
if (page.Tab() != null) { // needed b/c Preview has page.Tab of null which causes null_ref error in redlinks
Xop_lnki_logger_redlinks_wkr redlinks_wkr = new Xop_lnki_logger_redlinks_wkr(win_itm, page);
ThreadAdp_.invk_(redlinks_wkr, gplx.xowa.parsers.lnkis.redlinks.Xop_lnki_logger_redlinks_wkr.Invk_run).Start();
usr_dlg.Prog_none("", "imgs.done", "");
}
} catch (Exception e) {usr_dlg.Warn_many("", "", "page.thread.redlinks: page=~{0} err=~{1}", page_ttl_str, Err_.Message_gplx_brief(e));}
try {app.File_mgr().Cache_mgr().Compress_check();}
catch (Exception e) {usr_dlg.Warn_many("", "", "page.thread.cache: page=~{0} err=~{1}", page_ttl_str, Err_.Message_gplx_brief(e));}

View File

@@ -84,28 +84,6 @@ public class Xog_tab_itm_read_mgr {
win.Win_box().Text_(err_msg);
}
public static void Launch(Xog_win_itm win) {
Xoa_app app = win.App();
Gfo_log_bfr log_bfr = app.Log_bfr();
log_bfr.Add("app.launch.page.bgn");
Xow_wiki home_wiki = app.User().Wiki();
Xoa_page launch_page = Xog_tab_itm_read_mgr.Launch_page(win, home_wiki, app.Sys_cfg().Launch_url());
if (launch_page.Missing())
launch_page = Xog_tab_itm_read_mgr.Launch_page(win, home_wiki, Xoa_sys_cfg.Launch_url_dflt);
log_bfr.Add("app.launch.page.show");
Xog_tab_itm tab = win.Active_tab();
Xog_tab_itm_read_mgr.Show_page(tab, launch_page, false);
tab.History_mgr().Add(launch_page);
tab.Html_itm().Html_box().Focus(); //this.Html_box().Html_doc_body_focus(); // focus the html_box so wheel scroll works; DATE:2013-02-08
app.Gui_wtr().Prog_none("", "", "");
log_bfr.Add("app.launch.page.end");
app.Gui_wtr().Log_wtr().Log_msg_to_session_direct(log_bfr.Xto_str());
}
private static Xoa_page Launch_page(Xog_win_itm win, Xow_wiki home_wiki, String launch_str) {
Xoa_url launch_url = Xoa_url_parser.Parse_url(win.App(), home_wiki, launch_str);
Xow_wiki launch_wiki = launch_url.Wiki();
Xoa_ttl launch_ttl = Xoa_ttl.parse_(launch_wiki, launch_url.Page_bry());
Xoa_page rv = launch_wiki.GetPageByTtl(launch_url, launch_ttl).Url_(launch_url); // FUTURE: .Url_() should not be called (needed for anchor); EX: en.wikipedia.org/Earth#Biosphere
win.Active_page_(rv); // set to blank page
return rv;
Xog_launcher_tabs._.Launch(win);
}
}

View File

@@ -70,9 +70,7 @@ public class Xog_tab_mgr implements GfoEvObj {
}
}
public int Tabs_len() {return tab_regy.Count();}
public void Tabs_new_init() {
this.Tabs_new(true, true);
}
public Xog_tab_itm Tabs_new_init() {return this.Tabs_new(true, true);}
public Xog_tab_itm Tabs_get_at(int i) {return (Xog_tab_itm)tab_regy.FetchAt(i);}
public Xog_tab_itm Tabs_new_dflt() {return Tabs_new_dflt(false);}
public Xog_tab_itm Tabs_new_dflt(boolean focus) {return Tabs_new_dflt(false, focus);}

View File

@@ -301,6 +301,6 @@ public class Xog_win_itm implements GfoInvkAble, GfoEvObj {
if ( !Env_.Mode_testing()
&& app.Mode() == Xoa_app_.Mode_gui) // only run for gui; do not run for tcp/http server; DATE:2014-05-03
app.Usr_dlg().Ui_wkr_(new Gfo_usr_dlg_ui_swt(kit, prog_box, info_box, info_box, app.Gui_mgr().Win_cfg()));
app.Usr_dlg().Ui_wkr_(new Gfo_usr_dlg_ui_swt(kit, prog_box, info_box, info_box, app.Api_root().Gui().Browser().Info()));
}
}

View File

@@ -22,7 +22,7 @@ public class Xog_win_itm__prog_href_mgr {
private static Bry_bfr tmp_bfr = Bry_bfr.reset_(512);
public static void Print(Xog_win_itm win) { // PURPOSE: print href in prog box when in content editable mode
String href = win.Active_html_box().Html_active_atr_get_str(Gfui_html.Atr_href, "");// get selected href from html_box
href = win.App().Url_converter_href().Decode_str(href); // remove url encodings
href = win.App().Encoder_mgr().Href().Decode_str(href); // remove url encodings
if (!String_.Eq(href, win.Prog_box().Text()))
win.Usr_dlg().Prog_direct(href);
}