static void on_key_import_keyring (GtkAction* action, SeahorseCatalog* self) { GCancellable *cancellable; SeahorsePgpBackend *backend; SeahorseGpgmeKeyring *keyring; GList* objects; g_return_if_fail (SEAHORSE_IS_CATALOG (self)); g_return_if_fail (GTK_IS_ACTION (action)); objects = seahorse_catalog_get_selected_objects (self); objects = objects_prune_non_exportable (objects); /* No objects, nothing to do */ if (objects == NULL) return; cancellable = g_cancellable_new (); backend = seahorse_pgp_backend_get (); keyring = seahorse_pgp_backend_get_default_keyring (NULL); seahorse_pgp_backend_transfer_async (backend, objects, SEAHORSE_PLACE (keyring), cancellable, on_import_complete, g_object_ref (self)); seahorse_progress_show (cancellable, _ ("Importing keys from key servers"), TRUE); g_object_unref (cancellable); g_list_free (objects); }
static void seahorse_pkcs11_generate_response (GtkDialog *dialog, gint response_id) { SeahorsePkcs11Generate *self = SEAHORSE_PKCS11_GENERATE (dialog); GTlsInteraction *interaction; GtkWindow *parent; if (response_id == GTK_RESPONSE_OK) { g_return_if_fail (self->token); prepare_generate (self); parent = gtk_window_get_transient_for (GTK_WINDOW (self)); interaction = seahorse_interaction_new (parent); gck_session_open_async (seahorse_pkcs11_token_get_slot (self->token), GCK_SESSION_READ_WRITE | GCK_SESSION_LOGIN_USER, interaction, self->cancellable, on_generate_open_session, g_object_ref (self)); seahorse_progress_show (self->cancellable, _("Generating key"), FALSE); g_object_unref (interaction); } gtk_widget_hide (GTK_WIDGET (dialog)); }
static gboolean progress_show (SeahorseOperation *op) { if (progress_visible || progress_block) return FALSE; seahorse_progress_show (op, progress_title, FALSE); progress_visible = TRUE; /* Don't fire this again */ return FALSE; }
static void upload_keys (SeahorseWidget *swidget) { GtkWidget *widget; const gchar *cuser, *chost; gchar *user, *host, *port; GList *keys; GCancellable *cancellable; keys = (GList*)g_object_steal_data (G_OBJECT (swidget), "upload-keys"); if (keys == NULL) return; widget = GTK_WIDGET (seahorse_widget_get_widget (swidget, "user-label")); cuser = gtk_entry_get_text (GTK_ENTRY (widget)); g_return_if_fail (cuser && g_utf8_validate (cuser, -1, NULL)); widget = GTK_WIDGET (seahorse_widget_get_widget (swidget, "host-label")); chost = (gchar*)gtk_entry_get_text (GTK_ENTRY (widget)); g_return_if_fail (chost && g_utf8_validate (chost, -1, NULL)); user = g_strdup (cuser); host = g_strdup (chost); /* Port is anything past a colon */ port = strchr (host, ':'); if (port) { *port = 0; port++; /* Trim and check */ seahorse_util_string_trim_whitespace (port); if (!port[0]) port = NULL; } seahorse_util_string_trim_whitespace (host); seahorse_util_string_trim_whitespace (user); cancellable = g_cancellable_new (); /* Start an upload process */ seahorse_ssh_op_upload_async (SEAHORSE_SSH_SOURCE (seahorse_object_get_place (keys->data)), keys, user, host, port, cancellable, on_upload_complete, NULL); g_free (host); g_free (user); seahorse_progress_show (cancellable, _("Configuring Secure Shell Keys..."), FALSE); g_object_unref (cancellable); }