From 5028995e3725c264b2487a1101c22e941b04c8fd Mon Sep 17 00:00:00 2001 From: rootavish Date: Mon, 23 Jun 2014 23:42:11 +0530 Subject: Functions for document info and EvPage,other changes Summary: I added functions in the backend to get document info. Added a member to evdocument to deal with web documents(ePub) on the frontend. Added a webview to the window, that shall replace the Atril view. Due to removing the view from the main Atril window, I have given rise to various GTK-critical errors in response to signals, will be sure to suppress these in the next commit. Worked towards overall blending in of ePub documents. --- libdocument/ev-document.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'libdocument/ev-document.h') diff --git a/libdocument/ev-document.h b/libdocument/ev-document.h index d10d261a..940c7c80 100644 --- a/libdocument/ev-document.h +++ b/libdocument/ev-document.h @@ -85,6 +85,11 @@ struct _EvDocument GObject base; EvDocumentPrivate *priv; + /* + * Since we can only access the members of this structure from the window frontend, + * we need a flag to detemine whether to replace the atril-view with a web-view. + */ + gboolean iswebdocument; }; struct _EvDocumentClass -- cgit v1.2.1 From e10bf9631652b8533b18a14285db89bd14b4c42e Mon Sep 17 00:00:00 2001 From: rootavish Date: Tue, 1 Jul 2014 20:29:05 +0530 Subject: More changes to accomodate webview - Modified configure.ac to use both webkit2 and webkit1 based on gtk version - Modified Automake file in help/reference/shell/Makefile.am to compile with gtk-doc - Modified ev-document-model to support epub-documents. - Modified ev-window for epub documents. - Modified jobs so epub pages are not rendered. - Modified ev-document, although I'm not sure if this is necessary. Still need to figure out where the web view load uri has to be called to actually load pages, from there the puzzle would be much simpler. Hope to get this done in the week, and pick up the pace now that only six weeks of coding remain before final evaluation. --- libdocument/ev-document.h | 1 + 1 file changed, 1 insertion(+) (limited to 'libdocument/ev-document.h') diff --git a/libdocument/ev-document.h b/libdocument/ev-document.h index 940c7c80..578b0937 100644 --- a/libdocument/ev-document.h +++ b/libdocument/ev-document.h @@ -114,6 +114,7 @@ struct _EvDocumentClass EvPage *page); cairo_surface_t * (* render) (EvDocument *document, EvRenderContext *rc); +/* void * (*webkit_render) (EvDocument *document);*/ EvDocumentInfo * (* get_info) (EvDocument *document); gboolean (* get_backend_info)(EvDocument *document, EvDocumentBackendInfo *info); -- cgit v1.2.1 From df43418e209ae9c98844185f789c63769ae9b3a2 Mon Sep 17 00:00:00 2001 From: rootavish Date: Mon, 7 Jul 2014 18:36:55 +0530 Subject: Refactored code, created a new EvWebView type 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. --- libdocument/ev-document.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libdocument/ev-document.h') diff --git a/libdocument/ev-document.h b/libdocument/ev-document.h index 578b0937..fe2fd628 100644 --- a/libdocument/ev-document.h +++ b/libdocument/ev-document.h @@ -85,7 +85,7 @@ struct _EvDocument GObject base; EvDocumentPrivate *priv; - /* + /* * Since we can only access the members of this structure from the window frontend, * we need a flag to detemine whether to replace the atril-view with a web-view. */ -- cgit v1.2.1 From 5f3f572777cfcb64a92a4671fb2aff5faa5cefa4 Mon Sep 17 00:00:00 2001 From: rootavish Date: Sun, 3 Aug 2014 12:23:21 +0530 Subject: Table of contents(index) for epub 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. --- libdocument/ev-document.h | 1 - 1 file changed, 1 deletion(-) (limited to 'libdocument/ev-document.h') diff --git a/libdocument/ev-document.h b/libdocument/ev-document.h index fe2fd628..24e31912 100644 --- a/libdocument/ev-document.h +++ b/libdocument/ev-document.h @@ -114,7 +114,6 @@ struct _EvDocumentClass EvPage *page); cairo_surface_t * (* render) (EvDocument *document, EvRenderContext *rc); -/* void * (*webkit_render) (EvDocument *document);*/ EvDocumentInfo * (* get_info) (EvDocument *document); gboolean (* get_backend_info)(EvDocument *document, EvDocumentBackendInfo *info); -- cgit v1.2.1 From 700637ca1dd675ce18f2e9e56387dab86020a623 Mon Sep 17 00:00:00 2001 From: rootavish Date: Thu, 14 Aug 2014 07:41:35 +0530 Subject: Inverted colors(night) viewing mode for ePub 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. --- libdocument/ev-document.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'libdocument/ev-document.h') diff --git a/libdocument/ev-document.h b/libdocument/ev-document.h index 24e31912..46a0971c 100644 --- a/libdocument/ev-document.h +++ b/libdocument/ev-document.h @@ -118,6 +118,9 @@ struct _EvDocumentClass gboolean (* get_backend_info)(EvDocument *document, EvDocumentBackendInfo *info); gboolean (* support_synctex) (EvDocument *document); + + void (* toggle_night_mode) (EvDocument *document,gboolean night); + void (*check_add_night_sheet)(EvDocument *document); }; GType ev_document_get_type (void) G_GNUC_CONST; @@ -184,6 +187,8 @@ EvMapping *ev_document_synctex_forward_search gint ev_rect_cmp (EvRectangle *a, EvRectangle *b); +void ev_document_toggle_night_mode (EvDocument *document,gboolean night); +void ev_document_check_add_night_sheet (EvDocument *document); #define EV_TYPE_RECTANGLE (ev_rectangle_get_type ()) struct _EvRectangle -- cgit v1.2.1