diff options
| author | Michael Biebl <biebl@debian.org> | 2020-10-05 22:27:18 +0200 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2020-10-05 22:27:18 +0200 |
| commit | aafc1dbe4712c86189bbc1d4d54ad8cb4c69be7e (patch) | |
| tree | a2a9bb4d007339a0b1304540388230ccedac32bd /clients/tui/nmt-password-dialog.c | |
| parent | e7b44ef4c80907346ec7492a09c45277459924fc (diff) | |
New upstream version 1.27.90 upstream/1.27.90
Diffstat (limited to 'clients/tui/nmt-password-dialog.c')
| -rw-r--r-- | clients/tui/nmt-password-dialog.c | 429 |
1 files changed, 217 insertions, 212 deletions
diff --git a/clients/tui/nmt-password-dialog.c b/clients/tui/nmt-password-dialog.c index 979a5c68..45a505a4 100644 --- a/clients/tui/nmt-password-dialog.c +++ b/clients/tui/nmt-password-dialog.c @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: GPL-2.0+ +/* SPDX-License-Identifier: GPL-2.0+ */ /* * Copyright (C) 2013 Red Hat, Inc. */ @@ -17,30 +17,31 @@ #include "nm-secret-agent-simple.h" #include "nmtui.h" -G_DEFINE_TYPE (NmtPasswordDialog, nmt_password_dialog, NMT_TYPE_NEWT_FORM) +G_DEFINE_TYPE(NmtPasswordDialog, nmt_password_dialog, NMT_TYPE_NEWT_FORM) -#define NMT_PASSWORD_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_PASSWORD_DIALOG, NmtPasswordDialogPrivate)) +#define NMT_PASSWORD_DIALOG_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_PASSWORD_DIALOG, NmtPasswordDialogPrivate)) typedef struct { - char *request_id; - char *prompt; - GPtrArray *secrets; - GPtrArray *entries; + char * request_id; + char * prompt; + GPtrArray *secrets; + GPtrArray *entries; - NmtNewtWidget *ok, *cancel; - NmtNewtWidget *last_entry; - NmtNewtWidget *secret_grid; + NmtNewtWidget *ok, *cancel; + NmtNewtWidget *last_entry; + NmtNewtWidget *secret_grid; - gboolean succeeded; + gboolean succeeded; } NmtPasswordDialogPrivate; enum { - PROP_0, - PROP_REQUEST_ID, - PROP_PROMPT, - PROP_SECRETS, + PROP_0, + PROP_REQUEST_ID, + PROP_PROMPT, + PROP_SECRETS, - LAST_PROP + LAST_PROP }; /** @@ -56,230 +57,234 @@ enum { * Returns: a new #NmtPasswordDialog. */ NmtNewtForm * -nmt_password_dialog_new (const char *request_id, - const char *title, - const char *prompt, - GPtrArray *secrets) +nmt_password_dialog_new(const char *request_id, + const char *title, + const char *prompt, + GPtrArray * secrets) { - return g_object_new (NMT_TYPE_PASSWORD_DIALOG, - "request-id", request_id, - "title", title, - "prompt", prompt, - "secrets", secrets, - "escape-exits", TRUE, - NULL); + return g_object_new(NMT_TYPE_PASSWORD_DIALOG, + "request-id", + request_id, + "title", + title, + "prompt", + prompt, + "secrets", + secrets, + "escape-exits", + TRUE, + NULL); } static void -nmt_password_dialog_init (NmtPasswordDialog *dialog) +nmt_password_dialog_init(NmtPasswordDialog *dialog) { - NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE (dialog); + NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE(dialog); - priv->entries = g_ptr_array_new (); + priv->entries = g_ptr_array_new(); } static void -maybe_save_input_and_exit (NmtNewtWidget *widget, - gpointer dialog) +maybe_save_input_and_exit(NmtNewtWidget *widget, gpointer dialog) { - NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE (dialog); - int i; + NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE(dialog); + int i; - /* This gets invoked when the user types Return in the final entry, - * but the form may not be fully valid in that case. - */ - if (!nmt_newt_widget_get_valid (priv->secret_grid)) - return; + /* This gets invoked when the user types Return in the final entry, + * but the form may not be fully valid in that case. + */ + if (!nmt_newt_widget_get_valid(priv->secret_grid)) + return; - priv->succeeded = TRUE; + priv->succeeded = TRUE; - for (i = 0; i < priv->secrets->len; i++) { - NMSecretAgentSimpleSecret *secret = priv->secrets->pdata[i]; + for (i = 0; i < priv->secrets->len; i++) { + NMSecretAgentSimpleSecret *secret = priv->secrets->pdata[i]; - g_free (secret->value); - g_object_get (priv->entries->pdata[i], "text", &secret->value, NULL); - } + g_free(secret->value); + g_object_get(priv->entries->pdata[i], "text", &secret->value, NULL); + } - nmt_newt_form_quit (nmt_newt_widget_get_form (widget)); + nmt_newt_form_quit(nmt_newt_widget_get_form(widget)); } static void -nmt_password_dialog_constructed (GObject *object) +nmt_password_dialog_constructed(GObject *object) { - NmtPasswordDialog *dialog = NMT_PASSWORD_DIALOG (object); - NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE (dialog); - NmtNewtWidget *widget; - NmtNewtGrid *grid, *secret_grid; - NmtNewtButtonBox *bbox; - int i; - - widget = nmt_newt_grid_new (); - nmt_newt_form_set_content (NMT_NEWT_FORM (dialog), widget); - grid = NMT_NEWT_GRID (widget); - - widget = nmt_newt_textbox_new (0, 60); - nmt_newt_textbox_set_text (NMT_NEWT_TEXTBOX (widget), priv->prompt); - nmt_newt_grid_add (grid, widget, 0, 0); - - widget = nmt_newt_grid_new (); - nmt_newt_grid_add (grid, widget, 0, 1); - nmt_newt_widget_set_padding (widget, 0, 1, 0, 1); - priv->secret_grid = widget; - secret_grid = NMT_NEWT_GRID (widget); - - for (i = 0; i < priv->secrets->len; i++) { - NMSecretAgentSimpleSecret *secret = priv->secrets->pdata[i]; - NmtNewtEntryFlags flags; - - widget = nmt_newt_label_new (secret->pretty_name); - nmt_newt_grid_add (secret_grid, widget, 0, i); - nmt_newt_widget_set_padding (widget, 4, 0, 1, 0); - - flags = NMT_NEWT_ENTRY_NONEMPTY; - if (secret->is_secret) - flags |= NMT_NEWT_ENTRY_PASSWORD; - widget = nmt_newt_entry_new (30, flags); - if (secret->value) - nmt_newt_entry_set_text (NMT_NEWT_ENTRY (widget), secret->value); - nmt_newt_grid_add (secret_grid, widget, 1, i); - g_ptr_array_add (priv->entries, widget); - - if (i == priv->secrets->len - 1) { - priv->last_entry = widget; - g_signal_connect (widget, "activated", - G_CALLBACK (maybe_save_input_and_exit), dialog); - } - } - - widget = nmt_newt_button_box_new (NMT_NEWT_BUTTON_BOX_HORIZONTAL); - nmt_newt_grid_add (grid, widget, 0, 2); - bbox = NMT_NEWT_BUTTON_BOX (widget); - - priv->cancel = nmt_newt_button_box_add_end (NMT_NEWT_BUTTON_BOX (bbox), _("Cancel")); - nmt_newt_widget_set_exit_on_activate (priv->cancel, TRUE); - - priv->ok = nmt_newt_button_box_add_end (NMT_NEWT_BUTTON_BOX (bbox), _("OK")); - g_signal_connect (priv->ok, "activated", - G_CALLBACK (maybe_save_input_and_exit), dialog); - g_object_bind_property (priv->secret_grid, "valid", - priv->ok, "sensitive", - G_BINDING_SYNC_CREATE); - - G_OBJECT_CLASS (nmt_password_dialog_parent_class)->constructed (object); + NmtPasswordDialog * dialog = NMT_PASSWORD_DIALOG(object); + NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE(dialog); + NmtNewtWidget * widget; + NmtNewtGrid * grid, *secret_grid; + NmtNewtButtonBox * bbox; + int i; + + widget = nmt_newt_grid_new(); + nmt_newt_form_set_content(NMT_NEWT_FORM(dialog), widget); + grid = NMT_NEWT_GRID(widget); + + widget = nmt_newt_textbox_new(0, 60); + nmt_newt_textbox_set_text(NMT_NEWT_TEXTBOX(widget), priv->prompt); + nmt_newt_grid_add(grid, widget, 0, 0); + + widget = nmt_newt_grid_new(); + nmt_newt_grid_add(grid, widget, 0, 1); + nmt_newt_widget_set_padding(widget, 0, 1, 0, 1); + priv->secret_grid = widget; + secret_grid = NMT_NEWT_GRID(widget); + + for (i = 0; i < priv->secrets->len; i++) { + NMSecretAgentSimpleSecret *secret = priv->secrets->pdata[i]; + NmtNewtEntryFlags flags; + + widget = nmt_newt_label_new(secret->pretty_name); + nmt_newt_grid_add(secret_grid, widget, 0, i); + nmt_newt_widget_set_padding(widget, 4, 0, 1, 0); + + flags = NMT_NEWT_ENTRY_NONEMPTY; + if (secret->is_secret) + flags |= NMT_NEWT_ENTRY_PASSWORD; + widget = nmt_newt_entry_new(30, flags); + if (secret->value) + nmt_newt_entry_set_text(NMT_NEWT_ENTRY(widget), secret->value); + nmt_newt_grid_add(secret_grid, widget, 1, i); + g_ptr_array_add(priv->entries, widget); + + if (i == priv->secrets->len - 1) { + priv->last_entry = widget; + g_signal_connect(widget, "activated", G_CALLBACK(maybe_save_input_and_exit), dialog); + } + } + + widget = nmt_newt_button_box_new(NMT_NEWT_BUTTON_BOX_HORIZONTAL); + nmt_newt_grid_add(grid, widget, 0, 2); + bbox = NMT_NEWT_BUTTON_BOX(widget); + + priv->cancel = nmt_newt_button_box_add_end(NMT_NEWT_BUTTON_BOX(bbox), _("Cancel")); + nmt_newt_widget_set_exit_on_activate(priv->cancel, TRUE); + + priv->ok = nmt_newt_button_box_add_end(NMT_NEWT_BUTTON_BOX(bbox), _("OK")); + g_signal_connect(priv->ok, "activated", G_CALLBACK(maybe_save_input_and_exit), dialog); + g_object_bind_property(priv->secret_grid, + "valid", + priv->ok, + "sensitive", + G_BINDING_SYNC_CREATE); + + G_OBJECT_CLASS(nmt_password_dialog_parent_class)->constructed(object); } static void -nmt_password_dialog_finalize (GObject *object) +nmt_password_dialog_finalize(GObject *object) { - NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE (object); + NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE(object); - g_free (priv->request_id); - g_free (priv->prompt); - nm_clear_pointer (&priv->entries, g_ptr_array_unref); - nm_clear_pointer (&priv->secrets, g_ptr_array_unref); + g_free(priv->request_id); + g_free(priv->prompt); + nm_clear_pointer(&priv->entries, g_ptr_array_unref); + nm_clear_pointer(&priv->secrets, g_ptr_array_unref); - G_OBJECT_CLASS (nmt_password_dialog_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_password_dialog_parent_class)->finalize(object); } static void -nmt_password_dialog_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_password_dialog_set_property(GObject * object, + guint prop_id, + const GValue *value, + GParamSpec * pspec) { - NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_REQUEST_ID: - priv->request_id = g_value_dup_string (value); - break; - case PROP_PROMPT: - priv->prompt = g_value_dup_string (value); - break; - case PROP_SECRETS: - priv->secrets = g_value_dup_boxed (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_REQUEST_ID: + priv->request_id = g_value_dup_string(value); + break; + case PROP_PROMPT: + priv->prompt = g_value_dup_string(value); + break; + case PROP_SECRETS: + priv->secrets = g_value_dup_boxed(value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_password_dialog_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_password_dialog_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_REQUEST_ID: - g_value_set_string (value, priv->request_id); - break; - case PROP_PROMPT: - g_value_set_string (value, priv->prompt); - break; - case PROP_SECRETS: - g_value_set_boxed (value, priv->secrets); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_REQUEST_ID: + g_value_set_string(value, priv->request_id); + break; + case PROP_PROMPT: + g_value_set_string(value, priv->prompt); + break; + case PROP_SECRETS: + g_value_set_boxed(value, priv->secrets); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_password_dialog_class_init (NmtPasswordDialogClass *dialog_class) +nmt_password_dialog_class_init(NmtPasswordDialogClass *dialog_class) { - GObjectClass *object_class = G_OBJECT_CLASS (dialog_class); - - g_type_class_add_private (dialog_class, sizeof (NmtPasswordDialogPrivate)); - - /* virtual methods */ - object_class->constructed = nmt_password_dialog_constructed; - object_class->set_property = nmt_password_dialog_set_property; - object_class->get_property = nmt_password_dialog_get_property; - object_class->finalize = nmt_password_dialog_finalize; - - /** - * NmtPasswordDialog:request-id: - * - * The request ID from the #NMSecretAgentSimple - */ - g_object_class_install_property - (object_class, PROP_REQUEST_ID, - g_param_spec_string ("request-id", "", "", - NULL, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - /** - * NmtPasswordDialog:prompt: - * - * The prompt text. - */ - g_object_class_install_property - (object_class, PROP_PROMPT, - g_param_spec_string ("prompt", "", "", - NULL, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - /** - * NmtPasswordDialog:secrets: - * - * The array of request secrets - * - * Element-Type: #NMSecretAgentSimpleSecret. - */ - g_object_class_install_property - (object_class, PROP_SECRETS, - g_param_spec_boxed ("secrets", "", "", - G_TYPE_PTR_ARRAY, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); + GObjectClass *object_class = G_OBJECT_CLASS(dialog_class); + + g_type_class_add_private(dialog_class, sizeof(NmtPasswordDialogPrivate)); + + /* virtual methods */ + object_class->constructed = nmt_password_dialog_constructed; + object_class->set_property = nmt_password_dialog_set_property; + object_class->get_property = nmt_password_dialog_get_property; + object_class->finalize = nmt_password_dialog_finalize; + + /** + * NmtPasswordDialog:request-id: + * + * The request ID from the #NMSecretAgentSimple + */ + g_object_class_install_property( + object_class, + PROP_REQUEST_ID, + g_param_spec_string("request-id", + "", + "", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + /** + * NmtPasswordDialog:prompt: + * + * The prompt text. + */ + g_object_class_install_property( + object_class, + PROP_PROMPT, + g_param_spec_string("prompt", + "", + "", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + /** + * NmtPasswordDialog:secrets: + * + * The array of request secrets + * + * Element-Type: #NMSecretAgentSimpleSecret. + */ + g_object_class_install_property( + object_class, + PROP_SECRETS, + g_param_spec_boxed("secrets", + "", + "", + G_TYPE_PTR_ARRAY, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); } /** @@ -292,11 +297,11 @@ nmt_password_dialog_class_init (NmtPasswordDialogClass *dialog_class) * Returns: whether the dialog succeeded. */ gboolean -nmt_password_dialog_succeeded (NmtPasswordDialog *dialog) +nmt_password_dialog_succeeded(NmtPasswordDialog *dialog) { - NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE (dialog); + NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE(dialog); - return priv->succeeded; + return priv->succeeded; } /** @@ -308,11 +313,11 @@ nmt_password_dialog_succeeded (NmtPasswordDialog *dialog) * Returns: the dialog's request ID. */ const char * -nmt_password_dialog_get_request_id (NmtPasswordDialog *dialog) +nmt_password_dialog_get_request_id(NmtPasswordDialog *dialog) { - NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE (dialog); + NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE(dialog); - return priv->request_id; + return priv->request_id; } /** @@ -324,9 +329,9 @@ nmt_password_dialog_get_request_id (NmtPasswordDialog *dialog) * Returns: (transfer none): the dialog's secrets array. */ GPtrArray * -nmt_password_dialog_get_secrets (NmtPasswordDialog *dialog) +nmt_password_dialog_get_secrets(NmtPasswordDialog *dialog) { - NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE (dialog); + NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE(dialog); - return priv->secrets; + return priv->secrets; } |