- if (ev_window->priv->password_uri) {
- g_free (ev_window->priv->password_uri);
- ev_window->priv->password_uri = NULL;
- }
-
- /* Success! */
- if (job->error == NULL) {
- if (ev_window->priv->document)
- g_object_unref (ev_window->priv->document);
- ev_window->priv->document = g_object_ref (document);
- ev_window_setup_document (ev_window);
-
- ev_window_add_recent (ev_window, ev_window->priv->uri);
- ev_window_clear_jobs (ev_window);
-
- return;
- }
-
- if (job->error->domain == EV_DOCUMENT_ERROR &&
- job->error->code == EV_DOCUMENT_ERROR_ENCRYPTED) {
- gchar *base_name, *file_name;
-
- ev_window->priv->password_document = g_object_ref (document);
- ev_window->priv->password_uri = g_strdup (job->uri);
-
- file_name = gnome_vfs_format_uri_for_display (job->uri);
- base_name = g_path_get_basename (file_name);
- ev_password_view_set_file_name (EV_PASSWORD_VIEW (ev_window->priv->password_view),
- base_name);
- g_free (file_name);
- g_free (base_name);
- ev_window_set_page_mode (ev_window, PAGE_MODE_PASSWORD);
-
- ev_window_popup_password_dialog (ev_window);
- } else {
- unable_to_load (ev_window, job->error->message);
- }
-
- return;
-}
-
-static void
-ev_window_xfer_job_cb (EvJobXfer *job,
- gpointer data)
-{
- EvWindow *ev_window = EV_WINDOW (data);
-
-
-
- if (job->error != NULL) {
- unable_to_load (ev_window, job->error->message);
- ev_window_clear_jobs (ev_window);
- } else {
- char *uri;
-
- EvDocument *document = g_object_ref (EV_JOB (job)->document);
-
- if (job->local_uri) {
- ev_window->priv->local_uri = g_strdup (job->local_uri);
- uri = ev_window->priv->local_uri;
- } else {
- ev_window->priv->local_uri = NULL;
- uri = ev_window->priv->uri;
- }
-
- ev_window_clear_jobs (ev_window);
-
- ev_window->priv->load_job = ev_job_load_new (document, uri);
- g_signal_connect (ev_window->priv->load_job,
- "finished",
- G_CALLBACK (ev_window_load_job_cb),
- ev_window);
- ev_job_queue_add_job (ev_window->priv->load_job, EV_JOB_PRIORITY_HIGH);
- g_object_unref (document);
- }
-}
-
-static void
-update_sidebar_visibility (EvWindow *window)
-{
- char *uri = window->priv->uri;
- GValue sidebar_visibility = { 0, };
-
- if (ev_metadata_manager_get (uri, "sidebar_visibility", &sidebar_visibility)) {
- set_widget_visibility (window->priv->sidebar,
- g_value_get_boolean (&sidebar_visibility));
- }
-}
-
-static void
-setup_view_from_metadata (EvWindow *window)
-{
- EvView *view = EV_VIEW (window->priv->view);
- char *uri = window->priv->uri;
- GEnumValue *enum_value;
- GValue width = { 0, };
- GValue height = { 0, };
- GValue maximized = { 0, };
- GValue x = { 0, };
- GValue y = { 0, };
- GValue sizing_mode = { 0, };
- GValue zoom = { 0, };
- GValue continuous = { 0, };
- GValue dual_page = { 0, };
- GValue presentation = { 0, };
- GValue fullscreen = { 0, };
- GValue rotation = { 0, };
- GValue sidebar_size = { 0, };
- GValue sidebar_page = { 0, };
-
- /* Window size */
- if (!GTK_WIDGET_VISIBLE (window)) {
- gboolean restore_size = TRUE;
-
- if (ev_metadata_manager_get (uri, "window_maximized", &maximized)) {
- if (g_value_get_boolean (&maximized)) {
- gtk_window_maximize (GTK_WINDOW (window));
- restore_size = FALSE;
- }
- }
-
- if (restore_size &&
- ev_metadata_manager_get (uri, "window_x", &x) &&
- ev_metadata_manager_get (uri, "window_y", &y) &&
- ev_metadata_manager_get (uri, "window_width", &width) &&
- ev_metadata_manager_get (uri, "window_height", &height)) {
- gtk_window_set_default_size (GTK_WINDOW (window),
- g_value_get_int (&width),
- g_value_get_int (&height));
- gtk_window_move (GTK_WINDOW (window), g_value_get_int (&x),
- g_value_get_int (&y));
- }
- }
-
- /* Sizing mode */
- if (ev_metadata_manager_get (uri, "sizing_mode", &sizing_mode)) {
- enum_value = g_enum_get_value_by_nick
- (EV_SIZING_MODE_CLASS, g_value_get_string (&sizing_mode));
- g_value_unset (&sizing_mode);
- ev_view_set_sizing_mode (view, enum_value->value);
- }
-
- /* Zoom */
- if (ev_metadata_manager_get (uri, "zoom", &zoom) &&
- ev_view_get_sizing_mode (view) == EV_SIZING_FREE) {
- ev_view_set_zoom (view, g_value_get_double (&zoom), FALSE);
- }
-
- /* Continuous */
- if (ev_metadata_manager_get (uri, "continuous", &continuous)) {
- ev_view_set_continuous (view, g_value_get_boolean (&continuous));
- }
-
- /* Dual page */
- if (ev_metadata_manager_get (uri, "dual-page", &dual_page)) {
- ev_view_set_dual_page (view, g_value_get_boolean (&dual_page));
- }
-
- /* Presentation */
- if (ev_metadata_manager_get (uri, "presentation", &presentation)) {
- if (g_value_get_boolean (&presentation)) {
- ev_window_run_presentation (window);
- }
- }
-
- /* Fullscreen */
- if (ev_metadata_manager_get (uri, "fullscreen", &fullscreen)) {
- if (g_value_get_boolean (&fullscreen)) {
- ev_window_run_fullscreen (window);
- }
- }
-
- /* Rotation */
- if (ev_metadata_manager_get (uri, "rotation", &rotation)) {
- if (g_value_get_int (&rotation)) {
- switch (g_value_get_int (&rotation)) {
- case 90:
- ev_view_set_rotation (view, 90);
- break;
- case 180:
- ev_view_set_rotation (view, 180);
- break;
- case 270:
- ev_view_set_rotation (view, 270);
- break;
- default:
- break;
- }
- }
- }