Ejemplo n.º 1
0
static GimpValueArray *
temp_name_invoker (GimpProcedure         *procedure,
                   Gimp                  *gimp,
                   GimpContext           *context,
                   GimpProgress          *progress,
                   const GimpValueArray  *args,
                   GError               **error)
{
  gboolean success = TRUE;
  GimpValueArray *return_vals;
  const gchar *extension;
  gchar *name = NULL;

  extension = g_value_get_string (gimp_value_array_index (args, 0));

  if (success)
    {
      GFile *file = gimp_get_temp_file (gimp, extension);

      name = g_file_get_path (file);

      g_object_unref (file);
    }

  return_vals = gimp_procedure_get_return_values (procedure, success,
                                                  error ? *error : NULL);

  if (success)
    g_value_take_string (gimp_value_array_index (return_vals, 1), name);

  return return_vals;
}
Ejemplo n.º 2
0
static GFile *
file_remote_get_temp_file (Gimp  *gimp,
                           GFile *file)
{
  gchar *basename;
  GFile *temp_file = NULL;

  basename = g_path_get_basename (gimp_file_get_utf8_name (file));

  if (basename)
    {
      const gchar *ext = strchr (basename, '.');

      if (ext && strlen (ext))
        temp_file = gimp_get_temp_file (gimp, ext + 1);

      g_free (basename);
    }

  if (! temp_file)
    temp_file = gimp_get_temp_file (gimp, "xxx");

  return temp_file;
}