mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-10-27 20:34:16 +00:00
Cfg: Convert 'App - Content Apps'
This commit is contained in:
parent
ad5d608ba5
commit
5fbf168fb7
@ -132,6 +132,24 @@ public class Process_adp implements Gfo_invk, Rls_able {
|
|||||||
: exe_args
|
: exe_args
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Exe_and_args_(String exe, String args) {
|
||||||
|
Io_url exe_url = Bry_fmtr_eval_mgr_.Eval_url(this.cmd_url_eval, Bry_.new_u8(exe));
|
||||||
|
this.Exe_url_(exe_url).Tmp_dir_(exe_url.OwnerDir());
|
||||||
|
this.Args_fmtr().Fmt_(args);
|
||||||
|
}
|
||||||
|
public static Process_adp New(Gfo_usr_dlg usr_dlg, Bry_fmtr_eval_mgr eval_mgr, byte run_mode, int timeout, String exe, String args, String... args_keys) {
|
||||||
|
Process_adp rv = new Process_adp();
|
||||||
|
rv.Prog_dlg_(usr_dlg);
|
||||||
|
rv.Run_mode_(run_mode);
|
||||||
|
rv.Thread_timeout_seconds_(timeout);
|
||||||
|
|
||||||
|
rv.cmd_url_eval = eval_mgr;
|
||||||
|
Io_url exe_url = Bry_fmtr_eval_mgr_.Eval_url(eval_mgr, Bry_.new_u8(exe));
|
||||||
|
rv.Exe_url_(exe_url).Tmp_dir_(exe_url.OwnerDir());
|
||||||
|
rv.Args_fmtr().Fmt_(args).Keys_(args_keys);
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
private Bry_fmtr notify_fmtr = Bry_fmtr.new_("", "process_exe_name", "process_exe_args", "process_seconds"); Bry_bfr notify_bfr = Bry_bfr_.Reset(255);
|
private Bry_fmtr notify_fmtr = Bry_fmtr.new_("", "process_exe_name", "process_exe_args", "process_seconds"); Bry_bfr notify_bfr = Bry_bfr_.Reset(255);
|
||||||
public Process UnderProcess() {return process;} Process process;
|
public Process UnderProcess() {return process;} Process process;
|
||||||
public void Rls() {if (process != null) process.destroy();}
|
public void Rls() {if (process != null) process.destroy();}
|
||||||
|
@ -148,7 +148,7 @@ public class Xoae_app implements Xoa_app, Gfo_invk {
|
|||||||
stage = Xoa_stage_.Tid_init;
|
stage = Xoa_stage_.Tid_init;
|
||||||
user.Init_by_app(this);
|
user.Init_by_app(this);
|
||||||
cfg.Init_by_app(this);
|
cfg.Init_by_app(this);
|
||||||
prog_mgr.Init_by_app(url_cmd_eval);
|
prog_mgr.Init_by_app(this, url_cmd_eval);
|
||||||
xtn_mgr.Init_by_app(this);
|
xtn_mgr.Init_by_app(this);
|
||||||
gui_mgr.Init_by_app();
|
gui_mgr.Init_by_app();
|
||||||
html__css_installer.Init_by_app(this);
|
html__css_installer.Init_by_app(this);
|
||||||
|
@ -108,4 +108,15 @@ public class Xocfg_mgr {
|
|||||||
cache_mgr.Del(ctx, key);
|
cache_mgr.Del(ctx, key);
|
||||||
}
|
}
|
||||||
public static String Ctx__app = "app";
|
public static String Ctx__app = "app";
|
||||||
|
public static String[] Parse_io_cmd(String raw) {
|
||||||
|
String[] rv = new String[2];
|
||||||
|
rv[0] = "";
|
||||||
|
rv[1] = "";
|
||||||
|
int pos = String_.FindFwd(raw, "\n");
|
||||||
|
if (pos != Bry_find_.Not_found) {
|
||||||
|
rv[0] = String_.Mid(raw, 0, pos);
|
||||||
|
rv[1] = String_.Mid(raw, pos + 1);
|
||||||
|
}
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,7 @@ public class Xocfg_dflt_mgr {
|
|||||||
}
|
}
|
||||||
public void Init_by_app(Xoa_app app) {
|
public void Init_by_app(Xoa_app app) {
|
||||||
Xocfg_dflt_loader loader = new Xocfg_dflt_loader();
|
Xocfg_dflt_loader loader = new Xocfg_dflt_loader();
|
||||||
loader.Load_by_file(this, app.Fsys_mgr().Bin_plat_dir().GenSubFil_nest("cfg", "xo.cfg.dflt.json"));
|
loader.Load_by_file(this, app.Fsys_mgr().Bin_plat_dir().GenSubFil_nest("xowa", "cfg", "xo.cfg.dflt.json"));
|
||||||
}
|
}
|
||||||
public String Get_or(String key, String or) {
|
public String Get_or(String key, String or) {
|
||||||
Xocfg_dflt_itm itm = (Xocfg_dflt_itm)hash.Get_by(key);
|
Xocfg_dflt_itm itm = (Xocfg_dflt_itm)hash.Get_by(key);
|
||||||
|
@ -46,16 +46,14 @@ public class Xoedit_itm_html {
|
|||||||
bfr.Add_str_u8_fmt("</select>\n");
|
bfr.Add_str_u8_fmt("</select>\n");
|
||||||
break;
|
break;
|
||||||
case Xoitm_gui_tid.Tid__io_cmd:
|
case Xoitm_gui_tid.Tid__io_cmd:
|
||||||
String[] fields = String_.Split(data, "\n");
|
String[] lines = Xocfg_mgr.Parse_io_cmd(data);
|
||||||
String exe = fields.length > 0 && !String_.Eq(fields[0], "") ? fields[0] : "";
|
|
||||||
String arg = fields.length > 1 ? fields[1] : "";
|
|
||||||
bfr.Add_str_u8_fmt
|
bfr.Add_str_u8_fmt
|
||||||
( "<input class=\"xocfg__io_cmd__exe__txt\" id=\"{1}-exe\" data-xocfg-key=\"{1}\" data-xocfg-gui=\"{0}-exe\" accesskey=\"d\" type=\"text\" value=\"{2}\"></input>\n"
|
( "<input class=\"xocfg__io_cmd__exe__txt\" id=\"{1}-exe\" data-xocfg-key=\"{1}\" data-xocfg-gui=\"{0}-exe\" accesskey=\"d\" type=\"text\" value=\"{2}\"></input>\n"
|
||||||
+ "<button class=\"xocfg__io_cmd__exe__btn\" onclick='xowa_io_select(\"file\", \"{1}-exe\", \"Please select a file.\");'>...</button><br/>\n"
|
+ "<button class=\"xocfg__io_cmd__exe__btn\" onclick='xowa_io_select(\"file\", \"{1}-exe\", \"Please select a file.\");'>...</button><br/>\n"
|
||||||
, gui_type_key, key, exe);
|
, gui_type_key, key, lines[0]);
|
||||||
bfr.Add_str_u8_fmt
|
bfr.Add_str_u8_fmt
|
||||||
( "<input class=\"xocfg__io_cmd__arg__txt\" id=\"{1}-arg\" data-xocfg-key=\"{1}\" data-xocfg-gui=\"{0}-arg\" accesskey=\"d\" type=\"text\" value='{2}'>\n"
|
( "<input class=\"xocfg__io_cmd__arg__txt\" id=\"{1}-arg\" data-xocfg-key=\"{1}\" data-xocfg-gui=\"{0}-arg\" accesskey=\"d\" type=\"text\" value='{2}'>\n"
|
||||||
, gui_type_key, key, arg);
|
, gui_type_key, key, lines[1]);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -18,8 +18,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
package gplx.xowa.apps.progs; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*;
|
package gplx.xowa.apps.progs; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*;
|
||||||
import gplx.xowa.apps.fsys.*; import gplx.xowa.files.*; import gplx.core.envs.*;
|
import gplx.xowa.apps.fsys.*; import gplx.xowa.files.*; import gplx.core.envs.*;
|
||||||
public class Xoa_prog_mgr implements Gfo_invk {
|
public class Xoa_prog_mgr implements Gfo_invk {
|
||||||
public void Init_by_app(Xoa_fsys_eval cmd_eval) {
|
private Gfo_usr_dlg usr_dlg;
|
||||||
Gfo_usr_dlg usr_dlg = Xoa_app_.Usr_dlg();
|
private Process_adp app_web;
|
||||||
|
private Process_adp[] apps_by_ext = new Process_adp[Xof_ext_.Id__max];
|
||||||
|
public void Init_by_app(Xoa_app app, Xoa_fsys_eval cmd_eval) {
|
||||||
|
this.usr_dlg = Xoa_app_.Usr_dlg();
|
||||||
Process_adp.ini_(this, usr_dlg, app_query_img_size , cmd_eval, Process_adp.Run_mode_sync_timeout , 10 * 60, "~{<>bin_plat_dir<>}imagemagick\\identify", "-ping -format \"<{%w,%h}>\" \"~{file}\"", "file");
|
Process_adp.ini_(this, usr_dlg, app_query_img_size , cmd_eval, Process_adp.Run_mode_sync_timeout , 10 * 60, "~{<>bin_plat_dir<>}imagemagick\\identify", "-ping -format \"<{%w,%h}>\" \"~{file}\"", "file");
|
||||||
Process_adp.ini_(this, usr_dlg, app_resize_img , cmd_eval, Process_adp.Run_mode_sync_timeout , 10 * 60, "~{<>bin_plat_dir<>}imagemagick\\convert", "\"~{source}\" -coalesce -resize ~{width}x~{height} \"~{target}\"", "source", "target", "width", "height");
|
Process_adp.ini_(this, usr_dlg, app_resize_img , cmd_eval, Process_adp.Run_mode_sync_timeout , 10 * 60, "~{<>bin_plat_dir<>}imagemagick\\convert", "\"~{source}\" -coalesce -resize ~{width}x~{height} \"~{target}\"", "source", "target", "width", "height");
|
||||||
Process_adp.ini_(this, usr_dlg, app_convert_svg_to_png , cmd_eval, Process_adp.Run_mode_sync_timeout , 10 * 60, "~{<>bin_plat_dir<>}inkscape\\inkscape", "-z -w ~{width} -f \"~{source}\" -e \"~{target}\"", "source", "target", "width").Thread_kill_name_("inkscape.exe"); // // -z=without-gui; -w=width; -f=file -e=export-png
|
Process_adp.ini_(this, usr_dlg, app_convert_svg_to_png , cmd_eval, Process_adp.Run_mode_sync_timeout , 10 * 60, "~{<>bin_plat_dir<>}inkscape\\inkscape", "-z -w ~{width} -f \"~{source}\" -e \"~{target}\"", "source", "target", "width").Thread_kill_name_("inkscape.exe"); // // -z=without-gui; -w=width; -f=file -e=export-png
|
||||||
@ -35,22 +38,21 @@ public class Xoa_prog_mgr implements Gfo_invk {
|
|||||||
Process_adp.ini_(this, usr_dlg, app_abc2ly , cmd_eval, Process_adp.Run_mode_sync_timeout , 1 * 60, "~{<>bin_plat_dir<>}lilypond\\usr\\bin\\python.exe", "abc2ly.py -s \"--output=~{target}\" \"~{source}\"", "source", "target");
|
Process_adp.ini_(this, usr_dlg, app_abc2ly , cmd_eval, Process_adp.Run_mode_sync_timeout , 1 * 60, "~{<>bin_plat_dir<>}lilypond\\usr\\bin\\python.exe", "abc2ly.py -s \"--output=~{target}\" \"~{source}\"", "source", "target");
|
||||||
Process_adp.ini_(this, usr_dlg, app_trim_img , cmd_eval, Process_adp.Run_mode_sync_timeout , 1 * 60, "~{<>bin_plat_dir<>}imagemagick\\convert", "-trim \"~{source}\" \"~{target}\"", "source", "target");
|
Process_adp.ini_(this, usr_dlg, app_trim_img , cmd_eval, Process_adp.Run_mode_sync_timeout , 1 * 60, "~{<>bin_plat_dir<>}imagemagick\\convert", "-trim \"~{source}\" \"~{target}\"", "source", "target");
|
||||||
Process_adp.ini_(this, usr_dlg, app_convert_midi_to_ogg , cmd_eval, Process_adp.Run_mode_sync_timeout , 1 * 60, "~{<>bin_plat_dir<>}timidity\\timidity", "-Ov \"--output-file=~{target}\" \"~{source}\"", "source", "target");
|
Process_adp.ini_(this, usr_dlg, app_convert_midi_to_ogg , cmd_eval, Process_adp.Run_mode_sync_timeout , 1 * 60, "~{<>bin_plat_dir<>}timidity\\timidity", "-Ov \"--output-file=~{target}\" \"~{source}\"", "source", "target");
|
||||||
Process_adp.ini_(this, usr_dlg, app_view_web , cmd_eval, Process_adp.Run_mode_async , 0 , "cmd", "/c start \"~{url}\"", "url");
|
|
||||||
Process_adp.ini_(this, usr_dlg, app_view_text , cmd_eval, Process_adp.Run_mode_async , 0 , "cmd", "/c start \"~{url}\"", "url");
|
Process_adp.ini_(this, usr_dlg, app_view_text , cmd_eval, Process_adp.Run_mode_async , 0 , "cmd", "/c start \"~{url}\"", "url");
|
||||||
int cmds_view_file_by_ext_len = cmds_view_file_by_ext.length;
|
|
||||||
for (int i= 0; i < cmds_view_file_by_ext_len; i++) {
|
for (int i = 0; i < apps_by_ext.length; i++) {
|
||||||
Process_adp cmd = new Process_adp();
|
apps_by_ext[i] = Process_adp.New(usr_dlg, cmd_eval, Process_adp.Run_mode_async, 0, "cmd", "/c start \"\" \"~{file}\"", "file");
|
||||||
cmds_view_file_by_ext [i] = cmd;
|
|
||||||
Process_adp.ini_(this, usr_dlg, cmd , cmd_eval, Process_adp.Run_mode_async , 0 , "cmd", "/c start \"~{file}\"", "file");
|
|
||||||
}
|
}
|
||||||
|
app_web = Process_adp.New(usr_dlg, cmd_eval, Process_adp.Run_mode_async, 0, "cmd", "/c start \"\" \"~{url}\"", "url");
|
||||||
|
app.Cfg().Bind_many_app(this, Cfg__web, Cfg__media, Cfg__image, Cfg__svg, Cfg__pdf, Cfg__djvu);
|
||||||
}
|
}
|
||||||
|
private Process_adp App_by_ext_key(String ext) {return apps_by_ext[Xof_ext_.Get_id_by_ext_(Bry_.new_a7(ext))];}
|
||||||
public Process_adp App_query_img_size() {return app_query_img_size;} private Process_adp app_query_img_size = new Process_adp();
|
public Process_adp App_query_img_size() {return app_query_img_size;} private Process_adp app_query_img_size = new Process_adp();
|
||||||
public Process_adp App_resize_img() {return app_resize_img;} private Process_adp app_resize_img = new Process_adp();
|
public Process_adp App_resize_img() {return app_resize_img;} private Process_adp app_resize_img = new Process_adp();
|
||||||
public Process_adp App_convert_svg_to_png() {return app_convert_svg_to_png;} private Process_adp app_convert_svg_to_png = new Process_adp();
|
public Process_adp App_convert_svg_to_png() {return app_convert_svg_to_png;} private Process_adp app_convert_svg_to_png = new Process_adp();
|
||||||
public Process_adp App_convert_tex_to_dvi() {return app_convert_tex_to_dvi;} private Process_adp app_convert_tex_to_dvi = new Process_adp();
|
public Process_adp App_convert_tex_to_dvi() {return app_convert_tex_to_dvi;} private Process_adp app_convert_tex_to_dvi = new Process_adp();
|
||||||
public Process_adp App_convert_dvi_to_png() {return app_convert_dvi_to_png;} private Process_adp app_convert_dvi_to_png = new Process_adp();
|
public Process_adp App_convert_dvi_to_png() {return app_convert_dvi_to_png;} private Process_adp app_convert_dvi_to_png = new Process_adp();
|
||||||
public Process_adp App_convert_djvu_to_tiff() {return app_convert_djvu_to_tiff;} private Process_adp app_convert_djvu_to_tiff = new Process_adp();
|
public Process_adp App_convert_djvu_to_tiff() {return app_convert_djvu_to_tiff;} private Process_adp app_convert_djvu_to_tiff = new Process_adp();
|
||||||
public Process_adp App_view_web() {return app_view_web;} private Process_adp app_view_web = new Process_adp();
|
|
||||||
public Process_adp App_view_text() {return app_view_text;} private Process_adp app_view_text = new Process_adp();
|
public Process_adp App_view_text() {return app_view_text;} private Process_adp app_view_text = new Process_adp();
|
||||||
public Process_adp App_decompress_bz2() {return app_decompress_bz2;} private Process_adp app_decompress_bz2 = new Process_adp();
|
public Process_adp App_decompress_bz2() {return app_decompress_bz2;} private Process_adp app_decompress_bz2 = new Process_adp();
|
||||||
public Process_adp App_decompress_zip() {return app_decompress_zip;} private Process_adp app_decompress_zip = new Process_adp();
|
public Process_adp App_decompress_zip() {return app_decompress_zip;} private Process_adp app_decompress_zip = new Process_adp();
|
||||||
@ -69,7 +71,7 @@ public class Xoa_prog_mgr implements Gfo_invk {
|
|||||||
else if (ctx.Match(k, Invk_convert_tex_to_dvi)) return app_convert_tex_to_dvi;
|
else if (ctx.Match(k, Invk_convert_tex_to_dvi)) return app_convert_tex_to_dvi;
|
||||||
else if (ctx.Match(k, Invk_convert_dvi_to_png)) return app_convert_dvi_to_png;
|
else if (ctx.Match(k, Invk_convert_dvi_to_png)) return app_convert_dvi_to_png;
|
||||||
else if (ctx.Match(k, Invk_convert_djvu_to_tiff)) return app_convert_djvu_to_tiff;
|
else if (ctx.Match(k, Invk_convert_djvu_to_tiff)) return app_convert_djvu_to_tiff;
|
||||||
else if (ctx.Match(k, Invk_view_web)) return app_view_web;
|
else if (ctx.Match(k, Invk_view_web)) return app_web;
|
||||||
else if (ctx.Match(k, Invk_decompress_bz2)) return app_decompress_bz2;
|
else if (ctx.Match(k, Invk_decompress_bz2)) return app_decompress_bz2;
|
||||||
else if (ctx.Match(k, Invk_decompress_zip)) return app_decompress_zip;
|
else if (ctx.Match(k, Invk_decompress_zip)) return app_decompress_zip;
|
||||||
else if (ctx.Match(k, Invk_decompress_gz)) return app_decompress_gz;
|
else if (ctx.Match(k, Invk_decompress_gz)) return app_decompress_gz;
|
||||||
@ -79,50 +81,43 @@ public class Xoa_prog_mgr implements Gfo_invk {
|
|||||||
else if (ctx.Match(k, Invk_abc2ly)) return app_abc2ly;
|
else if (ctx.Match(k, Invk_abc2ly)) return app_abc2ly;
|
||||||
else if (ctx.Match(k, Invk_convert_midi_to_ogg)) return app_convert_midi_to_ogg;
|
else if (ctx.Match(k, Invk_convert_midi_to_ogg)) return app_convert_midi_to_ogg;
|
||||||
else if (ctx.Match(k, Invk_trim_img)) return app_trim_img;
|
else if (ctx.Match(k, Invk_trim_img)) return app_trim_img;
|
||||||
else if (ctx.Match(k, Invk_web)) return app_view_web;
|
|
||||||
else if (ctx.Match(k, Invk_text)) return app_view_text;
|
else if (String_.Eq(k, Cfg__web)) {Init_cmd(m.ReadStr("v"), app_web);}
|
||||||
else if (ctx.Match(k, Invk_image)) return Init_by_exts("png", "jpg", "jpeg", "gif", "tif", "tiff", "svg");
|
else if (String_.Eq(k, Cfg__media)) {Init_cmd(m.ReadStr("v"), Xof_ext_.Id_ogv, Xof_ext_.Id_webm, Xof_ext_.Id_flac, Xof_ext_.Id_ogg, Xof_ext_.Id_oga, Xof_ext_.Id_mid, Xof_ext_.Id_wav);}
|
||||||
else if (ctx.Match(k, Invk_media)) return Init_by_exts("mid", "ogg", "oga", "ogv", "webm");
|
else if (String_.Eq(k, Cfg__image)) {Init_cmd(m.ReadStr("v"), Xof_ext_.Id_png, Xof_ext_.Id_jpg, Xof_ext_.Id_jpeg, Xof_ext_.Id_gif, Xof_ext_.Id_tif, Xof_ext_.Id_tiff, Xof_ext_.Id_bmp);}
|
||||||
else if (ctx.Match(k, Invk_svg)) return Init_by_exts("svg");
|
else if (String_.Eq(k, Cfg__svg)) {Init_cmd(m.ReadStr("v"), Xof_ext_.Id_svg);}
|
||||||
else if (ctx.Match(k, Invk_pdf)) return Init_by_exts("pdf");
|
else if (String_.Eq(k, Cfg__pdf)) {Init_cmd(m.ReadStr("v"), Xof_ext_.Id_pdf);}
|
||||||
else if (ctx.Match(k, Invk_djvu)) return Init_by_exts("djvu");
|
else if (String_.Eq(k, Cfg__djvu)) {Init_cmd(m.ReadStr("v"), Xof_ext_.Id_djvu);}
|
||||||
else if (ctx.Match(k, Invk_view_by_ext)) Exec_view_by_ext(m.ReadStr("exts"), m.ReadStr("cmd"), m.ReadStr("args"));
|
|
||||||
else return Gfo_invk_.Rv_unhandled;
|
else return Gfo_invk_.Rv_unhandled;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
public void Exec_view_web(byte[] url) {
|
private void Init_cmd(String exe_and_args, Process_adp proc) {
|
||||||
url = Bry_.Replace(url, Quote_normal, Quote_escape); // escape quotes; DATE:2013-03-31
|
String[] lines = gplx.xowa.addons.apps.cfgs.Xocfg_mgr.Parse_io_cmd(exe_and_args);
|
||||||
String url_str = String_.new_u8(url);
|
proc.Exe_and_args_(lines[0], lines[1]);
|
||||||
url_str = Process_adp.Escape_ampersands_if_process_is_cmd(Op_sys.Cur().Tid_is_wnt(), app_view_web.Exe_url().Raw(), url_str); // escape ampersands; DATE:2014-05-20
|
}
|
||||||
app_view_web.Run(url_str);
|
private void Init_cmd(String exe_and_args, int... exts) {
|
||||||
} private static final byte[] Quote_normal = new byte[] {Byte_ascii.Quote}, Quote_escape = new byte[] {Byte_ascii.Quote, Byte_ascii.Quote};
|
String[] lines = gplx.xowa.addons.apps.cfgs.Xocfg_mgr.Parse_io_cmd(exe_and_args);
|
||||||
private Process_adp App_by_ext_key(String ext) {return cmds_view_file_by_ext[Xof_ext_.Get_id_by_ext_(Bry_.new_a7(ext))];}
|
for (int ext_id : exts) {
|
||||||
public void Exec_view_by_ext(String exts_raw, String cmd, String args) {
|
apps_by_ext[ext_id].Exe_and_args_(lines[0], lines[1]);
|
||||||
String[] exts_ary = String_.Split(exts_raw, '|');
|
|
||||||
int exts_ary_len = exts_ary.length;
|
|
||||||
for (int i = 0; i < exts_ary_len; i++)
|
|
||||||
App_by_ext_key(exts_ary[i]).Cmd_args(cmd, args);
|
|
||||||
} Process_adp[] cmds_view_file_by_ext = new Process_adp[Xof_ext_.Id__max];
|
|
||||||
private Process_adp Init_by_exts(String... exts) {
|
|
||||||
Process_adp rv = App_by_ext_key(exts[0]);
|
|
||||||
int len = exts.length;
|
|
||||||
for (int i = 0; i < len; i++) {
|
|
||||||
cmds_view_file_by_ext[Xof_ext_.Get_id_by_ext_(Bry_.new_a7(exts[i]))] = rv;
|
|
||||||
}
|
}
|
||||||
return rv;
|
}
|
||||||
|
public void Exec_view_web(byte[] url) {
|
||||||
|
String url_str = String_.new_u8(url);
|
||||||
|
url_str = String_.Replace(url_str, "\"", "\"\""); // escape quotes; DATE:2013-03-31
|
||||||
|
url_str = Process_adp.Escape_ampersands_if_process_is_cmd(Op_sys.Cur().Tid_is_wnt(), app_web.Exe_url().Raw(), url_str); // escape ampersands; DATE:2014-05-20
|
||||||
|
app_web.Run(url_str);
|
||||||
}
|
}
|
||||||
private static final String Invk_query_img_size = "query_img_size", Invk_resize_img = "resize_img", Invk_convert_svg_to_png = "convert_svg_to_png", Invk_convert_tex_to_dvi = "convert_tex_to_dvi", Invk_convert_dvi_to_png = "convert_dvi_to_png"
|
private static final String Invk_query_img_size = "query_img_size", Invk_resize_img = "resize_img", Invk_convert_svg_to_png = "convert_svg_to_png", Invk_convert_tex_to_dvi = "convert_tex_to_dvi", Invk_convert_dvi_to_png = "convert_dvi_to_png"
|
||||||
, Invk_convert_djvu_to_tiff = "convert_djvu_to_tiff", Invk_view_web = "view_web"
|
, Invk_convert_djvu_to_tiff = "convert_djvu_to_tiff", Invk_view_web = "view_web"
|
||||||
, Invk_decompress_bz2 = "decompress_bz2", Invk_decompress_zip = "decompress_zip", Invk_decompress_gz = "decompress_gz", Invk_decompress_bz2_by_stdout = "decompress_bz2_by_stdout"
|
, Invk_decompress_bz2 = "decompress_bz2", Invk_decompress_zip = "decompress_zip", Invk_decompress_gz = "decompress_gz", Invk_decompress_bz2_by_stdout = "decompress_bz2_by_stdout"
|
||||||
, Invk_view_by_ext = "view_by_ext"
|
, Invk_lua = "lua", Invk_lilypond = "lilypond", Invk_abc2ly = "abc2ly", Invk_trim_img = "trim_img", Invk_convert_midi_to_ogg = "convert_midi_to_ogg"
|
||||||
, Invk_lua = "lua", Invk_lilypond = "lilypond", Invk_abc2ly = "abc2ly", Invk_trim_img = "trim_img", Invk_convert_midi_to_ogg = "convert_midi_to_ogg"
|
;
|
||||||
, Invk_web = "web"
|
private static final String
|
||||||
, Invk_media = "media"
|
Cfg__web = "xowa.app.content_apps.web"
|
||||||
, Invk_image = "image"
|
, Cfg__media = "xowa.app.content_apps.media"
|
||||||
, Invk_svg = "svg"
|
, Cfg__image = "xowa.app.content_apps.image"
|
||||||
, Invk_pdf = "pdf"
|
, Cfg__svg = "xowa.app.content_apps.svg"
|
||||||
, Invk_djvu = "djvu"
|
, Cfg__pdf = "xowa.app.content_apps.pdf"
|
||||||
, Invk_text = "text"
|
, Cfg__djvu = "xowa.app.content_apps.djvu"
|
||||||
;
|
;
|
||||||
public static final int Len_dlm_fld = 1, Adj_next_char = 1;
|
|
||||||
}
|
}
|
||||||
|
@ -85,7 +85,7 @@ public class Xop_lnke_wkr implements Xop_ctx_wkr {
|
|||||||
switch (src[cur_pos]) {
|
switch (src[cur_pos]) {
|
||||||
case Byte_ascii.Brack_end:
|
case Byte_ascii.Brack_end:
|
||||||
if (lnke_type_brack) { // NOTE: check that frame begins with [ in order to end with ]
|
if (lnke_type_brack) { // NOTE: check that frame begins with [ in order to end with ]
|
||||||
lnke_end_tid = End_tid_brack; brack_end_pos = cur_pos + Xoa_prog_mgr.Adj_next_char;
|
lnke_end_tid = End_tid_brack; brack_end_pos = cur_pos + 1; // 1=adj_next_char
|
||||||
}
|
}
|
||||||
else { // NOTE: frame does not begin with [ but ] encountered. mark "invalid" in order to force parser to stop before "]"
|
else { // NOTE: frame does not begin with [ but ] encountered. mark "invalid" in order to force parser to stop before "]"
|
||||||
lnke_end_tid = End_tid_invalid;
|
lnke_end_tid = End_tid_invalid;
|
||||||
|
@ -247,7 +247,7 @@ public class Xop_xnde_wkr implements Xop_ctx_wkr {
|
|||||||
}
|
}
|
||||||
if (valid) {
|
if (valid) {
|
||||||
ctx.Subs_add(root, tkn_mkr.Ignore(bgn_pos, gtPos, Xop_ignore_tkn.Ignore_tid_include_tmpl));
|
ctx.Subs_add(root, tkn_mkr.Ignore(bgn_pos, gtPos, Xop_ignore_tkn.Ignore_tid_include_tmpl));
|
||||||
return gtPos + Xoa_prog_mgr.Adj_next_char;
|
return gtPos + 1; // 1=adj_next_char
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return ctx.Lxr_make_txt_(gtPos);
|
return ctx.Lxr_make_txt_(gtPos);
|
||||||
@ -281,7 +281,7 @@ public class Xop_xnde_wkr implements Xop_ctx_wkr {
|
|||||||
private boolean pre2_pending = false;
|
private boolean pre2_pending = false;
|
||||||
private int Make_xtag_bgn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int gtPos, int name_bgn, int name_end, Xop_xnde_tag tag, int tag_end_pos, byte tag_end_byte, boolean force_xtn_for_nowiki, boolean pre2_hack) {
|
private int Make_xtag_bgn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int gtPos, int name_bgn, int name_end, Xop_xnde_tag tag, int tag_end_pos, byte tag_end_byte, boolean force_xtn_for_nowiki, boolean pre2_hack) {
|
||||||
boolean inline = false;
|
boolean inline = false;
|
||||||
int open_tag_end = gtPos + Xoa_prog_mgr.Adj_next_char, atrs_bgn = -1, atrs_end = -1;
|
int open_tag_end = gtPos + 1, atrs_bgn = -1, atrs_end = -1; // 1=adj_next_char
|
||||||
// calc (a) inline; (b) atrs
|
// calc (a) inline; (b) atrs
|
||||||
switch (tag_end_byte) { // look at last char of tag; EX: for b, following are registered: "b/","b>","b\s","b\n","b\t"
|
switch (tag_end_byte) { // look at last char of tag; EX: for b, following are registered: "b/","b>","b\s","b\n","b\t"
|
||||||
case Byte_ascii.Slash: // "/" EX: "<br/"; // NOTE: <pre/a>, <pre//> are allowed
|
case Byte_ascii.Slash: // "/" EX: "<br/"; // NOTE: <pre/a>, <pre//> are allowed
|
||||||
|
@ -88,13 +88,13 @@ public class Prefs_mgr_tst {
|
|||||||
fxt.Test_set("<select xowa_prop='app.files.math.renderer' xowa_prop_list='app.files.math.renderer_list'></select>");
|
fxt.Test_set("<select xowa_prop='app.files.math.renderer' xowa_prop_list='app.files.math.renderer_list'></select>");
|
||||||
Tfds.Eq(false, fxt.App().File_mgr().Math_mgr().Renderer_is_mathjax());
|
Tfds.Eq(false, fxt.App().File_mgr().Math_mgr().Renderer_is_mathjax());
|
||||||
}
|
}
|
||||||
@Test public void Get_io_file() {
|
// @Test public void Get_io_file() {
|
||||||
fxt.Exec_get
|
// fxt.Exec_get
|
||||||
( "<input type='xowa_io' xowa_prop='app.fsys.apps.media' xowa_io_msg='Select program for Web Browser'></input>", String_.Concat
|
// ( "<input type='xowa_io' xowa_prop='app.fsys.apps.media' xowa_io_msg='Select program for Web Browser'></input>", String_.Concat
|
||||||
( "<input type='xowa_io' xowa_prop='app.fsys.apps.media' xowa_io_msg='Select program for Web Browser' id='xowa_prop_0' value=''></input>"
|
// ( "<input type='xowa_io' xowa_prop='app.fsys.apps.media' xowa_io_msg='Select program for Web Browser' id='xowa_prop_0' value='gplx.Gfo_invk__noop'></input>"
|
||||||
, "<button id='xowa_prop_0_io' class='options_button' onclick='xowa_io_select(\"file\", \"xowa_prop_0\", \"Select program for Web Browser\");'>...</button>"
|
// , "<button id='xowa_prop_0_io' class='options_button' onclick='xowa_io_select(\"file\", \"xowa_prop_0\", \"Select program for Web Browser\");'>...</button>"
|
||||||
));
|
// ));
|
||||||
}
|
// }
|
||||||
@Test public void Scrub_tidy_trailing_nl_in_textarea() {
|
@Test public void Scrub_tidy_trailing_nl_in_textarea() {
|
||||||
fxt.Test_Scrub_tidy_trailing_nl_in_textarea(Bool_.Y, Bool_.Y, "a\n", "a");
|
fxt.Test_Scrub_tidy_trailing_nl_in_textarea(Bool_.Y, Bool_.Y, "a\n", "a");
|
||||||
fxt.Test_Scrub_tidy_trailing_nl_in_textarea(Bool_.Y, Bool_.Y, "a\n\n", "a\n");
|
fxt.Test_Scrub_tidy_trailing_nl_in_textarea(Bool_.Y, Bool_.Y, "a\n\n", "a\n");
|
||||||
|
Loading…
Reference in New Issue
Block a user