]> www.fi.muni.cz Git - evince.git/commitdiff
Remove dest, mode and search_string from EvJobLoad since they are not
authorCarlos Garcia Campos <carlosgc@gnome.org>
Sun, 18 Jan 2009 10:28:37 +0000 (10:28 +0000)
committerCarlos Garcia Campos <carlosgc@src.gnome.org>
Sun, 18 Jan 2009 10:28:37 +0000 (10:28 +0000)
2009-01-18  Carlos Garcia Campos  <carlosgc@gnome.org>

* shell/ev-jobs.[ch]: (ev_job_load_dispose), (ev_job_load_new):
* shell/ev-window.c: (ev_window_load_job_cb),
(ev_window_load_job_cb), (ev_window_open_uri),
(ev_window_reload_local), (ev_window_dispose):

Remove dest, mode and search_string from EvJobLoad since they are
not really needed by the job, but for the window.

svn path=/trunk/; revision=3347

ChangeLog
shell/ev-jobs.c
shell/ev-jobs.h
shell/ev-window.c

index 319aefa3b130e05700bdad29cf98c48eced17755..ae7ec15dfe669839ba0cd0d82c21a872ec201143 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2009-01-18  Carlos Garcia Campos  <carlosgc@gnome.org>
+
+       * shell/ev-jobs.[ch]: (ev_job_load_dispose), (ev_job_load_new):
+       * shell/ev-window.c: (ev_window_load_job_cb),
+       (ev_window_load_job_cb), (ev_window_open_uri),
+       (ev_window_reload_local), (ev_window_dispose):
+
+       Remove dest, mode and search_string from EvJobLoad since they are
+       not really needed by the job, but for the window.
+       
 2009-01-17  Carlos Garcia Campos  <carlosgc@gnome.org>
 
        * shell/ev-view.c: (ev_view_drag_data_received),
index a952243e8ede4405e1e3cce3d595825be54b8a2f..102cd9083d83e982b8f8eab541d531e69b1941a3 100644 (file)
@@ -803,16 +803,6 @@ ev_job_load_dispose (GObject *object)
                job->password = NULL;
        }
 
-       if (job->dest) {
-               g_object_unref (job->dest);
-               job->dest = NULL;
-       }
-
-       if (job->search_string) {
-               g_free (job->search_string);
-               job->search_string = NULL;
-       }
-
        (* G_OBJECT_CLASS (ev_job_load_parent_class)->dispose) (object);
 }
 
@@ -871,21 +861,14 @@ ev_job_load_class_init (EvJobLoadClass *class)
 }
 
 EvJob *
-ev_job_load_new (const gchar    *uri,
-                EvLinkDest     *dest,
-                EvWindowRunMode mode,
-                const gchar    *search_string)
+ev_job_load_new (const gchar *uri)
 {
        EvJobLoad *job;
 
        ev_debug_message (DEBUG_JOBS, "%s", uri);
        
        job = g_object_new (EV_TYPE_JOB_LOAD, NULL);
-
        job->uri = g_strdup (uri);
-       job->dest = dest ? g_object_ref (dest) : NULL;
-       job->mode = mode;
-       job->search_string = search_string ? g_strdup (search_string) : NULL;
 
        return EV_JOB (job);
 }
index 27b40a1c102a31f83f4d629c44a632afab31bfe9..5915a28ab1d0e8f013e83f67034fe9068fb9cea8 100644 (file)
@@ -27,7 +27,6 @@
 #include "ev-document.h"
 #include "ev-selection.h"
 #include "ev-render-context.h"
-#include "ev-window.h"
 
 G_BEGIN_DECLS
 
@@ -259,10 +258,7 @@ struct _EvJobFontsClass
 struct _EvJobLoad
 {
        EvJob parent;
-       
-       EvLinkDest *dest;
-       EvWindowRunMode mode;
-       gchar *search_string;
+
        gchar *uri;
        gchar *password;
 };
@@ -385,10 +381,7 @@ EvJob             *ev_job_fonts_new          (EvDocument      *document);
 
 /* EvJobLoad */
 GType          ev_job_load_get_type      (void) G_GNUC_CONST;
-EvJob         *ev_job_load_new           (const gchar     *uri,
-                                          EvLinkDest      *dest,
-                                          EvWindowRunMode  mode,
-                                          const gchar     *search_string);
+EvJob         *ev_job_load_new           (const gchar     *uri);
 void            ev_job_load_set_uri       (EvJobLoad       *load,
                                           const gchar     *uri);
 void            ev_job_load_set_password  (EvJobLoad       *job,
index eb606ef9c1779abffcd827d65927bd5168102c50..abfcae25d6824c2094d4a15052a0245b9328e8dd 100644 (file)
@@ -181,7 +181,6 @@ struct _EvWindowPrivate {
        char *uri;
        glong uri_mtime;
        char *local_uri;
-       EvLinkDest *dest;
        gboolean unlink_temp_file;
        gboolean in_reload;
        EvFileMonitor *monitor;
@@ -193,6 +192,11 @@ struct _EvWindowPrivate {
        EvWindowPageMode page_mode;
        EvWindowTitle *title;
 
+       /* Load params */
+       EvLinkDest       *dest;
+       gchar            *search_string;
+       EvWindowRunMode   window_mode;
+
        EvJob            *load_job;
        EvJob            *reload_job;
        EvJob            *thumbnail_job;
@@ -1372,7 +1376,7 @@ ev_window_load_job_cb (EvJob *job,
        if (!ev_job_is_failed (job)) {
                ev_window_set_document (ev_window, document);
                
-               if (job_load->mode != EV_WINDOW_MODE_PREVIEW) {
+               if (ev_window->priv->window_mode != EV_WINDOW_MODE_PREVIEW) {
                        setup_view_from_metadata (ev_window);
                }
 
@@ -1392,17 +1396,23 @@ ev_window_load_job_cb (EvJob *job,
                                                  flags);
                }
 
-               if (job_load->dest) {
+               if (ev_window->priv->dest) {
                        EvLink *link;
                        EvLinkAction *link_action;
        
-                       link_action = ev_link_action_new_dest (g_object_ref (job_load->dest));
+                       link_action = ev_link_action_new_dest (ev_window->priv->dest);
                        link = ev_link_new (NULL, link_action);
                        ev_view_handle_link (EV_VIEW (ev_window->priv->view), link);
                        g_object_unref (link);
+
+                       /* Already unrefed by ev_link_action
+                        * FIXME: link action should inc dest ref counting
+                        * or not unref it at all
+                        */
+                       ev_window->priv->dest = NULL;
                }
 
-               switch (job_load->mode) {
+               switch (ev_window->priv->window_mode) {
                        case EV_WINDOW_MODE_FULLSCREEN:
                                ev_window_run_fullscreen (ev_window);
                                break;
@@ -1416,12 +1426,15 @@ ev_window_load_job_cb (EvJob *job,
                                break;
                }
 
-               if (job_load->search_string && EV_IS_DOCUMENT_FIND (document)) {
+               if (ev_window->priv->search_string && EV_IS_DOCUMENT_FIND (document)) {
                        ev_window_cmd_edit_find (NULL, ev_window);
                        egg_find_bar_set_search_string (EGG_FIND_BAR (ev_window->priv->find_bar),
-                                                       job_load->search_string);
+                                                       ev_window->priv->search_string);
                }
 
+               g_free (ev_window->priv->search_string);
+               ev_window->priv->search_string = NULL;
+
                /* Create a monitor for the document */
                ev_window->priv->monitor = ev_file_monitor_new (ev_window->priv->uri);
                g_signal_connect_swapped (G_OBJECT (ev_window->priv->monitor), "changed",
@@ -1807,6 +1820,7 @@ ev_window_open_uri (EvWindow       *ev_window,
        ev_view_set_loading (EV_VIEW (ev_window->priv->view), TRUE);
 
        ev_window->priv->unlink_temp_file = unlink_temp_file;
+       ev_window->priv->window_mode = mode;
 
        if (mode == EV_WINDOW_MODE_PREVIEW) {
                ev_window->priv->print_settings_file = print_settings ? 
@@ -1817,9 +1831,18 @@ ev_window_open_uri (EvWindow       *ev_window,
                g_free (ev_window->priv->uri);
        ev_window->priv->uri = g_strdup (uri);
 
+       if (ev_window->priv->search_string)
+               g_free (ev_window->priv->search_string);
+       ev_window->priv->search_string = search_string ?
+               g_strdup (search_string) : NULL;
+
+       if (ev_window->priv->dest)
+               g_object_unref (ev_window->priv->dest);
+       ev_window->priv->dest = dest ? g_object_ref (dest) : NULL;
+
        setup_size_from_metadata (ev_window);
        
-       ev_window->priv->load_job = ev_job_load_new (uri, dest, mode, search_string);
+       ev_window->priv->load_job = ev_job_load_new (uri);
        g_signal_connect (ev_window->priv->load_job,
                          "finished",
                          G_CALLBACK (ev_window_load_job_cb),
@@ -1840,7 +1863,7 @@ ev_window_reload_local (EvWindow *ev_window)
        const gchar *uri;
        
        uri = ev_window->priv->local_uri ? ev_window->priv->local_uri : ev_window->priv->uri;
-       ev_window->priv->reload_job = ev_job_load_new (uri, NULL, 0, NULL);
+       ev_window->priv->reload_job = ev_job_load_new (uri);
        g_signal_connect (ev_window->priv->reload_job, "finished",
                          G_CALLBACK (ev_window_reload_job_cb),
                          ev_window);
@@ -4898,6 +4921,11 @@ ev_window_dispose (GObject *object)
                priv->uri = NULL;
        }
 
+       if (priv->search_string) {
+               g_free (priv->search_string);
+               priv->search_string = NULL;
+       }
+       
        if (priv->dest) {
                g_object_unref (priv->dest);
                priv->dest = NULL;