seahorse r2745 - in trunk: . gkr
- From: nnielsen svn gnome org
- To: svn-commits-list gnome org
- Subject: seahorse r2745 - in trunk: . gkr
- Date: Mon, 2 Feb 2009 03:01:48 +0000 (UTC)
Author: nnielsen
Date: Mon Feb 2 03:01:47 2009
New Revision: 2745
URL: http://svn.gnome.org/viewvc/seahorse?rev=2745&view=rev
Log:
Add menu item to make keyring default.
Modified:
trunk/ChangeLog
trunk/gkr/seahorse-gkr-keyring-commands.c
Modified: trunk/gkr/seahorse-gkr-keyring-commands.c
==============================================================================
--- trunk/gkr/seahorse-gkr-keyring-commands.c (original)
+++ trunk/gkr/seahorse-gkr-keyring-commands.c Mon Feb 2 03:01:47 2009
@@ -37,6 +37,7 @@
struct _SeahorseGkrKeyringCommandsPrivate {
GtkAction *action_lock;
GtkAction *action_unlock;
+ GtkAction *action_default;
};
G_DEFINE_TYPE (SeahorseGkrKeyringCommands, seahorse_gkr_keyring_commands, SEAHORSE_TYPE_COMMANDS);
@@ -44,6 +45,7 @@
static const char* UI_KEYRING = ""\
"<ui>"\
" <popup name='KeyPopup'>"\
+" <menuitem action='keyring-default'/>"\
" <menuitem action='keyring-lock'/>"\
" <menuitem action='keyring-unlock'/>"\
" <menuitem action='keyring-password'/>"\
@@ -145,6 +147,42 @@
}
static void
+on_set_default_keyring_done (GnomeKeyringResult result, gpointer user_data)
+{
+ SeahorseView *view;
+
+ if (result != GNOME_KEYRING_RESULT_OK &&
+ result != GNOME_KEYRING_RESULT_DENIED &&
+ result != GNOME_KEYRING_RESULT_CANCELLED) {
+ view = seahorse_commands_get_view (SEAHORSE_COMMANDS (user_data));
+ seahorse_util_show_error (GTK_WIDGET (seahorse_view_get_window (view)),
+ _("Couldn't set default keyring"),
+ gnome_keyring_result_to_message (result));
+ }
+}
+
+static void
+on_keyring_default (GtkAction *action, SeahorseGkrKeyringCommands *self)
+{
+ SeahorseView *view;
+ GList *keys;
+
+ g_return_if_fail (SEAHORSE_IS_GKR_KEYRING_COMMANDS (self));
+ g_return_if_fail (GTK_IS_ACTION (action));
+
+ view = seahorse_commands_get_view (SEAHORSE_COMMANDS (self));
+ keys = seahorse_view_get_selected_matching (view, &keyring_predicate);
+
+ if (keys) {
+ gnome_keyring_set_default_keyring (seahorse_gkr_keyring_get_name (keys->data),
+ on_set_default_keyring_done, g_object_ref (self), g_object_unref);
+ }
+
+ g_list_free (keys);
+
+}
+
+static void
on_change_password_done (GnomeKeyringResult result, gpointer user_data)
{
SeahorseView *view;
@@ -183,11 +221,13 @@
}
static const GtkActionEntry ENTRIES_KEYRING[] = {
- { "keyring-lock", NULL, N_ ("Lock"), "",
+ { "keyring-lock", NULL, N_("_Lock"), "",
N_("Lock the password storage keyring so a master password is required to unlock it."), G_CALLBACK (on_keyring_lock) },
- { "keyring-unlock", NULL, N_ ("Unlock"), "",
+ { "keyring-unlock", NULL, N_("_Unlock"), "",
N_("Unlock the password storage keyring with a master password so it is available for use."), G_CALLBACK (on_keyring_unlock) },
- { "keyring-password", NULL, N_ ("Change Password"), "",
+ { "keyring-default", NULL, N_("_Set as default"), "",
+ N_("Applications usually store new passwords in the default keyring."), G_CALLBACK (on_keyring_default) },
+ { "keyring-password", NULL, N_("Change _Password"), "",
N_("Change the unlock password of the password storage keyring"), G_CALLBACK (on_keyring_password) }
};
@@ -197,6 +237,7 @@
GnomeKeyringInfo *info;
gboolean locked = FALSE;
gboolean unlocked = FALSE;
+ gboolean can_default = FALSE;
GList *keys, *l;
g_return_if_fail (SEAHORSE_IS_VIEW (view));
@@ -210,6 +251,8 @@
locked = TRUE;
else
unlocked = TRUE;
+ if (!seahorse_gkr_keyring_get_is_default (l->data))
+ can_default = TRUE;
}
}
@@ -217,6 +260,7 @@
gtk_action_set_sensitive (self->pv->action_lock, unlocked);
gtk_action_set_sensitive (self->pv->action_unlock, locked);
+ gtk_action_set_sensitive (self->pv->action_default, can_default);
}
/* -----------------------------------------------------------------------------
@@ -272,6 +316,7 @@
seahorse_view_register_ui (view, &keyring_predicate, UI_KEYRING, actions);
self->pv->action_lock = g_object_ref (gtk_action_group_get_action (actions, "keyring-lock"));
self->pv->action_unlock = g_object_ref (gtk_action_group_get_action (actions, "keyring-unlock"));
+ self->pv->action_default = g_object_ref (gtk_action_group_get_action (actions, "keyring-default"));
g_object_unref (actions);
/* Watch and wait for selection changes and diddle lock/unlock */
@@ -297,6 +342,9 @@
g_object_unref (self->pv->action_unlock);
self->pv->action_unlock = NULL;
+ g_object_unref (self->pv->action_default);
+ self->pv->action_default = NULL;
+
G_OBJECT_CLASS (seahorse_gkr_keyring_commands_parent_class)->finalize (obj);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]