/** * gdaui_dsn_editor_has_been_changed: * @config: a #GdauiDsnEditor * * Tells if the user has some changes to the DSN being edited, which can be comitted * * Returns: %TRUE if some changes can be comitted */ gboolean gdaui_dsn_editor_has_been_changed (GdauiDsnEditor *config) { g_return_val_if_fail (GDAUI_IS_DSN_EDITOR (config), FALSE); GdaDsnInfo *orig; orig = gda_config_get_dsn_info (config->priv->name); return ! gda_dsn_info_equal (gdaui_dsn_editor_get_dsn (config), orig); }
/** * gdaui_dsn_editor_need_authentication: */ gboolean gdaui_dsn_editor_need_authentication (GdauiDsnEditor *config) { const GdaDsnInfo *dsn_info; dsn_info = gdaui_dsn_editor_get_dsn (config); GdaProviderInfo *pinfo; pinfo = gda_config_get_provider_info (dsn_info->provider); if (pinfo && pinfo->auth_params && pinfo->auth_params->holders) return TRUE; else return FALSE; }
static void save_cb (GtkButton *button, GtkWidget *dsn) { DsnConfigPrivate *priv; priv = g_object_get_data (G_OBJECT (dsn), DSN_CONFIG_DATA); const GdaDsnInfo *newdsn; newdsn = gdaui_dsn_editor_get_dsn (priv->dsn_editor); GError *error = NULL; if (! gda_config_define_dsn (newdsn, &error)) { _gdaui_utility_show_error (NULL, _("Could not save DSN definition: %s"), error ? error->message : _("No detail")); g_clear_error (&error); } /* update reference DSN and UI */ GdaDsnInfo *dsn_info; dsn_info = gda_config_get_dsn_info (newdsn->name); gdaui_dsn_editor_set_dsn (priv->dsn_editor, dsn_info); }