Updated with upstream update

This commit is contained in:
2023-10-30 15:55:30 -07:00
parent 098531073c
commit 3bbdd873ef
584 changed files with 91827 additions and 70362 deletions

View File

@ -190,9 +190,9 @@ brushdmenuselect (GtkWidget *widget,
for (row = 0, y = y1; y < y2; row++, y++)
{
guchar *tmprow = p->col + row * rowstride;
guchar *tmprow_ptr;
gint x2 = x1 + w;
guchar *tmprow = p->col + row * rowstride;
gint x2 = x1 + w;
gegl_buffer_get (src_buffer, GEGL_RECTANGLE (x1, y, w, 1), 1.0,
format, src_row,

View File

@ -55,7 +55,7 @@ struct _PikaressionistClass
#define PIKARESSIONIST_TYPE (pikaressionist_get_type ())
#define PIKARESSIONIST (obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PIKARESSIONIST_TYPE, Pikaressionist))
#define PIKARESSIONIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PIKARESSIONIST_TYPE, Pikaressionist))
GType pikaressionist_get_type (void) G_GNUC_CONST;
@ -68,7 +68,7 @@ static PikaValueArray * pikaressionist_run (PikaProcedure *p
PikaImage *image,
gint n_drawables,
PikaDrawable **drawables,
const PikaValueArray *args,
PikaProcedureConfig *config,
gpointer run_data);
static void pikaressionist_main (void);
@ -128,8 +128,8 @@ pikaressionist_create_procedure (PikaPlugIn *plug_in,
pika_procedure_set_documentation (procedure,
_("Performs various artistic "
"operations"),
"Performs various artistic operations "
"on an image",
_("Performs various artistic operations "
"on an image"),
name);
pika_procedure_set_attribution (procedure,
"Vidar Madsen <vidar@prosalg.no>",
@ -137,10 +137,15 @@ pikaressionist_create_procedure (PikaPlugIn *plug_in,
PLUG_IN_VERSION);
PIKA_PROC_ARG_STRING (procedure, "preset",
"Preset",
"Preset Name",
_("Preset"),
_("Preset Name"),
NULL,
G_PARAM_READWRITE);
PIKA_PROC_AUX_ARG_BYTES (procedure, "settings-data",
"Settings data",
"TODO: eventually we must implement proper args for every settings",
PIKA_PARAM_READWRITE);
}
return procedure;
@ -167,10 +172,11 @@ pikaressionist_run (PikaProcedure *procedure,
PikaImage *image,
gint n_drawables,
PikaDrawable **drawables,
const PikaValueArray *args,
PikaProcedureConfig *config,
gpointer run_data)
{
const gchar *preset_name;
GBytes *settings_bytes = NULL;
gchar *preset_name = NULL;
gegl_init (NULL, NULL);
@ -209,24 +215,33 @@ pikaressionist_run (PikaProcedure *procedure,
restore_default_values ();
/* Temporary code replacing legacy pika_[gs]et_data() using an AUX argument.
* This doesn't actually fix the "Reset to initial values|factory defaults"
* features, but at least makes per-run value storage work.
* TODO: eventually we want proper separate arguments as a complete fix.
*/
g_object_get (config, "settings-data", &settings_bytes, NULL);
if (settings_bytes != NULL && g_bytes_get_size (settings_bytes) == sizeof (pikaressionist_vals_t))
pcvals = *((pikaressionist_vals_t *) g_bytes_get_data (settings_bytes, NULL));
g_bytes_unref (settings_bytes);
switch (run_mode)
{
case PIKA_RUN_INTERACTIVE:
pika_get_data (PLUG_IN_PROC, &pcvals);
if (! create_pikaressionist ())
{
return pika_procedure_new_return_values (procedure,
PIKA_PDB_CANCEL,
NULL);
}
if (! create_pikaressionist (procedure, config))
return pika_procedure_new_return_values (procedure,
PIKA_PDB_CANCEL,
NULL);
break;
case PIKA_RUN_NONINTERACTIVE:
preset_name = PIKA_VALUES_GET_STRING (args, 0);
g_object_get (config,
"preset", &preset_name,
NULL);
if (select_preset (preset_name))
{
g_free (preset_name);
return pika_procedure_new_return_values (procedure,
PIKA_PDB_EXECUTION_ERROR,
NULL);
@ -234,7 +249,6 @@ pikaressionist_run (PikaProcedure *procedure,
break;
case PIKA_RUN_WITH_LAST_VALS:
pika_get_data (PLUG_IN_PROC, &pcvals);
break;
}
@ -256,9 +270,6 @@ pikaressionist_run (PikaProcedure *procedure,
if (run_mode != PIKA_RUN_NONINTERACTIVE)
pika_displays_flush ();
if (run_mode == PIKA_RUN_INTERACTIVE)
pika_set_data (PLUG_IN_PROC, &pcvals, sizeof (pikaressionist_vals_t));
}
else
{
@ -267,7 +278,12 @@ pikaressionist_run (PikaProcedure *procedure,
NULL);
}
settings_bytes = g_bytes_new (&pcvals, sizeof (pikaressionist_vals_t));
g_object_set (config, "settings-data", settings_bytes, NULL);
g_bytes_unref (settings_bytes);
/* Resources Cleanup */
g_free (preset_name);
g_rand_free (random_generator);
free_parsepath_cache ();
brush_reload (NULL, NULL);
@ -277,7 +293,7 @@ pikaressionist_run (PikaProcedure *procedure,
orientation_map_free_resources ();
size_map_free_resources ();
return pika_procedure_new_return_values (procedure, PIKA_PDB_SUCCESS, NULL);
return pika_procedure_new_return_values (procedure, PIKA_PDB_SUCCESS, NULL);
}
static const Babl *

View File

@ -111,57 +111,28 @@ create_one_column_list (GtkWidget *parent,
return view;
}
static void
dialog_response (GtkWidget *widget,
gint response_id,
gpointer data)
{
switch (response_id)
{
case GTK_RESPONSE_OK:
store_values ();
pcvals.run = TRUE;
gtk_widget_destroy (widget);
break;
default:
gtk_widget_destroy (widget);
break;
}
}
static GtkWidget *
create_dialog (void)
static gboolean
create_dialog (PikaProcedure *procedure,
PikaProcedureConfig *config)
{
GtkWidget *notebook;
GtkWidget *hbox;
GtkWidget *preview_box;
gboolean run;
pika_ui_init (PLUG_IN_BINARY);
dialog = pika_dialog_new (_("PIKAressionist"), PLUG_IN_ROLE,
NULL, 0,
pika_standard_help_func, PLUG_IN_PROC,
_("_Cancel"), GTK_RESPONSE_CANCEL,
_("_OK"), GTK_RESPONSE_OK,
NULL);
dialog = pika_procedure_dialog_new (procedure,
PIKA_PROCEDURE_CONFIG (config),
_("PIKAressionist"));
pika_dialog_set_alternative_button_order (GTK_DIALOG (dialog),
GTK_RESPONSE_OK,
GTK_RESPONSE_CANCEL,
-1);
GTK_RESPONSE_OK,
GTK_RESPONSE_CANCEL,
-1);
pika_window_set_transient (GTK_WINDOW (dialog));
g_signal_connect (dialog, "response",
G_CALLBACK (dialog_response),
NULL);
g_signal_connect (dialog, "destroy",
G_CALLBACK (gtk_main_quit),
NULL);
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12);
gtk_container_set_border_width (GTK_CONTAINER (hbox), 12);
gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))),
@ -193,19 +164,22 @@ create_dialog (void)
* */
restore_values ();
gtk_widget_show (dialog);
run = pika_procedure_dialog_run (PIKA_PROCEDURE_DIALOG (dialog));
if (run)
store_values ();
return dialog;
gtk_widget_destroy (dialog);
return run;
}
gint
create_pikaressionist (void)
create_pikaressionist (PikaProcedure *procedure,
PikaProcedureConfig *config)
{
pcvals.run = FALSE;
create_dialog ();
gtk_main ();
pcvals.run = create_dialog (procedure, config);
return pcvals.run;
}

View File

@ -163,8 +163,9 @@ double getsiz_proto (double x, double y, int n, smvector_t *vec,
double smstrexp, int voronoi);
void set_colorbrushes (const gchar *fn);
int create_pikaressionist (void);
void set_colorbrushes (const gchar *fn);
int create_pikaressionist (PikaProcedure *procedure,
PikaProcedureConfig *config);
double dist (double x, double y, double dx, double dy);

View File

@ -29,10 +29,9 @@ enum SELECT_PRESET_RETURN_VALUES
SELECT_PRESET_LOAD_FAILED = -2,
};
void create_presetpage (GtkNotebook *);
int select_preset (const gchar *preset);
void preset_free (void);
void preset_save_button_set_sensitive (gboolean s);
void create_presetpage (GtkNotebook *notebook);
int select_preset (const gchar *preset);
void preset_free (void);
void preset_save_button_set_sensitive (gboolean s);
#endif