Line 16: |
Line 16: |
| == Current status == | | == Current status == |
| * Targeted release: 0.96 | | * Targeted release: 0.96 |
− | * Last updated: 25/10/2011 | + | * Last updated: 04/11/2011 |
− | * Percentage of completion: 0% | + | * Percentage of completion: 80% |
| | | |
| == Initial information == | | == Initial information == |
Line 73: |
Line 73: |
| app = HelloWorldApp() | | app = HelloWorldApp() |
| app.run(None) | | app.run(None) |
− |
| |
− |
| |
| | | |
| === More information === | | === More information === |
| | | |
− | Simon did tests and report:
| + | Not directly related. Evince developers have a request to support epub format [https://bugzilla.gnome.org/show_bug.cgi?id=539347]. |
− | | |
− | what I did today to get a bit of a feeling of what is needed to port Read was looking at the evince bidings through introspection. So first, hmmm what is the gi repository called?
| |
− | | |
− | In Fedora you can have a look at '/usr/lib/girepository-1.0/' and find out that there is a EvinceDocument-3.0.typelib and a EvinceDocument-3.0.typelib. If we have a quick look at [1] we find out that the .typelib is a Binary version of the invocation info. Ok let's try this:
| |
− | | |
− | from gi.repository import EvinceDocument
| |
− | dir(EvinceDocument)
| |
− | | |
− | from gi.repository import EvinceView
| |
− | dir(EvinceView)
| |
− | | |
− | Works!
| |
− | | |
− | Looking at the invokations in read/evinceadapter.py I did extract the calls we did previously on the evince module (e.g. evince.View()) and checked if they were present, too.
| |
− | | |
− | The evince.View() is now EvinceView.View().
| |
− | | |
− | Furthermore are present:
| |
− | | |
− | help(view)
| |
− | view.set_model
| |
− | view.can_zoom_in, view.can_zoom_out
| |
− | view.zoom_in
| |
− | view_zoom_out
| |
− | view.find_next
| |
− | view.find_previous
| |
− | view.scroll
| |
− | view.copy
| |
− | view.find_set_highlight_search
| |
− | | |
− | I could not find: update_view_size, find_changed
| |
− | | |
− | Some further transitions:
| |
− | | |
− | evince.JobFind -> EvinceView.JobFind
| |
− | evince.Job.scheduler_push_job -> EvinceView.Job
| |
− | | |
− | I could not find: evince.SIZING_* (e.g. evince.SIZING_BEST_FIT)
| |
− | | |
− | More info on the EvinceView API are at [2].
| |
− | | |
− | | |
− | And then I came across an hard one (which I have not solved yet):
| |
− | | |
− | I could not find out how 'evince.document_factory_get_document(file_path)' should be called now. Looking at the API it should be maybe something like EvinceDocument.factory_get_document, trying that:
| |
− | | |
− | >>> EvinceDocument.factory_get_document
| |
− | Traceback (most recent call last):
| |
− | File "<stdin>", line 1, in <module>
| |
− | File "/usr/lib/python2.7/site-packages/gi/module.py", line 243, in __getattr__
| |
− | return getattr(self._introspection_module, name)
| |
− | File "/usr/lib/python2.7/site-packages/gi/module.py", line 105, in __getattr__
| |
− | self.__name__, name))
| |
− | AttributeError: 'gi.repository.EvinceDocument' object has no attribute 'factory_get_document'
| |
− | >>>
| |
− | | |
− | Hmm, I did get the sources, then to have a look because the .typelib is a Binary version of the invocation info and therefore I need to have a look at the .gir file to dig a bit deeper. After installing all the dependencies I did a './autogen.sh --enable-introspection' and run 'make' and had a .gir file placed in libdocument/EvinceDocument-3.0.gir. Looking at the definition it says:
| |
− | | |
− | <function name="factory_get_document"
| |
− | c:identifier="ev_document_factory_get_document"
| |
− | introspectable="0"
| |
− | throws="1">
| |
− | | |
− | Hmm, so it should not be available 'introspectable="0"'. Why, how, this exercise is left to the reader, I am a bit stuck on this :)
| |
− | | |
− | A good resource for asking related is questions is #introspection on GimpNet. I have attached the chat I had with Tomeu about that issue.
| |
− | | |
− | Regards,
| |
− | Simon
| |
− | | |
− | [1] http://live.gnome.org/GObjectIntrospection/Architecture | |
− | | |
− | [2] http://developer.gnome.org/libevview/stable/
| |
− | | |
− | [3] http://developer.gnome.org/libevdocument/stable/libevdocument-ev-document-factory.html
| |
| | | |
− | The gir file is installed with the package evince-devel in /usr/share/gir-1.0/EvinceDocument-3.0.gir
| + | We are implementing our own epub reader displaying it with webkit. If implemented in evince, we can simplify our code a lot. |
| | | |
| == Benefit to Sugar == | | == Benefit to Sugar == |