static void nmt_newt_container_real_child_validity_changed (NmtNewtContainer *container, NmtNewtWidget *widget) { NmtNewtContainerPrivate *priv; int i; if (widget) { if (!nmt_newt_widget_get_visible (widget)) return; if (!nmt_newt_widget_get_valid (widget)) { nmt_newt_widget_set_valid (NMT_NEWT_WIDGET (container), FALSE); return; } } priv = NMT_NEWT_CONTAINER_GET_PRIVATE (container); for (i = 0; i < priv->children->len; i++) { widget = priv->children->pdata[i]; if ( nmt_newt_widget_get_visible (widget) && !nmt_newt_widget_get_valid (widget)) { nmt_newt_widget_set_valid (NMT_NEWT_WIDGET (container), FALSE); return; } } nmt_newt_widget_set_valid (NMT_NEWT_WIDGET (container), TRUE); }
static void maybe_save_input_and_exit (NmtNewtWidget *widget, gpointer dialog) { 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; priv->succeeded = TRUE; 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); } nmt_newt_form_quit (nmt_newt_widget_get_form (widget)); }