[poppler] Form-Reset and Print [patches]
Albert Astals Cid
aacid at kde.org
Sun Jun 13 15:02:56 PDT 2010
A Diumenge, 13 de juny de 2010, Guillermo Amaral va escriure:
> On Sun, Jun 13, 2010 at 10:21:35AM +0200, Carlos Garcia Campos wrote:
> > Excerpts from Guillermo Amaral's message of dom jun 13 04:40:44 +0200
2010:
> > > Albert Astals Cid <aacid at kde.org> wrote:
> > > > A Dissabte, 12 de juny de 2010, Guillermo Amaral va escriure:
> > > >> I wanted to send in these patches, they allow handling of reset-form
> > > >> and print actions respectably.
> > > >>
> > > >> Please check them out, and if you have any questions please don't
> > > >> hesitate to ask.
> > > >
> > > > Do you have a document that uses them?
> > > >
> > > I do, but I dunno if I can share them ATM, looking into it.
> > > But I did make a test pdf that uses both features. :-)
> > >
> > > > Also what is the point of
> > > >
> > > > + } else if (obj2.isName("ResetForm")) {
> > > > + action = new LinkResetForm(obj2.getName());
> > > >
> > > As usual, you are right aacid :) I try a little to hard not to break
> > > the flow of other programs, I think I went to far lol (fixed)
> > >
> > > > And
> > > > if (obj->dictLookup("AA", &tmp)->isDict())
> > > > seems like an unrelated fix, can you please explain it too?
> > > >
> > > Mixed them up, that one should be in the print patch (moved).
> > > Sometimes the AA dict is used to hold a ref to the named object. I
> > > have seen it in two docs so far, it seems to happen when people set
> > > an action to happen on mouse down instead of mouse up. It should not
> > > break anything else (as far as I can see).
> >
> > We should definitely add support for additional actions properly in
> > poppler.
> >
> > > diff --git a/poppler/Link.cc b/poppler/Link.cc
> > > index 5d7b779..e3d6ce7 100644
> > > --- a/poppler/Link.cc
> > > +++ b/poppler/Link.cc
> > > @@ -124,6 +124,10 @@ LinkAction *LinkAction::parseAction(Object *obj,
> > > GooString *baseURI) {
> > >
> > > } else if (obj2.isName("SetOCGState")) {
> > >
> > > action = new LinkOCGState(obj);
> > >
> > > + // ResetForm action
> > > + } else if (obj2.isName("ResetForm")) {
> > > + action = new LinkResetForm();
> > > +
> > >
> > > // unknown action
> > > } else if (obj2.isName()) {
> > >
> > > action = new LinkUnknown(obj2.getName());
> > >
> > > @@ -856,6 +860,18 @@ LinkOCGState::StateList::~StateList() {
> > >
> > > }
> > >
> > > //--------------------------------------------------------------------
> > > ----
> > >
> > > +// LinkFormClear
> > > +//--------------------------------------------------------------------
> > > ---- +
> > > +LinkResetForm::LinkResetForm() {
> > > + action = new GooString("ResetForm");
> >
> > this is redundant, you already know it's a LinkResetForm object. You
> > should parse Fields and Flags here.
>
> Yeah it's a partial patch, it allows the client to know it has to reset..
> I guess I could make it reset the fields in the fieldlist here and just
> notify the client the form values have changed or something? what do you
> guys think?
>
> As far as it being redundant T_T yep totally. but I do see that
> the getAction() accessor returns said action GooString ptr, as I said
> before I don't want to rock the boat; I'm guessing that method is used
> some place else so I don't want to take it out willy nilly. But I do want
> to make it clear (if it's not totally obvious already) that I'm not
> completely familiar with the popplers code. ;-)
getAction() used somewhere? It's not virtual and you don't use it anywhere, so
where is it going to be used?
Albert
>
> Cheers,
> GA
More information about the poppler
mailing list