예제 #1
0
파일: gdaui-login.c 프로젝트: GNOME/libgda
static gboolean
settings_are_valid (GdauiLogin *login)
{
	GdauiLoginPrivate *priv = gdaui_login_get_instance_private (login);
	/* validate cnc information */
	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->rb_dsn))) {
		/* using a DSN */
		gchar *dsn;
		dsn = _gdaui_dsn_selector_get_dsn (GDAUI_DSN_SELECTOR (priv->dsn_selector));
		if (dsn)
			g_free (dsn);
		else
			return FALSE;
	}
	else {
		/* using a direct CNC string */
		const gchar *prov;
		prov = gdaui_provider_selector_get_provider (GDAUI_PROVIDER_SELECTOR (priv->prov_selector));
		if (!prov)
			return FALSE;

		if (! _gdaui_provider_spec_editor_is_valid (GDAUI_PROVIDER_SPEC_EDITOR (priv->cnc_params_editor)))
			return FALSE;
	}

	/* validate authentication */
	if (! _gdaui_provider_auth_editor_is_valid (GDAUI_PROVIDER_AUTH_EDITOR (priv->auth_widget)))
		return FALSE;

	return TRUE;
}
예제 #2
0
static void
dsn_spec_changed_cb (GdauiProviderSpecEditor *spec, GdauiDsnAssistant *assistant)
{
	gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant),
					 assistant->priv->cnc_params_page,
					 _gdaui_provider_spec_editor_is_valid (spec));
}