1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2026-03-02 03:49:30 +00:00

load catpage header from html database and merge catpage data; also, load catpage async

This commit is contained in:
gnosygnu
2016-10-12 15:42:06 -04:00
parent 6b1ec09296
commit 1342a16269
6 changed files with 23 additions and 5 deletions

View File

@@ -19,6 +19,7 @@ package gplx.xowa.wikis.pages; import gplx.*; import gplx.xowa.*; import gplx.xo
import gplx.xowa.guis.views.*;
public class Xowe_page_mgr {
private final Xowe_wiki wiki;
private final Bry_bfr tmp_bfr = Bry_bfr_.New();
public Xowe_page_mgr(Xowe_wiki wiki) {this.wiki = wiki;}
public Xoae_page Load_page(Xoa_url url, Xoa_ttl ttl, Xog_tab_itm tab) {
Xoa_app_.Usr_dlg().Log_many("", "", "page.load: url=~{0}", url.To_str());
@@ -43,6 +44,16 @@ public class Xowe_page_mgr {
}
if (parse)
wiki.Parser_mgr().Parse(page, false);
// if [[Category]], generate catlinks (subc; page; file)
if (ttl.Ns().Id_is_ctg()) {
wiki.Ctg__catpage_mgr().Write_catpage(tmp_bfr, page);
if (parse)
page.Html_data().Catpage_data_(tmp_bfr.To_bry_and_clear());
else
page.Db().Html().Html_bry_(Bry_.Add(page.Db().Html().Html_bry(), tmp_bfr.To_bry_and_clear()));
}
return page;
}
private static void Wait_for_popups(Xoa_app app) {// HACK: wait for popups to finish, else thread errors due to popups and loader mutating cached items

View File

@@ -46,6 +46,7 @@ public class Xopg_html_data {
public int Sect_uid() {return sect_uid;} private int sect_uid = -1; public int Sect_uid_next() {return ++sect_uid;}
public boolean Cbk_enabled() {return cbk_enabled;} private boolean cbk_enabled; public void Cbk_enabled_(boolean v) {this.cbk_enabled = v;}
public boolean Hdump_exists() {return hdump_exists;} private boolean hdump_exists; public void Hdump_exists_(boolean v) {this.hdump_exists = v;}
public byte[] Catpage_data() {return catpage_data;} private byte[] catpage_data; public void Catpage_data_(byte[] v) {this.catpage_data = v;}
public boolean Writing_hdr_for_toc() {return writing_hdr_for_toc;} private boolean writing_hdr_for_toc; public void Writing_hdr_for_toc_y_() {writing_hdr_for_toc = Bool_.Y;} public void Writing_hdr_for_toc_n_() {writing_hdr_for_toc = Bool_.N;}
public Xoh_toc_mgr Toc_mgr() {return toc_mgr;} private final Xoh_toc_mgr toc_mgr = new Xoh_toc_mgr();