Age | Commit message (Collapse) | Author | Files | Lines |
|
instead of epub:id.
Add a null check as well.
ref:
https://help.apple.com/itc/booksassetguide/en.lproj/itc0f175a5b9.html#apdd3c4c6d1c0904
https://idpf.org/epub/301/spec/epub-contentdocs-20140626.html#sec-xhtml-nav
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- tab to spaces
- fix some indents
|
|
|
|
|
|
Fixes the warnings:
backend/comics/comics-document.c:767:21: style: Condition 'bytes<=0' is always true [knownConditionTrueFalse]
backend/epub/minizip/unzip.c:603:25: style: Condition 'unz_copyright[0]!=' '' is always false [knownConditionTrueFalse]
properties/ev-properties-view.c:197:33: style: Condition 'text' is always true [knownConditionTrueFalse]
shell/ev-sidebar-thumbnails.c:598:7: style: Condition '!loading_icon' is always true [knownConditionTrueFalse]
shell/main.c:115:6: style: Condition '!error' is always true [knownConditionTrueFalse]
|
|
|
|
Fixes the build warnings:
ev-window.c:6379:1: warning: function 'menubar_deactivate_cb' is not needed and will not be emitted [-Wunneeded-internal-declaration]
menubar_deactivate_cb (GtkWidget *menubar,
^
epub-document.c:946:1: warning: function 'check_add_page_numbers' is not needed and will not be emitted [-Wunneeded-internal-declaration]
check_add_page_numbers(linknode *listdata, contentListNode *comparenode)
^
|
|
|
|
|
|
|
|
|
|
inspired by:
https://github.com/linuxmint/xreader/commit/63a28f
https://github.com/linuxmint/xreader/issues/165
|
|
origin commit:
https://github.com/linuxmint/xreader/commit/6ed0ee1
Note: origin commit causes some serious build warnings,
......fixed.
|
|
closes https://github.com/mate-desktop/atril/issues/290 which has the original patch
|
|
Once epub support has been implemented, atril crashes with all epubs.
Backtrace for 1.10.2+repack1-1 (Debian Stretch):
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffd26d2700 (LWP 22276)]
0x0000000000000000 in ?? ()
(gdb) bt
#0 0x0000000000000000 in ()
#1 0x00007ffff755914e in ev_job_page_data_run (job=0x9e3850 [EvJobPageData]) at ev-jobs.c:762
#2 0x00007ffff755a85a in ev_job_thread_proxy (job=0x9e3850 [EvJobPageData]) at ev-job-scheduler.c:184
#3 0x00007ffff755a85a in ev_job_thread_proxy (data=<optimized out>) at ev-job-scheduler.c:217
#4 0x00007ffff14e1955 in g_thread_proxy (data=0x7fff84002280) at /build/glib2.0-VKSJTv/glib2.0-2.46.1/./glib/gthread.c:778
#5 0x00007ffff08690a4 in start_thread (arg=0x7fffd26d2700) at pthread_create.c:309
#6 0x00007ffff059e06d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
(gdb)
It turns out it couldn't really work since one function pointer is
uninitialized. But nobody complained. Thus I investigated it further,
why it fails only for me. First, I tried a gtk3 version. And it works
properly, but the broken code is not hit at all. Due to the threaded
design, it was harder to figure out, why. Here is the code path:
-->
ev_window_load_job_cb (shell/ev-window.c) -->
ev_document_model_set_document (libview/ev-document-model.c) -->
ev_view_document_changed_cb (libview/ev-view.c) -->
setup_caches (libview/ev-view.c) -->
if (ev_view_is_a11y_enabled (view)) {
ev_page_cache_set_flags();
}
ev_page_cache_set_flags (libview/ev-page-cache.c) -->
ev_page_cache_set_page_range (libview/ev-page-cache.c) -->
data->job = ev_job_page_data_new (cache->document, i, flags);
...
ev_job_scheduler_push_job (data->job, EV_JOB_PRIORITY_NONE);
...
-->
ev_job_thread_proxy (libview/ev-job-scheduler.c) -->
ev_job_page_data_run (libview/ev-jobs.c) -->
ev_document_links_get_links (libdocument/ev-document-links.c) -->
EvDocumentLinksInterface *iface = EV_DOCUMENT_LINKS_GET_IFACE (document_links);
return iface->get_links (document_links, page);
(get_links == NULL) --> crash
As one can see it depends on the accessibility. And it is enabled on my
box.
It can be reproduced with
gsettings set org.mate.interface accessibility true
(mate logout and login)
Why the enabled accessibility is not discovered by the gtk3 version is
another story. My question [1] was motivated by this.
[1] https://github.com/mate-desktop/atril/issues/171
|
|
closes https://github.com/mate-desktop/atril/issues/158
|
|
because backends manager frees that var already.
actually, adding ev_backends_manager_get_backends_dir to the public
API was still careless. backends manager and epub document jobs seem
to be in the different threads, and there's no mutex seen anywhere
around. luckily, what we have here is just a reading of a variable
that has been assigned only once (in backends_dir function), so it's
not as catastrophic as it would be if it was e.g. concurrent writing
without a mutex.
Closes https://github.com/mate-desktop/atril/pull/124
|
|
Thanks to tibbi <[email protected]> for spotting them.
|
|
|
|
|
|
|
|
|
|
I always thought all ePub documents had either a traditional ncx or an epub3 nav. Now as it turns out,
sometimes neither of these are present. Fixed.
|
|
Toc may include links with strings escaped for URI format. We needed to un-escape them.
|
|
|
|
|
|
|
|
The Mathjax files will be installed to $(backenddir)/epub/MathJax
This was as small as the install got.
|
|
I came across a document that didn't have an old style toc, and thus the all accomodating navsheet support.
Also fixed some mistakes here and there.
|
|
Tweaked the way we handle inverted colors so that documents with no "day" class tag fr their primary stylesheets can revert back to these stylesheets when prompted, the inverted colors run into problems on document reload, this needs to be fixed.
Other than that I removed the webkit flags and libs from shell/Makefile.am , they were there because at a very early stage of the project I had decided to use a webkit_web_view directly, then I ended up extending and using it in libview.
|
|
Added the capability to view and epub document with inverted colors, yet to test for documents where we write the stylesheet, although the code is there.
|
|
I noticed I had forgotten to move the webkit check outside the epub plugin, did so now, accordingly modified the module names.
|
|
|
|
I added the code to make it possible to build Atril with GTK3 and webkit2. Everything runs fine with both GTK3 and GTK2. The find module for epub was also tested and changed. Now I shall first attempt to fix some Glib errors, and the problem of the temporary directory not getting deleted, that arose when I stabilized the thumbnails.
|
|
I added the capability to search through documents. The search is quite buggy, and we'll be taking care of each bug one at a time.
|
|
The documents can finally be read alongside a TOC, I tested it with a variety of documents before this commit, so I presume it should work with all. Also fixed the part where I had screwed up PDF annotations owing to a wrong call. In the next commit, fully functional searching would be up, using HTML parser of libxml in combination with webkit.
Also some other minor changes.
|
|
..and other fixing other bugs that were present once the webview was added, like the escape key command etc. Will look to refactor the thumbnails into ev-web-view.c.
In the next commit I'll extend this search over the entire document.Also will incorporate document index(table of contents).
|
|
Fixed the backend epub_document_finalize function which was caused caja to crash when you opened the document properties dialog.
Fixed the ev_window_dispose and the webview's dispose and finalise functions, now the window closes without any glib-critical errors.
Also now it is possible to read epub documents, once you have changed pages at least once, I still have to figure out where I call load_uri at document load.
|
|
Properties dialog for epub documents, will some basic properties.
Also set toolbar and menu sensitivity for the actions available in epub, will add more(find) once I write the module. Also inverted colors needs to be done with CSS or the like.
|
|
|
|
Now other problems with webkit. After much fidgeting I was able to resolve the previous problems of threads. However, now there is a different webkit error.
|
|
Due to the no fixed guidelines on how content in an ePub file should be arranged, in many cases,in files with content in subdirectories could not be extracted as those cases were not covered. The new code should not leave any corner cases.
|
|
My last commit was supposed to have ev-web-view.c and ev-web-view.h however due to some reason I missed them last time, so here they are now. i am able to achieve thumbnails for my epub however these are of absurdly large size. Still struggling to get the webview done due to thread problems that I am encountering.
|
|
Earlier my approach was to replace the atril view directly with a webview. However as it turned out it was extremely difficult to accomplish much tasks without the document-model. So I created an Extension of the WebKitWebView class, EvWebView so that now we can manipulate the webview as desired. Also having a separate file really helps in terms of clarity.
Please note that there are many empty functions and TODO tags right now, I shall aim to fill these up once the display part is done, probably in this week.
I also added some code on the backend to draw thumbnails when with GTK+-3.0, although I have never tested a GTK+-3.0 build.With GTK+-2.0 you won't get any build errors, however epub backend won't work right now.
That being said, this commit is mostly because there was a lot of code that was lying in the local repository, and it was best to back it up as a failsafe.
I modified ev-window to accomodate this new data structure, and having an equivalent ev_web_view function for every ev_view function, I can achieve most functionality by filling those functions with Webkit modules.
Other than that on the backend
Other than that there were some minor changes to the code.
Although I did the above, currently I am not able to instantiate the EvWebView because of some class and object type definition errors, due to which I can't display the document.
|