Re: [evince] Need help to start contribution



Hello everyone,
As suggested I was trying to get familiar with the code. I generated
the Makefile by running "autogen.sh" followed by "make" and "make
install". If I am not wrong this installed evince in my "/usr/bin".
Now when I run evince form terminal (not from /usr/bin) I get "evince:
error while loading shared libraries: libgnome-desktop-3.so.12: cannot
open shared object file: No such file or directory". But I am able to
run evince from "/usr/bin". Any Idea what I did wrong?

On Fri, Dec 4, 2015 at 12:01 PM, Giselle Reis <giselle mnr gmail com> wrote:
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



-- 
-sitaram


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