Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/ev-window.c
diff options
context:
space:
mode:
authorNickolay V. Shmyrev <nshmyrev@src.gnome.org>2005-09-13 13:41:17 (GMT)
committer Nickolay V. Shmyrev <nshmyrev@src.gnome.org>2005-09-13 13:41:17 (GMT)
commite53e8a7ba14b5156d41e84d56cab85cbe195e344 (patch)
treec50560648cc4ca17bff5d2bb7f1e2f9c3022ba3d /shell/ev-window.c
parentf77953cbbce38e809d289c8311dc364ed8525b20 (diff)
Support for gnome-keyring for encrypted PDF's.
* configure.ac: * data/evince-password.glade: * shell/ev-password.c: (ev_password_dialog_set_property), (ev_password_dialog_finalize), (ev_password_dialog_class_init), (ev_password_dialog_init), (ev_password_set_bad_password_label), (ev_password_dialog_entry_changed_cb), (ev_password_dialog_entry_activated_cb), (ev_password_dialog_save_password), (ev_password_keyring_found_cb), (ev_password_search_in_keyring), (ev_password_dialog_get_password), (ev_password_dialog_set_bad_pass): * shell/ev-password.h: * shell/ev-window.c: (password_dialog_response), (ev_window_popup_password_dialog): Support for gnome-keyring for encrypted PDF's.
Diffstat (limited to 'shell/ev-window.c')
-rw-r--r--shell/ev-window.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/shell/ev-window.c b/shell/ev-window.c
index 0b4f919..ad27679 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -710,7 +710,7 @@ password_dialog_response (GtkWidget *password_dialog,
EvDocument *document;
gchar *uri;
- password = ev_password_dialog_get_password (password_dialog);
+ password = ev_password_dialog_get_password (EV_PASSWORD_DIALOG (password_dialog));
if (password) {
ev_document_doc_mutex_lock ();
ev_document_security_set_password (EV_DOCUMENT_SECURITY (ev_window->priv->password_document),
@@ -719,6 +719,8 @@ password_dialog_response (GtkWidget *password_dialog,
}
g_free (password);
+ ev_password_dialog_save_password (EV_PASSWORD_DIALOG (password_dialog));
+
document = ev_window->priv->password_document;
uri = ev_window->priv->password_uri;
@@ -753,14 +755,9 @@ ev_window_popup_password_dialog (EvWindow *ev_window)
update_window_title (ev_window->priv->password_document, NULL, ev_window);
if (ev_window->priv->password_dialog == NULL) {
- gchar *base_name, *file_name;
-
- file_name = gnome_vfs_format_uri_for_display (ev_window->priv->password_uri);
- base_name = g_path_get_basename (file_name);
ev_window->priv->password_dialog =
- ev_password_dialog_new (GTK_WIDGET (ev_window), base_name);
- g_free (base_name);
- g_free (file_name);
+ g_object_new (EV_TYPE_PASSWORD_DIALOG, "uri", ev_window->priv->password_uri, NULL);
+ gtk_window_set_transient_for (GTK_WINDOW (ev_window->priv->password_dialog), GTK_WINDOW (ev_window));
g_object_add_weak_pointer (G_OBJECT (ev_window->priv->password_dialog),
(gpointer *) &(ev_window->priv->password_dialog));
@@ -770,7 +767,7 @@ ev_window_popup_password_dialog (EvWindow *ev_window)
ev_window);
gtk_widget_show (ev_window->priv->password_dialog);
} else {
- ev_password_dialog_set_bad_pass (ev_window->priv->password_dialog);
+ ev_password_dialog_set_bad_pass (EV_PASSWORD_DIALOG (ev_window->priv->password_dialog));
}
}