Re: [evince] Need help to start contribution



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 <sitaramshelke gmail com> 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 <gpoo gnome org> 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
evince-list gnome org
https://mail.gnome.org/mailman/listinfo/evince-list


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]