From df1fce63dca7bd7ac85c720a357adba0f1b7108a Mon Sep 17 00:00:00 2001 From: rootavish Date: Wed, 23 Jul 2014 22:19:20 +0530 Subject: Added Zoom control, Window thubnail Added zoom-in and zoom out capabilities, also re-enabled window thumbnail which I had disabled previously when the thumbnails were not implemented. Still trying to get the document to display, need to make the right changes, also trying to stop the window from entering presentation view, but that does happen and needs to be fixed. --- libview/ev-web-view.c | 12 ++++++++++++ libview/ev-web-view.h | 4 ++++ shell/ev-window.c | 44 +++++++++++++++++++++++++++++++++----------- 3 files changed, 49 insertions(+), 11 deletions(-) diff --git a/libview/ev-web-view.c b/libview/ev-web-view.c index fbfbad02..aa31751d 100644 --- a/libview/ev-web-view.c +++ b/libview/ev-web-view.c @@ -364,4 +364,16 @@ void ev_web_view_select_all(EvWebView *webview) { webkit_web_view_select_all(WEBKIT_WEB_VIEW(webview)); +} + +gboolean +ev_web_view_zoom_in(EvWebView *webview) +{ + webkit_web_view_zoom_in(WEBKIT_WEB_VIEW(webview)); +} + +gboolean +ev_web_view_zoom_out(EvWebView *webview) +{ + webkit_web_view_zoom_out(WEBKIT_WEB_VIEW(webview)); } \ No newline at end of file diff --git a/libview/ev-web-view.h b/libview/ev-web-view.h index eaa2ef3f..ac957f5d 100644 --- a/libview/ev-web-view.h +++ b/libview/ev-web-view.h @@ -66,6 +66,10 @@ void ev_web_view_find_previous (EvWebView *webview); gboolean ev_web_view_get_has_selection (EvWebView *webview); void ev_web_view_select_all (EvWebView *webview); +/*Zoom control*/ +gboolean ev_web_view_zoom_in (EvWebView *webview); +gboolean ev_web_view_zoom_out (EvWebView *webview); + G_END_DECLS #endif /* __EV_WEB_VIEW_H__ */ diff --git a/shell/ev-window.c b/shell/ev-window.c index 9232cbb6..9b9a417d 100644 --- a/shell/ev-window.c +++ b/shell/ev-window.c @@ -933,7 +933,8 @@ static void web_view_selection_changed_cb(EvWebView *webview, EvWindow *window) { - + ev_window_set_action_sensitive (window,"EditCopy", + ev_web_view_get_has_selection(webview)); } static void @@ -1018,6 +1019,13 @@ static void update_document_mode (EvWindow *window, EvDocumentMode mode) { if (mode == EV_DOCUMENT_MODE_PRESENTATION) { + if (window->priv->document) { + if (window->priv->document->iswebdocument) { + ev_window_warning_message(window,_("Cannot enter presentation mode with ePub documents\ + use fullscreen mode instead.")); + return; + } + } ev_window_run_presentation (window); } else if (mode == EV_DOCUMENT_MODE_FULL_SCREEN) { @@ -1309,7 +1317,12 @@ setup_view_from_metadata (EvWindow *window) /* Presentation */ if (ev_metadata_get_boolean (window->priv->metadata, "presentation", &presentation)) { if (presentation) { - ev_window_run_presentation (window); + if (window->priv->document->iswebdocument == TRUE ) { + return; + } + else { + ev_window_run_presentation (window); + } } } } @@ -1394,9 +1407,8 @@ ev_window_setup_document (EvWindow *ev_window) GtkAction *action; ev_window->priv->setup_document_idle = 0; - if ( document->iswebdocument == FALSE ) { - ev_window_refresh_window_thumbnail (ev_window); - } + ev_window_refresh_window_thumbnail (ev_window); + ev_window_set_page_mode (ev_window, PAGE_MODE_DOCUMENT); ev_window_title_set_document (ev_window->priv->title, document); @@ -1491,7 +1503,7 @@ ev_window_set_document (EvWindow *ev_window, EvDocument *document) } else if ( EV_WINDOW_IS_PRESENTATION (ev_window) && document->iswebdocument == TRUE ) { ev_window_warning_message (ev_window, "%s", - _("Presentation mode is currently not supported for Web documents.")); + _("Presentation mode is not supported for ePub documents.")); } if (ev_window->priv->setup_document_idle > 0) @@ -4318,19 +4330,29 @@ static void ev_window_cmd_view_zoom_in (GtkAction *action, EvWindow *ev_window) { g_return_if_fail (EV_IS_WINDOW (ev_window)); - if ( ev_window->priv->document->iswebdocument == TRUE ) return ; + ev_document_model_set_sizing_mode (ev_window->priv->model, EV_SIZING_FREE); - ev_view_zoom_in (EV_VIEW (ev_window->priv->view)); + if (ev_window->priv->document->iswebdocument) { + ev_web_view_zoom_in(EV_WEB_VIEW(ev_window->priv->webview)); + } + else { + ev_view_zoom_in (EV_VIEW (ev_window->priv->view)); + } } static void ev_window_cmd_view_zoom_out (GtkAction *action, EvWindow *ev_window) { g_return_if_fail (EV_IS_WINDOW (ev_window)); - if ( ev_window->priv->document->iswebdocument == TRUE ) return ; - + ev_document_model_set_sizing_mode (ev_window->priv->model, EV_SIZING_FREE); - ev_view_zoom_out (EV_VIEW (ev_window->priv->view)); + + if ( ev_window->priv->document->iswebdocument) { + ev_web_view_zoom_out(EV_WEB_VIEW(ev_window->priv->webview)); + } + else { + ev_view_zoom_out (EV_VIEW (ev_window->priv->view)); + } } static void -- cgit v1.2.1