Re: Adding a feature into evince



Hi Ankit,

Ankit Haldar wrote:
> Now what I want to do is take up some of the features of okular and
> put it into evince. Can something like this be done. If yes then I
> would need both of their source edit & compile it to make a deb file
> out of it which can be installed as an update in evince.

Okular is a QT application and written in C++, although possible, it
would be difficult to simply extract a feature and integrate it into evince.

Basic drag and drop for images has already been implemented. This works
for photos and other bitmap images but it does not work vectorized stuff
unfortunately.

As far as I understand the evince developers do not want to introduce a
mode-based selection system like in okular, kpdf or acroread. (I really
like mode-based systems, but that's besides the point.)

So if you could get drag and drop working for vectorized images you can
be pretty certain to get the patch accepted.

To download the current evince source code you need to do:

$ git clone git://git.gnome.org/evince

To get the current source code for the ubuntu package you can simply do:

$ sudo apt-get build-dep evince
$ apt-get source evince

(note the second line is executed as a normal user!)
to build the package:

$ cd evince-*
$ dpkg-buildpackage -b -us -uc

-b : build binary package only
-us: do not sign the source package
-uc: do not sign the changes file

The new packages will be placed one directory below the source tree.

> Since I am a novice to the programming world so I
> need some one to guide me through the process or suggest me
> some book or website

To start off you need to be familiar with C and Gtk+. The tutorials
here: http://www.gtk.org/documentation.html are a good point of departure.

To do what you want you will need a basic understanding of poppler.
Essentially you want to figure out a bounding box for the diagram and
then do pretty much the same thing evince already does with bitmap images.

If you download the libpoppler source code you can have reference
documentation generated which looks like this:
http://web.mit.edu/shutkin/MacData_1124b/afs/athena.mit.edu/software/inkscape_v0.46/share/gtk-doc/html/poppler/

Finally, to get a grasp of the evince codebase quickly you can use
doxygen to generate some reference documentation which will show you
call graphs and relationships between the many different parts of the
program.

-Bartek




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