コード例 #1
0
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);
}
コード例 #2
0
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));
}