static void gimp_data_editor_save_dirty (GimpDataEditor *editor) { GimpData *data = editor->data; if (data && gimp_data_is_dirty (data) && gimp_data_is_writable (data)) { GError *error = NULL; if (! gimp_data_factory_data_save_single (editor->data_factory, data, &error)) { gimp_message_literal (gimp_data_factory_get_gimp (editor->data_factory), G_OBJECT (editor), GIMP_MESSAGE_ERROR, error->message); g_clear_error (&error); } } }
void gradient_editor_left_color_cmd_callback (GtkAction *action, gpointer data) { GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data); GimpGradient *gradient; gradient = GIMP_GRADIENT (GIMP_DATA_EDITOR (editor)->data); editor->left_saved_dirty = gimp_data_is_dirty (GIMP_DATA (gradient)); editor->left_saved_segments = gradient_editor_save_selection (editor); editor->color_dialog = gimp_color_dialog_new (GIMP_VIEWABLE (gradient), GIMP_DATA_EDITOR (editor)->context, _("Left Endpoint Color"), GIMP_STOCK_GRADIENT, _("Gradient Segment's Left Endpoint Color"), GTK_WIDGET (editor), gimp_dialog_factory_get_singleton (), "gimp-gradient-editor-color-dialog", &editor->control_sel_l->left_color, TRUE, TRUE); g_signal_connect (editor->color_dialog, "destroy", G_CALLBACK (gtk_widget_destroyed), &editor->color_dialog); g_signal_connect (editor->color_dialog, "update", G_CALLBACK (gradient_editor_left_color_update), editor); gtk_widget_set_sensitive (GTK_WIDGET (editor), FALSE); gimp_ui_manager_update (GIMP_EDITOR (editor)->ui_manager, GIMP_EDITOR (editor)->popup_data); gtk_window_present (GTK_WINDOW (editor->color_dialog)); }