Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorCarlos Garcia Campos <carlosgc@gnome.org>2009-01-18 10:28:37 (GMT)
committer Carlos Garcia Campos <carlosgc@src.gnome.org>2009-01-18 10:28:37 (GMT)
commit51e1ae36121928f84940b8e8dcb317f87157933b (patch)
treee12ff92c6a9a4fcd11af390bfbc9cd58504ea52b /shell
parenteb91327d993b9a0faa6e15c8ab93183cfed169eb (diff)
Remove dest, mode and search_string from EvJobLoad since they are not
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
Diffstat (limited to 'shell')
-rw-r--r--shell/ev-jobs.c19
-rw-r--r--shell/ev-jobs.h11
-rw-r--r--shell/ev-window.c46
3 files changed, 40 insertions, 36 deletions
diff --git a/shell/ev-jobs.c b/shell/ev-jobs.c
index a952243..102cd90 100644
--- a/shell/ev-jobs.c
+++ b/shell/ev-jobs.c
@@ -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);
}
diff --git a/shell/ev-jobs.h b/shell/ev-jobs.h
index 27b40a1..5915a28 100644
--- a/shell/ev-jobs.h
+++ b/shell/ev-jobs.h
@@ -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,
diff --git a/shell/ev-window.c b/shell/ev-window.c
index eb606ef..abfcae2 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -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;