Hi Sitaram,

In the beginning the following directives helped me find my way around the
code:

- shell: user interface
- backend: supported formats (pdf, ps, dvi, comicz, …)
- libdocument: abstractions of a document
- libview: how a document/page is shown, navigated, etc. (libview provides
widgets)

There is also nemiver (https://wiki.gnome.org/Apps/Nemiver), a debugging
tool which you could use to set breakpoints and see what parts of the code
are reached. I never managed to configure it correctly on my machine, so I
was just using the good old printf... but this is less than ideal.

At this point I guess you need to explore the files and functions, they
have usually quite intuitive names. For instance, there is a
ev_document_annotations_add_annotation function in
libdocument/ev-document-annotations.c. This is of course the function
called to add annotations. If you search where this function is called,
you'll eventually find the commands used to trigger the action (at the
moment, clicking a button in the menu). If you want to add a keyboard
shortcut, find an action which can be triggered by this and follow its way
in the code as well. This will give you a good idea of the information flow.
Once you are familiar with the structure of evince, it becomes easy to find
the way around it :)

Good luck!

Cheers,
Giselle.

On Fri, Dec 4, 2015 at 6:04 AM Sitaram Shelke <[email protected]>
wrote:

> Hi everyone,
> As Germán Poo-Caamaño suggested,
> I built evince master from Github source and also looked at
> https://bugzilla.gnome.org/show_bug.cgi?id=758329, tried to find the
> most common key bindings for document viewers on OS X and Adobe.But
> after that I found it difficult to understand the flow of code as this
> is the first time I am trying to work with a large code base. Is there
> any way to better understand the code?
>
> On Wed, Dec 2, 2015 at 12:59 PM, Germán Poo-Caamaño <[email protected]>
> wrote:
> > On Wed, 2015-12-02 at 10:51 +0530, Sitaram Shelke wrote:
> >> Hi everyone,
> >> So I was able to build evince 3.18.2 successfully. Got some issues
> >> like the previous one (autopoint, thank you @Germán Poo-Caamaño for
> >> the tips.) but fixed them by downloading the required packages and
> >> libraries. So what should I try to do next? any suggestions?
> >
> > Great! I would recommend to build evince master instead of 3.18.2. It
> > is only a bunch of commits more.
> >
> > Something like:
> > $ jhbuild shell
> > $ cd /path/to/evince/checkout
> > $ git checkout master
> > $ make
> > $ make install
> >
> > That should do the trick. No need to re-compile anything else so far.
> >
> > For getting busy, you can take a look at the Evince's bugzilla summary:
> > https://bugzilla.gnome.org/page.cgi?id=browse.html&product=evince
> >
> > On the right, there is a link to "GNOME Love" bugs, that "should" be
> > focused on a specific part to be completed.
> >
> > Start small, to get familiar with the code base.  For example, try to
> > fix:
> > https://bugzilla.gnome.org/show_bug.cgi?id=758329
> >
> > It consists in assign key accelerators for the annotation actions.
> > Possibly a couple of lines of code (in the directory shell/).
> >
> > Try to do some research, and see what keybindings are used (if any) in
> > other applications (for example, in online manuals of Adobe Acrobat,
> > Mac Preview, ...). Check if they are consistent. If so, we could try to
> > adopt it if it is not already in use for something else. Otherwise,
> > choose a sensible one (easy to associate hopefully).
> >
> > You will need to create an account in bugzilla to add comments (like
> > specific questions about the issue), add patches, etc.
> >
> > Good luck!
> >
> > --
> > Germán Poo-Caamaño
> > http://calcifer.org/
> >
> >
>
>
>
> --
> -sitaram
> _______________________________________________
> evince-list mailing list
> [email protected]
> https://mail.gnome.org/mailman/listinfo/evince-list
>
_______________________________________________
evince-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/evince-list

Reply via email to