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; }
static void dsn_auth_changed_cb (GdauiProviderAuthEditor *auth, GdauiDsnAssistant *assistant) { gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), assistant->priv->cnc_auth_page, _gdaui_provider_auth_editor_is_valid (auth)); }