That's higher up in the s/w stack.  I'm just looking at the end, where html is 
passed in to the engine.

Phil




________________________________
From: Chris Dennis <[email protected]>
To: Phil Longstaff <[email protected]>; Gnucash list 
<[email protected]>
Sent: Monday, March 30, 2009 11:30:19 AM
Subject: Re: Webkit status (updated)

Phil Longstaff wrote:
> The basic flow is that in the C code, the report engine asks the html code to 
> show a uri such as "report:id=3".  The html code sees the uri type "report" 
> and calls the report engine back to supply it with html.  The report engine 
> then returns a string with the html code.  I don't know why gnc-document gets 
> in there.

Because on the Guile side, most reports use calls to 
gnc:html-document-add-object! and a host of other such functions that build up 
a gnc-document -- a complex 'object' (probably a 'record' in Guile-speak) that 
later gets converted into HTML.  Reports using eguile-gnc just create the HTML, 
and currently have to convert it to a gnc-document so that the correct type of 
data is returned by the report function.  My patch below by-passes the 
conversion from HTML to gnc-document and back again.

cheers

Chris
> 
> Phil
> 
> ------------------------------------------------------------------------
> *From:* Chris Dennis <[email protected]>
> *To:* Phil Longstaff <[email protected]>
> *Cc:* Gnucash list <[email protected]>
> *Sent:* Monday, March 30, 2009 3:00:16 AM
> *Subject:* Re: Webkit status (updated)
> 
> Phil Longstaff wrote:
>  > So, at this point, with libwebkit-1.0-1 and libwebkit-dev installed (on 
> kubuntu), I can replace use of gtkhtml by webkit.
> Excellent!
> 
> Would it also be possible to include the option for a report to return a 
> simple HTML string rather than a gnc document?  My new-fangled eguile-based 
> reports (see http://bugzilla.gnome.org/show_bug.cgi?id=574582) create such an 
> HTML string, and then convert it to a gnc document, and then it gets 
> converted straight back again.
> 
> In fact I think all that is required to achieve this is the following patch 
> (which I've edited to avoid wrapping, but you get the gist):
> 
> Index: report.scm
> ===================================================================
> --- report.scm    (revision 18001)
> +++ report.scm    (working copy)
> @@ -633,8 +633,11 @@
>               (stylesheet (gnc:report-stylesheet report))
>               (doc (renderer report))
>               (html #f))
> -        (gnc:html-document-set-style-sheet! doc stylesheet)
> -        (set! html (gnc:html-document-render doc headers?))
> +        (if (string? doc)
> +          (set! html doc)
> +          (begin
> +            (gnc:html-document-set-style-sheet! doc stylesheet)
> +            (set! html (gnc:html-document-render doc headers?))))
>         (gnc:report-set-ctext! report html) ;; cache the html
>         (gnc:report-set-dirty?! report #f)  ;; mark it clean
>         html)
> 
> cheers
> 
> Chris
> -- Chris Dennis                                  [email protected] 
> <mailto:[email protected]>
> Fordingbridge, Hampshire, UK


-- Chris Dennis                                  [email protected]
Fordingbridge, Hampshire, UK
_______________________________________________
gnucash-devel mailing list
[email protected]
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to