app: move some stuff out of app/file/
file-procedure.[ch] is gone and its functions moved to GimpPlugInManager where they belong (the manager keeps around the lists of load, save and export procedures). Utility functions from file-utils.[ch] that have nothing to do with image files moved to core/gimp-utils.[ch].
This commit is contained in:
@ -284,8 +284,9 @@ file_actions_update (GimpActionGroup *group,
|
||||
|
||||
show_overwrite =
|
||||
(source &&
|
||||
gimp_plug_in_manager_file_has_exporter (gimp->plug_in_manager,
|
||||
source));
|
||||
gimp_plug_in_manager_file_procedure_find (gimp->plug_in_manager,
|
||||
GIMP_FILE_PROCEDURE_GROUP_EXPORT,
|
||||
source, NULL));
|
||||
|
||||
#define SET_VISIBLE(action,condition) \
|
||||
gimp_action_group_set_action_visible (group, action, (condition) != 0)
|
||||
|
@ -36,10 +36,9 @@
|
||||
#include "core/gimpprogress.h"
|
||||
#include "core/gimptemplate.h"
|
||||
|
||||
#include "plug-in/gimppluginmanager.h"
|
||||
#include "plug-in/gimppluginmanager-file.h"
|
||||
|
||||
#include "file/file-open.h"
|
||||
#include "file/file-procedure.h"
|
||||
#include "file/file-save.h"
|
||||
#include "file/gimp-file.h"
|
||||
|
||||
@ -258,8 +257,9 @@ file_save_cmd_callback (GtkAction *action,
|
||||
if (file && ! save_proc)
|
||||
{
|
||||
save_proc =
|
||||
file_procedure_find (image->gimp->plug_in_manager->save_procs,
|
||||
file, NULL);
|
||||
gimp_plug_in_manager_file_procedure_find (image->gimp->plug_in_manager,
|
||||
GIMP_FILE_PROCEDURE_GROUP_SAVE,
|
||||
file, NULL);
|
||||
}
|
||||
|
||||
if (file && save_proc)
|
||||
@ -357,8 +357,9 @@ file_save_cmd_callback (GtkAction *action,
|
||||
if (file && ! export_proc)
|
||||
{
|
||||
export_proc =
|
||||
file_procedure_find (image->gimp->plug_in_manager->export_procs,
|
||||
file, NULL);
|
||||
gimp_plug_in_manager_file_procedure_find (image->gimp->plug_in_manager,
|
||||
GIMP_FILE_PROCEDURE_GROUP_EXPORT,
|
||||
file, NULL);
|
||||
}
|
||||
|
||||
if (file && export_proc)
|
||||
|
@ -745,6 +745,90 @@ gimp_file_is_executable (GFile *file)
|
||||
return executable;
|
||||
}
|
||||
|
||||
/**
|
||||
* gimp_file_get_extension:
|
||||
* @file: A #GFile
|
||||
*
|
||||
* Returns @file's extension (including the .), or NULL if there is no
|
||||
* extension. Note that this function handles compressed files too,
|
||||
* e.g. for "file.png.gz" it will return ".png.gz".
|
||||
*
|
||||
* Returns: The @file's extension. Free with g_free() when no longer needed.
|
||||
**/
|
||||
gchar *
|
||||
gimp_file_get_extension (GFile *file)
|
||||
{
|
||||
gchar *uri;
|
||||
gint uri_len;
|
||||
gchar *ext = NULL;
|
||||
gint search_len;
|
||||
|
||||
g_return_val_if_fail (G_IS_FILE (file), NULL);
|
||||
|
||||
uri = g_file_get_uri (file);
|
||||
uri_len = strlen (uri);
|
||||
|
||||
if (g_str_has_suffix (uri, ".gz"))
|
||||
search_len = uri_len - 3;
|
||||
else if (g_str_has_suffix (uri, ".bz2"))
|
||||
search_len = uri_len - 4;
|
||||
else if (g_str_has_suffix (uri, ".xz"))
|
||||
search_len = uri_len - 3;
|
||||
else
|
||||
search_len = uri_len;
|
||||
|
||||
ext = g_strrstr_len (uri, search_len, ".");
|
||||
|
||||
if (ext)
|
||||
ext = g_strdup (ext);
|
||||
|
||||
g_free (uri);
|
||||
|
||||
return ext;
|
||||
}
|
||||
|
||||
GFile *
|
||||
gimp_file_with_new_extension (GFile *file,
|
||||
GFile *ext_file)
|
||||
{
|
||||
gchar *uri;
|
||||
gchar *file_ext;
|
||||
gint file_ext_len = 0;
|
||||
gchar *ext_file_ext = NULL;
|
||||
gchar *uri_without_ext;
|
||||
gchar *new_uri;
|
||||
GFile *ret;
|
||||
|
||||
g_return_val_if_fail (G_IS_FILE (file), NULL);
|
||||
g_return_val_if_fail (ext_file == NULL || G_IS_FILE (ext_file), NULL);
|
||||
|
||||
uri = g_file_get_uri (file);
|
||||
file_ext = gimp_file_get_extension (file);
|
||||
|
||||
if (file_ext)
|
||||
{
|
||||
file_ext_len = strlen (file_ext);
|
||||
g_free (file_ext);
|
||||
}
|
||||
|
||||
if (ext_file)
|
||||
ext_file_ext = gimp_file_get_extension (ext_file);
|
||||
|
||||
uri_without_ext = g_strndup (uri, strlen (uri) - file_ext_len);
|
||||
|
||||
g_free (uri);
|
||||
|
||||
new_uri = g_strconcat (uri_without_ext, ext_file_ext, NULL);
|
||||
|
||||
ret = g_file_new_for_uri (new_uri);
|
||||
|
||||
g_free (ext_file_ext);
|
||||
g_free (uri_without_ext);
|
||||
g_free (new_uri);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/* debug stuff */
|
||||
|
||||
|
@ -76,6 +76,9 @@ void gimp_constrain_line (gdouble start_x,
|
||||
gint gimp_file_compare (GFile *file1,
|
||||
GFile *file2);
|
||||
gboolean gimp_file_is_executable (GFile *file);
|
||||
gchar * gimp_file_get_extension (GFile *file);
|
||||
GFile * gimp_file_with_new_extension (GFile *file,
|
||||
GFile *ext_file);
|
||||
|
||||
GimpImage * gimp_create_image_from_buffer (Gimp *gimp,
|
||||
GeglBuffer *buffer,
|
||||
|
@ -39,6 +39,7 @@
|
||||
#include "gimp.h"
|
||||
#include "gimp-memsize.h"
|
||||
#include "gimp-parasites.h"
|
||||
#include "gimp-utils.h"
|
||||
#include "gimpcontext.h"
|
||||
#include "gimpdrawablestack.h"
|
||||
#include "gimpgrid.h"
|
||||
@ -72,8 +73,6 @@
|
||||
#include "gimptemplate.h"
|
||||
#include "gimpundostack.h"
|
||||
|
||||
#include "file/file-utils.h"
|
||||
|
||||
#include "vectors/gimpvectors.h"
|
||||
|
||||
#include "gimp-log.h"
|
||||
@ -2168,7 +2167,7 @@ gimp_image_format_display_uri (GimpImage *image,
|
||||
}
|
||||
|
||||
if (display_file)
|
||||
display_file = file_utils_file_with_new_ext (display_file, NULL);
|
||||
display_file = gimp_file_with_new_extension (display_file, NULL);
|
||||
|
||||
uri_format = "[%s]";
|
||||
}
|
||||
|
@ -35,7 +35,6 @@
|
||||
#include "core/gimpprogress.h"
|
||||
|
||||
#include "file/file-open.h"
|
||||
#include "file/file-utils.h"
|
||||
#include "file/gimp-file.h"
|
||||
|
||||
#include "widgets/gimpfiledialog.h"
|
||||
|
@ -32,10 +32,9 @@
|
||||
#include "core/gimpimage.h"
|
||||
#include "core/gimpprogress.h"
|
||||
|
||||
#include "plug-in/gimppluginmanager.h"
|
||||
#include "plug-in/gimppluginmanager-file.h"
|
||||
#include "plug-in/gimppluginprocedure.h"
|
||||
|
||||
#include "file/file-procedure.h"
|
||||
#include "file/file-save.h"
|
||||
#include "file/gimp-file.h"
|
||||
|
||||
@ -78,8 +77,9 @@ static CheckUriResult file_save_dialog_check_file (GtkWidget
|
||||
GimpPlugInProcedure **ret_save_proc);
|
||||
static gboolean file_save_dialog_no_overwrite_confirmation (GimpFileDialog *dialog,
|
||||
Gimp *gimp);
|
||||
static GSList * file_save_dialog_get_procs (GimpFileDialog *dialog,
|
||||
Gimp *gimp);
|
||||
static GimpPlugInProcedure *
|
||||
file_save_dialog_find_procedure (GimpFileDialog *dialog,
|
||||
GFile *file);
|
||||
static gboolean file_save_dialog_switch_dialogs (GimpFileDialog *file_dialog,
|
||||
Gimp *gimp,
|
||||
const gchar *basename);
|
||||
@ -295,12 +295,8 @@ file_save_dialog_check_file (GtkWidget *dialog,
|
||||
basename_file = g_file_new_for_uri (basename);
|
||||
|
||||
save_proc = file_dialog->file_proc;
|
||||
uri_proc = file_procedure_find (file_save_dialog_get_procs (file_dialog,
|
||||
gimp),
|
||||
file, NULL);
|
||||
basename_proc = file_procedure_find (file_save_dialog_get_procs (file_dialog,
|
||||
gimp),
|
||||
basename_file, NULL);
|
||||
uri_proc = file_save_dialog_find_procedure (file_dialog, file);
|
||||
basename_proc = file_save_dialog_find_procedure (file_dialog, basename_file);
|
||||
|
||||
g_object_unref (basename_file);
|
||||
|
||||
@ -539,9 +535,7 @@ file_save_dialog_no_overwrite_confirmation (GimpFileDialog *file_dialog,
|
||||
basename_file = g_file_new_for_uri (basename);
|
||||
|
||||
save_proc = file_dialog->file_proc;
|
||||
basename_proc = file_procedure_find (file_save_dialog_get_procs (file_dialog,
|
||||
gimp),
|
||||
basename_file, NULL);
|
||||
basename_proc = file_save_dialog_find_procedure (file_dialog, basename_file);
|
||||
|
||||
g_object_unref (basename_file);
|
||||
|
||||
@ -558,13 +552,19 @@ file_save_dialog_no_overwrite_confirmation (GimpFileDialog *file_dialog,
|
||||
return uri_will_change || unknown_ext;
|
||||
}
|
||||
|
||||
static GSList *
|
||||
file_save_dialog_get_procs (GimpFileDialog *file_dialog,
|
||||
Gimp *gimp)
|
||||
static GimpPlugInProcedure *
|
||||
file_save_dialog_find_procedure (GimpFileDialog *file_dialog,
|
||||
GFile *file)
|
||||
{
|
||||
return (GIMP_IS_SAVE_DIALOG (file_dialog) ?
|
||||
gimp->plug_in_manager->save_procs :
|
||||
gimp->plug_in_manager->export_procs);
|
||||
GimpPlugInManager *manager = file_dialog->gimp->plug_in_manager;
|
||||
GimpFileProcedureGroup group;
|
||||
|
||||
if (GIMP_IS_SAVE_DIALOG (file_dialog))
|
||||
group = GIMP_FILE_PROCEDURE_GROUP_SAVE;
|
||||
else
|
||||
group = GIMP_FILE_PROCEDURE_GROUP_EXPORT;
|
||||
|
||||
return gimp_plug_in_manager_file_procedure_find (manager, group, file, NULL);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
@ -582,17 +582,21 @@ file_save_dialog_switch_dialogs (GimpFileDialog *file_dialog,
|
||||
Gimp *gimp,
|
||||
const gchar *basename)
|
||||
{
|
||||
GimpPlugInProcedure *proc_in_other_group;
|
||||
GFile *file;
|
||||
gboolean switch_dialogs = FALSE;
|
||||
GimpPlugInProcedure *proc_in_other_group;
|
||||
GimpFileProcedureGroup other_group;
|
||||
GFile *file;
|
||||
gboolean switch_dialogs = FALSE;
|
||||
|
||||
file = g_file_new_for_uri (basename);
|
||||
|
||||
if (GIMP_IS_EXPORT_DIALOG (file_dialog))
|
||||
other_group = GIMP_FILE_PROCEDURE_GROUP_SAVE;
|
||||
else
|
||||
other_group = GIMP_FILE_PROCEDURE_GROUP_EXPORT;
|
||||
|
||||
proc_in_other_group =
|
||||
file_procedure_find (GIMP_IS_EXPORT_DIALOG (file_dialog) ?
|
||||
gimp->plug_in_manager->save_procs :
|
||||
gimp->plug_in_manager->export_procs,
|
||||
file, NULL);
|
||||
gimp_plug_in_manager_file_procedure_find (gimp->plug_in_manager,
|
||||
other_group, file, NULL);
|
||||
|
||||
g_object_unref (file);
|
||||
|
||||
|
@ -13,14 +13,12 @@ AM_CPPFLAGS = \
|
||||
noinst_LIBRARIES = libappfile.a
|
||||
|
||||
libappfile_a_SOURCES = \
|
||||
file-open.c \
|
||||
file-open.h \
|
||||
file-procedure.c \
|
||||
file-procedure.h \
|
||||
file-remote.c \
|
||||
file-remote.h \
|
||||
file-save.c \
|
||||
file-save.h \
|
||||
file-utils.c \
|
||||
file-utils.h \
|
||||
file-open.c \
|
||||
file-open.h \
|
||||
file-remote.c \
|
||||
file-remote.h \
|
||||
file-save.c \
|
||||
file-save.h \
|
||||
file-utils.c \
|
||||
file-utils.h \
|
||||
gimp-file.h
|
||||
|
@ -46,27 +46,25 @@
|
||||
|
||||
#include "pdb/gimppdb.h"
|
||||
|
||||
#include "plug-in/gimppluginmanager.h"
|
||||
#include "plug-in/gimppluginmanager-file.h"
|
||||
#include "plug-in/gimppluginprocedure.h"
|
||||
|
||||
#include "file-open.h"
|
||||
#include "file-procedure.h"
|
||||
#include "file-remote.h"
|
||||
#include "file-utils.h"
|
||||
#include "gimp-file.h"
|
||||
|
||||
#include "gimp-intl.h"
|
||||
|
||||
|
||||
static void file_open_sanitize_image (GimpImage *image,
|
||||
gboolean as_new);
|
||||
static void file_open_convert_items (GimpImage *dest_image,
|
||||
const gchar *basename,
|
||||
GList *items);
|
||||
static GList * file_open_get_layers (const GimpImage *image,
|
||||
gboolean merge_visible,
|
||||
gint *n_visible);
|
||||
static gboolean file_open_file_proc_is_import (const GimpPlugInProcedure *file_proc);
|
||||
static void file_open_sanitize_image (GimpImage *image,
|
||||
gboolean as_new);
|
||||
static void file_open_convert_items (GimpImage *dest_image,
|
||||
const gchar *basename,
|
||||
GList *items);
|
||||
static GList * file_open_get_layers (const GimpImage *image,
|
||||
gboolean merge_visible,
|
||||
gint *n_visible);
|
||||
static gboolean file_open_file_proc_is_import (GimpPlugInProcedure *file_proc);
|
||||
|
||||
|
||||
/* public functions */
|
||||
@ -136,8 +134,9 @@ file_open_image (Gimp *gimp,
|
||||
}
|
||||
|
||||
if (! file_proc)
|
||||
file_proc = file_procedure_find (gimp->plug_in_manager->load_procs, file,
|
||||
error);
|
||||
file_proc = gimp_plug_in_manager_file_procedure_find (gimp->plug_in_manager,
|
||||
GIMP_FILE_PROCEDURE_GROUP_OPEN,
|
||||
file, error);
|
||||
|
||||
if (! file_proc)
|
||||
return NULL;
|
||||
@ -320,8 +319,9 @@ file_open_thumbnail (Gimp *gimp,
|
||||
*format = NULL;
|
||||
*num_layers = -1;
|
||||
|
||||
file_proc = file_procedure_find (gimp->plug_in_manager->load_procs, file,
|
||||
NULL);
|
||||
file_proc = gimp_plug_in_manager_file_procedure_find (gimp->plug_in_manager,
|
||||
GIMP_FILE_PROCEDURE_GROUP_OPEN,
|
||||
file, NULL);
|
||||
|
||||
if (! file_proc || ! file_proc->thumb_loader)
|
||||
return NULL;
|
||||
@ -791,7 +791,7 @@ file_open_get_layers (const GimpImage *image,
|
||||
}
|
||||
|
||||
static gboolean
|
||||
file_open_file_proc_is_import (const GimpPlugInProcedure *file_proc)
|
||||
file_open_file_proc_is_import (GimpPlugInProcedure *file_proc)
|
||||
{
|
||||
return !(file_proc &&
|
||||
file_proc->mime_type &&
|
||||
|
@ -44,7 +44,6 @@
|
||||
|
||||
#include "file-remote.h"
|
||||
#include "file-save.h"
|
||||
#include "file-utils.h"
|
||||
#include "gimp-file.h"
|
||||
|
||||
#include "gimp-intl.h"
|
||||
|
@ -35,9 +35,8 @@
|
||||
#include "core/gimpimage.h"
|
||||
#include "core/gimpimagefile.h"
|
||||
|
||||
#include "plug-in/gimppluginmanager.h"
|
||||
#include "plug-in/gimppluginmanager-file.h"
|
||||
|
||||
#include "file-procedure.h"
|
||||
#include "file-utils.h"
|
||||
|
||||
#include "gimp-intl.h"
|
||||
@ -105,8 +104,9 @@ file_utils_filename_to_file (Gimp *gimp,
|
||||
file = g_file_new_for_uri (filename);
|
||||
|
||||
/* check for prefixes like http or ftp */
|
||||
if (file_procedure_find_by_prefix (gimp->plug_in_manager->load_procs,
|
||||
file))
|
||||
if (gimp_plug_in_manager_file_procedure_find_by_prefix (gimp->plug_in_manager,
|
||||
GIMP_FILE_PROCEDURE_GROUP_OPEN,
|
||||
file))
|
||||
{
|
||||
if (g_utf8_validate (filename, -1, NULL))
|
||||
{
|
||||
@ -155,90 +155,6 @@ file_utils_filename_to_file (Gimp *gimp,
|
||||
return file;
|
||||
}
|
||||
|
||||
GFile *
|
||||
file_utils_file_with_new_ext (GFile *file,
|
||||
GFile *ext_file)
|
||||
{
|
||||
gchar *uri;
|
||||
gchar *file_ext;
|
||||
gint file_ext_len = 0;
|
||||
gchar *ext_file_ext = NULL;
|
||||
gchar *uri_without_ext;
|
||||
gchar *new_uri;
|
||||
GFile *ret;
|
||||
|
||||
g_return_val_if_fail (G_IS_FILE (file), NULL);
|
||||
g_return_val_if_fail (ext_file == NULL || G_IS_FILE (ext_file), NULL);
|
||||
|
||||
uri = g_file_get_uri (file);
|
||||
file_ext = file_utils_file_get_ext (file);
|
||||
|
||||
if (file_ext)
|
||||
{
|
||||
file_ext_len = strlen (file_ext);
|
||||
g_free (file_ext);
|
||||
}
|
||||
|
||||
if (ext_file)
|
||||
ext_file_ext = file_utils_file_get_ext (ext_file);
|
||||
|
||||
uri_without_ext = g_strndup (uri, strlen (uri) - file_ext_len);
|
||||
|
||||
g_free (uri);
|
||||
|
||||
new_uri = g_strconcat (uri_without_ext, ext_file_ext, NULL);
|
||||
|
||||
ret = g_file_new_for_uri (new_uri);
|
||||
|
||||
g_free (ext_file_ext);
|
||||
g_free (uri_without_ext);
|
||||
g_free (new_uri);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* file_utils_file_get_ext:
|
||||
* @file:
|
||||
*
|
||||
* Returns the position of the extension (including the .), or NULL
|
||||
* if there is no extension.
|
||||
*
|
||||
* Returns:
|
||||
**/
|
||||
gchar *
|
||||
file_utils_file_get_ext (GFile *file)
|
||||
{
|
||||
gchar *uri;
|
||||
gint uri_len;
|
||||
gchar *ext = NULL;
|
||||
gint search_len;
|
||||
|
||||
g_return_val_if_fail (G_IS_FILE (file), NULL);
|
||||
|
||||
uri = g_file_get_uri (file);
|
||||
uri_len = strlen (uri);
|
||||
|
||||
if (g_str_has_suffix (uri, ".gz"))
|
||||
search_len = uri_len - 3;
|
||||
else if (g_str_has_suffix (uri, ".bz2"))
|
||||
search_len = uri_len - 4;
|
||||
else if (g_str_has_suffix (uri, ".xz"))
|
||||
search_len = uri_len - 3;
|
||||
else
|
||||
search_len = uri_len;
|
||||
|
||||
ext = g_strrstr_len (uri, search_len, ".");
|
||||
|
||||
if (ext)
|
||||
ext = g_strdup (ext);
|
||||
|
||||
g_free (uri);
|
||||
|
||||
return ext;
|
||||
}
|
||||
|
||||
GdkPixbuf *
|
||||
file_utils_load_thumbnail (const gchar *filename)
|
||||
{
|
||||
|
@ -25,10 +25,6 @@ GFile * file_utils_filename_to_file (Gimp *gimp,
|
||||
const gchar *filename,
|
||||
GError **error);
|
||||
|
||||
GFile * file_utils_file_with_new_ext (GFile *file,
|
||||
GFile *ext_file);
|
||||
gchar * file_utils_file_get_ext (GFile *file);
|
||||
|
||||
GdkPixbuf * file_utils_load_thumbnail (const gchar *filename);
|
||||
gboolean file_utils_save_thumbnail (GimpImage *image,
|
||||
const gchar *filename);
|
||||
|
@ -47,9 +47,7 @@
|
||||
|
||||
#include "text/gimpfont.h"
|
||||
|
||||
#include "plug-in/gimppluginmanager.h"
|
||||
|
||||
#include "file/file-procedure.h"
|
||||
#include "plug-in/gimppluginmanager-file.h"
|
||||
|
||||
#include "widgets/gimpactiongroup.h"
|
||||
#include "widgets/gimpbrushselect.h"
|
||||
@ -734,8 +732,9 @@ gui_recent_list_load (Gimp *gimp)
|
||||
const gchar *mime_type = gtk_recent_info_get_mime_type (info);
|
||||
|
||||
if (mime_type &&
|
||||
file_procedure_find_by_mime_type (gimp->plug_in_manager->load_procs,
|
||||
mime_type))
|
||||
gimp_plug_in_manager_file_procedure_find_by_mime_type (gimp->plug_in_manager,
|
||||
GIMP_FILE_PROCEDURE_GROUP_OPEN,
|
||||
mime_type))
|
||||
{
|
||||
GimpImagefile *imagefile;
|
||||
GFile *file;
|
||||
|
@ -38,11 +38,9 @@
|
||||
#include "core/gimplayer.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
#include "file/file-open.h"
|
||||
#include "file/file-procedure.h"
|
||||
#include "file/file-save.h"
|
||||
#include "file/file-utils.h"
|
||||
#include "plug-in/gimppluginmanager-file.h"
|
||||
#include "plug-in/gimppluginmanager.h"
|
||||
#include "plug-in/gimppluginprocedure.h"
|
||||
|
||||
#include "gimppdb.h"
|
||||
@ -73,8 +71,9 @@ file_load_invoker (GimpProcedure *procedure,
|
||||
return gimp_procedure_get_return_values (procedure, FALSE,
|
||||
error ? *error : NULL);
|
||||
|
||||
file_proc = file_procedure_find (gimp->plug_in_manager->load_procs,
|
||||
file, error);
|
||||
file_proc = gimp_plug_in_manager_file_procedure_find (gimp->plug_in_manager,
|
||||
GIMP_FILE_PROCEDURE_GROUP_OPEN,
|
||||
file, error);
|
||||
|
||||
if (! file_proc)
|
||||
{
|
||||
@ -279,12 +278,14 @@ file_save_invoker (GimpProcedure *procedure,
|
||||
return gimp_procedure_get_return_values (procedure, FALSE,
|
||||
error ? *error : NULL);
|
||||
|
||||
file_proc = file_procedure_find (gimp->plug_in_manager->save_procs,
|
||||
file, NULL);
|
||||
file_proc = gimp_plug_in_manager_file_procedure_find (gimp->plug_in_manager,
|
||||
GIMP_FILE_PROCEDURE_GROUP_SAVE,
|
||||
file, NULL);
|
||||
|
||||
if (! file_proc)
|
||||
file_proc = file_procedure_find (gimp->plug_in_manager->export_procs,
|
||||
file, error);
|
||||
file_proc = gimp_plug_in_manager_file_procedure_find (gimp->plug_in_manager,
|
||||
GIMP_FILE_PROCEDURE_GROUP_EXPORT,
|
||||
file, error);
|
||||
|
||||
if (! file_proc)
|
||||
{
|
||||
|
@ -46,6 +46,8 @@ libappplug_in_a_SOURCES = \
|
||||
gimppluginmanager-data.h \
|
||||
gimppluginmanager-file.c \
|
||||
gimppluginmanager-file.h \
|
||||
gimppluginmanager-file-procedure.c \
|
||||
gimppluginmanager-file-procedure.h \
|
||||
gimppluginmanager-help-domain.c \
|
||||
gimppluginmanager-help-domain.h \
|
||||
gimppluginmanager-locale-domain.c \
|
||||
|
@ -2,7 +2,7 @@
|
||||
* Copyright (C) 1995, 1996, 1997 Spencer Kimball and Peter Mattis
|
||||
* Copyright (C) 1997 Josh MacDonald
|
||||
*
|
||||
* file-procedure.c
|
||||
* gimppluginmanager-file-procedure.c
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -28,12 +28,12 @@
|
||||
|
||||
#include "libgimpbase/gimpbase.h"
|
||||
|
||||
#include "core/core-types.h"
|
||||
#include "plug-in-types.h"
|
||||
|
||||
#include "plug-in/gimppluginprocedure.h"
|
||||
#include "core/gimp-utils.h"
|
||||
|
||||
#include "file-procedure.h"
|
||||
#include "file-utils.h"
|
||||
#include "gimppluginmanager-file-procedure.h"
|
||||
#include "gimppluginprocedure.h"
|
||||
|
||||
#include "gimp-intl.h"
|
||||
|
||||
@ -252,40 +252,6 @@ file_procedure_find_by_mime_type (GSList *procs,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
gboolean
|
||||
file_procedure_in_group (GimpPlugInProcedure *file_proc,
|
||||
FileProcedureGroup group)
|
||||
{
|
||||
const gchar *name = gimp_object_get_name (file_proc);
|
||||
gboolean is_xcf_save = FALSE;
|
||||
gboolean is_filter = FALSE;
|
||||
|
||||
is_xcf_save = (strcmp (name, "gimp-xcf-save") == 0);
|
||||
|
||||
is_filter = (strcmp (name, "file-gz-save") == 0 ||
|
||||
strcmp (name, "file-bz2-save") == 0 ||
|
||||
strcmp (name, "file-xz-save") == 0);
|
||||
|
||||
switch (group)
|
||||
{
|
||||
case FILE_PROCEDURE_GROUP_SAVE:
|
||||
/* Only .xcf shall pass */
|
||||
return is_xcf_save || is_filter;
|
||||
|
||||
case FILE_PROCEDURE_GROUP_EXPORT:
|
||||
/* Anything but .xcf shall pass */
|
||||
return ! is_xcf_save;
|
||||
|
||||
case FILE_PROCEDURE_GROUP_OPEN:
|
||||
/* No filter applied for Open */
|
||||
return TRUE;
|
||||
|
||||
default:
|
||||
case FILE_PROCEDURE_GROUP_ANY:
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* private functions */
|
||||
|
||||
@ -328,7 +294,7 @@ file_proc_find_by_extension (GSList *procs,
|
||||
gboolean skip_magic,
|
||||
gboolean uri_procs_only)
|
||||
{
|
||||
gchar *ext = file_utils_file_get_ext (file);
|
||||
gchar *ext = gimp_file_get_extension (file);
|
||||
|
||||
if (ext)
|
||||
{
|
@ -1,7 +1,7 @@
|
||||
/* GIMP - The GNU Image Manipulation Program
|
||||
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
||||
*
|
||||
* file-procedure.h
|
||||
* gimppluginmanager-file-procedure.h
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -17,32 +17,21 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __FILE_PROCEDURE_H__
|
||||
#define __FILE_PROCEDURE_H__
|
||||
#ifndef __GIMP_PLUG_IN_MANAGER_FILE_PROCEDURE_H__
|
||||
#define __GIMP_PLUG_IN_MANAGER_FILE_PROCEDURE_H__
|
||||
|
||||
|
||||
typedef enum
|
||||
{
|
||||
FILE_PROCEDURE_GROUP_ANY,
|
||||
FILE_PROCEDURE_GROUP_OPEN,
|
||||
FILE_PROCEDURE_GROUP_SAVE,
|
||||
FILE_PROCEDURE_GROUP_EXPORT
|
||||
} FileProcedureGroup;
|
||||
|
||||
GimpPlugInProcedure *file_procedure_find (GSList *procs,
|
||||
GFile *file,
|
||||
GError **error);
|
||||
GimpPlugInProcedure *file_procedure_find_by_prefix (GSList *procs,
|
||||
GFile *file);
|
||||
GimpPlugInProcedure *file_procedure_find_by_extension (GSList *procs,
|
||||
GFile *file);
|
||||
|
||||
GimpPlugInProcedure *file_procedure_find_by_mime_type (GSList *procs,
|
||||
const gchar *mime_type);
|
||||
|
||||
|
||||
GimpPlugInProcedure *file_procedure_find (GSList *procs,
|
||||
GFile *file,
|
||||
GError **error);
|
||||
GimpPlugInProcedure *file_procedure_find_by_prefix (GSList *procs,
|
||||
GFile *file);
|
||||
GimpPlugInProcedure *file_procedure_find_by_extension (GSList *procs,
|
||||
GFile *file);
|
||||
|
||||
GimpPlugInProcedure *file_procedure_find_by_mime_type (GSList *procs,
|
||||
const gchar *mime_type);
|
||||
|
||||
gboolean file_procedure_in_group (GimpPlugInProcedure *file_proc,
|
||||
FileProcedureGroup group);
|
||||
|
||||
|
||||
#endif /* __FILE_PROCEDURE_H__ */
|
||||
#endif /* __GIMP_PLUG_IN_MANAGER_FILE_PROCEDURE_H__ */
|
@ -19,6 +19,8 @@
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include <gdk-pixbuf/gdk-pixbuf.h>
|
||||
#include <gegl.h>
|
||||
|
||||
@ -27,15 +29,18 @@
|
||||
#include "core/gimp.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
||||
#include "file/file-procedure.h"
|
||||
|
||||
#include "gimpplugin.h"
|
||||
#include "gimpplugindef.h"
|
||||
#include "gimppluginmanager.h"
|
||||
#include "gimppluginmanager-file.h"
|
||||
#include "gimppluginmanager-file-procedure.h"
|
||||
#include "gimppluginprocedure.h"
|
||||
|
||||
|
||||
static gboolean file_procedure_in_group (GimpPlugInProcedure *file_proc,
|
||||
GimpFileProcedureGroup group);
|
||||
|
||||
|
||||
/* public functions */
|
||||
|
||||
gboolean
|
||||
@ -137,13 +142,13 @@ gimp_plug_in_manager_register_save_handler (GimpPlugInManager *manager,
|
||||
gimp_plug_in_procedure_set_file_proc (file_proc,
|
||||
extensions, prefixes, NULL);
|
||||
|
||||
if (file_procedure_in_group (file_proc, FILE_PROCEDURE_GROUP_SAVE))
|
||||
if (file_procedure_in_group (file_proc, GIMP_FILE_PROCEDURE_GROUP_SAVE))
|
||||
{
|
||||
if (! g_slist_find (manager->save_procs, file_proc))
|
||||
manager->save_procs = g_slist_prepend (manager->save_procs, file_proc);
|
||||
}
|
||||
|
||||
if (file_procedure_in_group (file_proc, FILE_PROCEDURE_GROUP_EXPORT))
|
||||
if (file_procedure_in_group (file_proc, GIMP_FILE_PROCEDURE_GROUP_EXPORT))
|
||||
{
|
||||
if (! g_slist_find (manager->export_procs, file_proc))
|
||||
manager->export_procs = g_slist_prepend (manager->export_procs, file_proc);
|
||||
@ -231,9 +236,137 @@ gimp_plug_in_manager_register_thumb_loader (GimpPlugInManager *manager,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
gboolean
|
||||
gimp_plug_in_manager_file_has_exporter (GimpPlugInManager *manager,
|
||||
GFile *file)
|
||||
GimpPlugInProcedure *
|
||||
gimp_plug_in_manager_file_procedure_find (GimpPlugInManager *manager,
|
||||
GimpFileProcedureGroup group,
|
||||
GFile *file,
|
||||
GError **error)
|
||||
{
|
||||
return file_procedure_find (manager->export_procs, file, NULL) != NULL;
|
||||
g_return_val_if_fail (GIMP_IS_PLUG_IN_MANAGER (manager), NULL);
|
||||
g_return_val_if_fail (G_IS_FILE (file), NULL);
|
||||
g_return_val_if_fail (error == NULL || *error == NULL, NULL);
|
||||
|
||||
switch (group)
|
||||
{
|
||||
case GIMP_FILE_PROCEDURE_GROUP_OPEN:
|
||||
return file_procedure_find (manager->load_procs, file, error);
|
||||
|
||||
case GIMP_FILE_PROCEDURE_GROUP_SAVE:
|
||||
return file_procedure_find (manager->save_procs, file, error);
|
||||
|
||||
case GIMP_FILE_PROCEDURE_GROUP_EXPORT:
|
||||
return file_procedure_find (manager->export_procs, file, error);
|
||||
|
||||
default:
|
||||
g_return_val_if_reached (NULL);
|
||||
}
|
||||
}
|
||||
|
||||
GimpPlugInProcedure *
|
||||
gimp_plug_in_manager_file_procedure_find_by_prefix (GimpPlugInManager *manager,
|
||||
GimpFileProcedureGroup group,
|
||||
GFile *file)
|
||||
{
|
||||
g_return_val_if_fail (GIMP_IS_PLUG_IN_MANAGER (manager), NULL);
|
||||
g_return_val_if_fail (G_IS_FILE (file), NULL);
|
||||
|
||||
switch (group)
|
||||
{
|
||||
case GIMP_FILE_PROCEDURE_GROUP_OPEN:
|
||||
return file_procedure_find_by_prefix (manager->load_procs, file);
|
||||
|
||||
case GIMP_FILE_PROCEDURE_GROUP_SAVE:
|
||||
return file_procedure_find_by_prefix (manager->save_procs, file);
|
||||
|
||||
case GIMP_FILE_PROCEDURE_GROUP_EXPORT:
|
||||
return file_procedure_find_by_prefix (manager->export_procs, file);
|
||||
|
||||
default:
|
||||
g_return_val_if_reached (NULL);
|
||||
}
|
||||
}
|
||||
|
||||
GimpPlugInProcedure *
|
||||
gimp_plug_in_manager_file_procedure_find_by_extension (GimpPlugInManager *manager,
|
||||
GimpFileProcedureGroup group,
|
||||
GFile *file)
|
||||
{
|
||||
g_return_val_if_fail (GIMP_IS_PLUG_IN_MANAGER (manager), NULL);
|
||||
g_return_val_if_fail (G_IS_FILE (file), NULL);
|
||||
|
||||
switch (group)
|
||||
{
|
||||
case GIMP_FILE_PROCEDURE_GROUP_OPEN:
|
||||
return file_procedure_find_by_extension (manager->load_procs, file);
|
||||
|
||||
case GIMP_FILE_PROCEDURE_GROUP_SAVE:
|
||||
return file_procedure_find_by_extension (manager->save_procs, file);
|
||||
|
||||
case GIMP_FILE_PROCEDURE_GROUP_EXPORT:
|
||||
return file_procedure_find_by_extension (manager->export_procs, file);
|
||||
|
||||
default:
|
||||
g_return_val_if_reached (NULL);
|
||||
}
|
||||
}
|
||||
|
||||
GimpPlugInProcedure *
|
||||
gimp_plug_in_manager_file_procedure_find_by_mime_type (GimpPlugInManager *manager,
|
||||
GimpFileProcedureGroup group,
|
||||
const gchar *mime_type)
|
||||
{
|
||||
g_return_val_if_fail (GIMP_IS_PLUG_IN_MANAGER (manager), NULL);
|
||||
g_return_val_if_fail (mime_type != NULL, NULL);
|
||||
|
||||
switch (group)
|
||||
{
|
||||
case GIMP_FILE_PROCEDURE_GROUP_OPEN:
|
||||
return file_procedure_find_by_mime_type (manager->load_procs, mime_type);
|
||||
|
||||
case GIMP_FILE_PROCEDURE_GROUP_SAVE:
|
||||
return file_procedure_find_by_mime_type (manager->save_procs, mime_type);
|
||||
|
||||
case GIMP_FILE_PROCEDURE_GROUP_EXPORT:
|
||||
return file_procedure_find_by_mime_type (manager->export_procs, mime_type);
|
||||
|
||||
default:
|
||||
g_return_val_if_reached (NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* private functions */
|
||||
|
||||
gboolean
|
||||
file_procedure_in_group (GimpPlugInProcedure *file_proc,
|
||||
GimpFileProcedureGroup group)
|
||||
{
|
||||
const gchar *name = gimp_object_get_name (file_proc);
|
||||
gboolean is_xcf_save = FALSE;
|
||||
gboolean is_filter = FALSE;
|
||||
|
||||
is_xcf_save = (strcmp (name, "gimp-xcf-save") == 0);
|
||||
|
||||
is_filter = (strcmp (name, "file-gz-save") == 0 ||
|
||||
strcmp (name, "file-bz2-save") == 0 ||
|
||||
strcmp (name, "file-xz-save") == 0);
|
||||
|
||||
switch (group)
|
||||
{
|
||||
case GIMP_FILE_PROCEDURE_GROUP_SAVE:
|
||||
/* Only .xcf shall pass */
|
||||
return is_xcf_save || is_filter;
|
||||
|
||||
case GIMP_FILE_PROCEDURE_GROUP_EXPORT:
|
||||
/* Anything but .xcf shall pass */
|
||||
return ! is_xcf_save;
|
||||
|
||||
case GIMP_FILE_PROCEDURE_GROUP_OPEN:
|
||||
/* No filter applied for Open */
|
||||
return TRUE;
|
||||
|
||||
default:
|
||||
case GIMP_FILE_PROCEDURE_GROUP_ANY:
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
@ -41,8 +41,24 @@ gboolean gimp_plug_in_manager_register_handles_uri (GimpPlugInManager *manage
|
||||
gboolean gimp_plug_in_manager_register_thumb_loader (GimpPlugInManager *manager,
|
||||
const gchar *load_proc,
|
||||
const gchar *thumb_proc);
|
||||
gboolean gimp_plug_in_manager_file_has_exporter (GimpPlugInManager *manager,
|
||||
GFile *file);
|
||||
|
||||
GimpPlugInProcedure *
|
||||
gimp_plug_in_manager_file_procedure_find (GimpPlugInManager *manager,
|
||||
GimpFileProcedureGroup group,
|
||||
GFile *file,
|
||||
GError **error);
|
||||
GimpPlugInProcedure *
|
||||
gimp_plug_in_manager_file_procedure_find_by_prefix (GimpPlugInManager *manager,
|
||||
GimpFileProcedureGroup group,
|
||||
GFile *file);
|
||||
GimpPlugInProcedure *
|
||||
gimp_plug_in_manager_file_procedure_find_by_extension (GimpPlugInManager *manager,
|
||||
GimpFileProcedureGroup group,
|
||||
GFile *file);
|
||||
GimpPlugInProcedure *
|
||||
gimp_plug_in_manager_file_procedure_find_by_mime_type (GimpPlugInManager *manager,
|
||||
GimpFileProcedureGroup group,
|
||||
const gchar *mime_type);
|
||||
|
||||
|
||||
#endif /* __GIMP_PLUG_IN_MANAGER_FILE_H__ */
|
||||
|
@ -78,6 +78,39 @@ gimp_plug_in_call_mode_get_type (void)
|
||||
return type;
|
||||
}
|
||||
|
||||
GType
|
||||
gimp_file_procedure_group_get_type (void)
|
||||
{
|
||||
static const GEnumValue values[] =
|
||||
{
|
||||
{ GIMP_FILE_PROCEDURE_GROUP_ANY, "GIMP_FILE_PROCEDURE_GROUP_ANY", "any" },
|
||||
{ GIMP_FILE_PROCEDURE_GROUP_OPEN, "GIMP_FILE_PROCEDURE_GROUP_OPEN", "open" },
|
||||
{ GIMP_FILE_PROCEDURE_GROUP_SAVE, "GIMP_FILE_PROCEDURE_GROUP_SAVE", "save" },
|
||||
{ GIMP_FILE_PROCEDURE_GROUP_EXPORT, "GIMP_FILE_PROCEDURE_GROUP_EXPORT", "export" },
|
||||
{ 0, NULL, NULL }
|
||||
};
|
||||
|
||||
static const GimpEnumDesc descs[] =
|
||||
{
|
||||
{ GIMP_FILE_PROCEDURE_GROUP_ANY, "GIMP_FILE_PROCEDURE_GROUP_ANY", NULL },
|
||||
{ GIMP_FILE_PROCEDURE_GROUP_OPEN, "GIMP_FILE_PROCEDURE_GROUP_OPEN", NULL },
|
||||
{ GIMP_FILE_PROCEDURE_GROUP_SAVE, "GIMP_FILE_PROCEDURE_GROUP_SAVE", NULL },
|
||||
{ GIMP_FILE_PROCEDURE_GROUP_EXPORT, "GIMP_FILE_PROCEDURE_GROUP_EXPORT", NULL },
|
||||
{ 0, NULL, NULL }
|
||||
};
|
||||
|
||||
static GType type = 0;
|
||||
|
||||
if (G_UNLIKELY (! type))
|
||||
{
|
||||
type = g_enum_register_static ("GimpFileProcedureGroup", values);
|
||||
gimp_type_set_translation_context (type, "file-procedure-group");
|
||||
gimp_enum_set_value_descriptions (type, descs);
|
||||
}
|
||||
|
||||
return type;
|
||||
}
|
||||
|
||||
|
||||
/* Generated data ends here */
|
||||
|
||||
|
@ -47,4 +47,17 @@ typedef enum /*< pdb-skip >*/
|
||||
} GimpPlugInCallMode;
|
||||
|
||||
|
||||
#define GIMP_TYPE_FILE_PROCEDURE_GROUP (gimp_file_procedure_group_get_type ())
|
||||
|
||||
GType gimp_file_procedure_group_get_type (void) G_GNUC_CONST;
|
||||
|
||||
typedef enum /*< pdb-skip >*/
|
||||
{
|
||||
GIMP_FILE_PROCEDURE_GROUP_ANY,
|
||||
GIMP_FILE_PROCEDURE_GROUP_OPEN,
|
||||
GIMP_FILE_PROCEDURE_GROUP_SAVE,
|
||||
GIMP_FILE_PROCEDURE_GROUP_EXPORT
|
||||
} GimpFileProcedureGroup;
|
||||
|
||||
|
||||
#endif /* __PLUG_IN_ENUMS_H__ */
|
||||
|
@ -15,6 +15,8 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
@ -28,11 +30,18 @@
|
||||
|
||||
#include "dialogs/dialogs-types.h"
|
||||
|
||||
#include "display/gimpdisplay.h"
|
||||
#include "display/gimpdisplayshell.h"
|
||||
#include "display/gimpdisplayshell-scale.h"
|
||||
#include "display/gimpdisplayshell-transform.h"
|
||||
#include "display/gimpimagewindow.h"
|
||||
#include "core/gimp.h"
|
||||
#include "core/gimpchannel.h"
|
||||
#include "core/gimpcontext.h"
|
||||
#include "core/gimpimage.h"
|
||||
#include "core/gimplayer.h"
|
||||
#include "core/gimptoolinfo.h"
|
||||
#include "core/gimptooloptions.h"
|
||||
|
||||
#include "plug-in/gimppluginmanager-file.h"
|
||||
|
||||
#include "file/file-open.h"
|
||||
#include "file/file-save.h"
|
||||
|
||||
#include "widgets/gimpdialogfactory.h"
|
||||
#include "widgets/gimpdock.h"
|
||||
@ -47,20 +56,11 @@
|
||||
#include "widgets/gimpuimanager.h"
|
||||
#include "widgets/gimpwidgets-utils.h"
|
||||
|
||||
#include "file/file-open.h"
|
||||
#include "file/file-procedure.h"
|
||||
#include "file/file-save.h"
|
||||
#include "file/file-utils.h"
|
||||
|
||||
#include "plug-in/gimppluginmanager.h"
|
||||
|
||||
#include "core/gimp.h"
|
||||
#include "core/gimpchannel.h"
|
||||
#include "core/gimpcontext.h"
|
||||
#include "core/gimpimage.h"
|
||||
#include "core/gimplayer.h"
|
||||
#include "core/gimptoolinfo.h"
|
||||
#include "core/gimptooloptions.h"
|
||||
#include "display/gimpdisplay.h"
|
||||
#include "display/gimpdisplayshell.h"
|
||||
#include "display/gimpdisplayshell-scale.h"
|
||||
#include "display/gimpdisplayshell-transform.h"
|
||||
#include "display/gimpimagewindow.h"
|
||||
|
||||
#include "tests.h"
|
||||
|
||||
@ -218,9 +218,10 @@ saved_imported_file_files (gconstpointer data)
|
||||
g_object_unref (import_file);
|
||||
|
||||
/* Save */
|
||||
proc = file_procedure_find (image->gimp->plug_in_manager->save_procs,
|
||||
save_file,
|
||||
NULL /*error*/);
|
||||
proc = gimp_plug_in_manager_file_procedure_find (image->gimp->plug_in_manager,
|
||||
GIMP_FILE_PROCEDURE_GROUP_SAVE,
|
||||
save_file,
|
||||
NULL /*error*/);
|
||||
file_save (gimp,
|
||||
image,
|
||||
NULL /*progress*/,
|
||||
@ -261,9 +262,10 @@ exported_file_files (gconstpointer data)
|
||||
save_file = g_file_new_for_path (save_filename);
|
||||
g_free (save_filename);
|
||||
|
||||
proc = file_procedure_find (image->gimp->plug_in_manager->export_procs,
|
||||
save_file,
|
||||
NULL /*error*/);
|
||||
proc = gimp_plug_in_manager_file_procedure_find (image->gimp->plug_in_manager,
|
||||
GIMP_FILE_PROCEDURE_GROUP_EXPORT,
|
||||
save_file,
|
||||
NULL /*error*/);
|
||||
file_save (gimp,
|
||||
image,
|
||||
NULL /*progress*/,
|
||||
@ -331,9 +333,10 @@ clear_import_file_after_export (gconstpointer data)
|
||||
save_file = g_file_new_for_path (save_filename);
|
||||
g_free (save_filename);
|
||||
|
||||
proc = file_procedure_find (image->gimp->plug_in_manager->export_procs,
|
||||
save_file,
|
||||
NULL /*error*/);
|
||||
proc = gimp_plug_in_manager_file_procedure_find (image->gimp->plug_in_manager,
|
||||
GIMP_FILE_PROCEDURE_GROUP_EXPORT,
|
||||
save_file,
|
||||
NULL /*error*/);
|
||||
file_save (gimp,
|
||||
image,
|
||||
NULL /*progress*/,
|
||||
|
@ -15,10 +15,11 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include <gegl.h>
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#include "libgimpbase/gimpbase.h"
|
||||
@ -47,11 +48,10 @@
|
||||
#include "vectors/gimpbezierstroke.h"
|
||||
#include "vectors/gimpvectors.h"
|
||||
|
||||
#include "file/file-open.h"
|
||||
#include "file/file-procedure.h"
|
||||
#include "file/file-save.h"
|
||||
#include "plug-in/gimppluginmanager-file.h"
|
||||
|
||||
#include "plug-in/gimppluginmanager.h"
|
||||
#include "file/file-open.h"
|
||||
#include "file/file-save.h"
|
||||
|
||||
#include "tests.h"
|
||||
|
||||
@ -254,9 +254,10 @@ gimp_test_load_image (Gimp *gimp,
|
||||
GimpImage *image;
|
||||
GimpPDBStatusType unused;
|
||||
|
||||
proc = file_procedure_find (gimp->plug_in_manager->load_procs,
|
||||
file,
|
||||
NULL /*error*/);
|
||||
proc = gimp_plug_in_manager_file_procedure_find (gimp->plug_in_manager,
|
||||
GIMP_FILE_PROCEDURE_GROUP_OPEN,
|
||||
file,
|
||||
NULL /*error*/);
|
||||
image = file_open_image (gimp,
|
||||
gimp_get_user_context (gimp),
|
||||
NULL /*progress*/,
|
||||
@ -309,9 +310,10 @@ gimp_write_and_read_file (Gimp *gimp,
|
||||
file = g_file_new_for_path (filename);
|
||||
g_free (filename);
|
||||
|
||||
proc = file_procedure_find (image->gimp->plug_in_manager->save_procs,
|
||||
file,
|
||||
NULL /*error*/);
|
||||
proc = gimp_plug_in_manager_file_procedure_find (image->gimp->plug_in_manager,
|
||||
GIMP_FILE_PROCEDURE_GROUP_SAVE,
|
||||
file,
|
||||
NULL /*error*/);
|
||||
file_save (gimp,
|
||||
image,
|
||||
NULL /*progress*/,
|
||||
@ -807,7 +809,7 @@ gimp_assert_mainimage (GimpImage *image,
|
||||
g_assert (iter == NULL);
|
||||
|
||||
/* Sample points, we rely on the same ordering as when we added
|
||||
* them, although this ordering is not a necessaity
|
||||
* them, although this ordering is not a necessity
|
||||
*/
|
||||
iter = gimp_image_get_sample_points (image);
|
||||
g_assert (iter != NULL);
|
||||
|
@ -39,13 +39,12 @@
|
||||
#include "widgets-types.h"
|
||||
|
||||
#include "core/gimp.h"
|
||||
#include "core/gimp-utils.h"
|
||||
#include "core/gimpimage.h"
|
||||
|
||||
#include "plug-in/gimppluginmanager.h"
|
||||
#include "plug-in/gimppluginmanager-file.h"
|
||||
|
||||
#include "file/file-procedure.h"
|
||||
#include "file/file-save.h"
|
||||
#include "file/file-utils.h"
|
||||
|
||||
#include "gimpdnd-xds.h"
|
||||
#include "gimpfiledialog.h"
|
||||
@ -95,7 +94,7 @@ gimp_dnd_xds_source_set (GdkDragContext *context,
|
||||
|
||||
if (file)
|
||||
{
|
||||
GFile *xcf_file = file_utils_file_with_new_ext (file, untitled);
|
||||
GFile *xcf_file = gimp_file_with_new_extension (file, untitled);
|
||||
basename = g_file_get_basename (xcf_file);
|
||||
g_object_unref (xcf_file);
|
||||
}
|
||||
@ -153,12 +152,14 @@ gimp_dnd_xds_save_image (GdkDragContext *context,
|
||||
|
||||
file = g_file_new_for_uri (uri);
|
||||
|
||||
proc = file_procedure_find (image->gimp->plug_in_manager->save_procs,
|
||||
file, NULL);
|
||||
proc = gimp_plug_in_manager_file_procedure_find (image->gimp->plug_in_manager,
|
||||
GIMP_FILE_PROCEDURE_GROUP_SAVE,
|
||||
file, NULL);
|
||||
if (! proc)
|
||||
{
|
||||
proc = file_procedure_find (image->gimp->plug_in_manager->export_procs,
|
||||
file, NULL);
|
||||
proc = gimp_plug_in_manager_file_procedure_find (image->gimp->plug_in_manager,
|
||||
GIMP_FILE_PROCEDURE_GROUP_EXPORT,
|
||||
file, NULL);
|
||||
export = TRUE;
|
||||
}
|
||||
|
||||
|
@ -31,9 +31,9 @@
|
||||
#include "widgets-types.h"
|
||||
|
||||
#include "core/gimp.h"
|
||||
#include "core/gimp-utils.h"
|
||||
#include "core/gimpimage.h"
|
||||
|
||||
#include "file/file-utils.h"
|
||||
#include "file/gimp-file.h"
|
||||
|
||||
#include "pdb/gimppdb.h"
|
||||
@ -191,7 +191,7 @@ gimp_export_dialog_set_image (GimpExportDialog *dialog,
|
||||
|
||||
if (ext_file)
|
||||
{
|
||||
GFile *tmp_file = file_utils_file_with_new_ext (name_file, ext_file);
|
||||
GFile *tmp_file = gimp_file_with_new_extension (name_file, ext_file);
|
||||
basename = g_path_get_basename (gimp_file_get_utf8_name (tmp_file));
|
||||
g_object_unref (tmp_file);
|
||||
g_object_unref (ext_file);
|
||||
|
@ -37,9 +37,7 @@
|
||||
#include "core/gimpundostack.h"
|
||||
#include "core/gimp-utils.h"
|
||||
|
||||
#include "file/file-procedure.h"
|
||||
|
||||
#include "plug-in/gimppluginmanager.h"
|
||||
#include "plug-in/gimppluginmanager-file.h"
|
||||
#include "plug-in/gimppluginprocedure.h"
|
||||
|
||||
#include "gimpimagepropview.h"
|
||||
@ -356,20 +354,20 @@ static void
|
||||
gimp_image_prop_view_label_set_filetype (GtkWidget *label,
|
||||
GimpImage *image)
|
||||
{
|
||||
GimpPlugInManager *manager = image->gimp->plug_in_manager;
|
||||
GimpPlugInProcedure *proc;
|
||||
|
||||
proc = gimp_image_get_save_proc (image);
|
||||
GimpPlugInProcedure *proc = gimp_image_get_save_proc (image);
|
||||
|
||||
if (! proc)
|
||||
proc = gimp_image_get_load_proc (image);
|
||||
|
||||
if (! proc)
|
||||
{
|
||||
GFile *file = gimp_image_get_file (image);
|
||||
GimpPlugInManager *manager = image->gimp->plug_in_manager;
|
||||
GFile *file = gimp_image_get_file (image);
|
||||
|
||||
if (file)
|
||||
proc = file_procedure_find (manager->load_procs, file, NULL);
|
||||
proc = gimp_plug_in_manager_file_procedure_find (manager,
|
||||
GIMP_FILE_PROCEDURE_GROUP_OPEN,
|
||||
file, NULL);
|
||||
}
|
||||
|
||||
gtk_label_set_text (GTK_LABEL (label),
|
||||
|
@ -31,10 +31,10 @@
|
||||
#include "widgets-types.h"
|
||||
|
||||
#include "core/gimp.h"
|
||||
#include "core/gimp-utils.h"
|
||||
#include "core/gimpimage.h"
|
||||
#include "core/gimpimage-metadata.h"
|
||||
|
||||
#include "file/file-utils.h"
|
||||
#include "file/gimp-file.h"
|
||||
|
||||
#include "pdb/gimppdb.h"
|
||||
@ -311,7 +311,7 @@ gimp_save_dialog_set_image (GimpSaveDialog *dialog,
|
||||
|
||||
if (ext_file)
|
||||
{
|
||||
GFile *tmp_file = file_utils_file_with_new_ext (name_file, ext_file);
|
||||
GFile *tmp_file = gimp_file_with_new_extension (name_file, ext_file);
|
||||
basename = g_path_get_basename (gimp_file_get_utf8_name (tmp_file));
|
||||
g_object_unref (tmp_file);
|
||||
g_object_unref (ext_file);
|
||||
|
@ -36,9 +36,7 @@
|
||||
#include "core/gimpprogress.h"
|
||||
#include "core/gimpsubprogress.h"
|
||||
|
||||
#include "plug-in/gimppluginmanager.h"
|
||||
|
||||
#include "file/file-procedure.h"
|
||||
#include "plug-in/gimppluginmanager-file.h"
|
||||
|
||||
#include "gimpfiledialog.h" /* eek */
|
||||
#include "gimpthumbbox.h"
|
||||
@ -727,8 +725,9 @@ gimp_thumb_box_auto_thumbnail (GimpThumbBox *box)
|
||||
case GIMP_THUMB_STATE_OLD:
|
||||
if (thumb->image_filesize < gimp->config->thumbnail_filesize_limit &&
|
||||
! gimp_thumbnail_has_failed (thumb) &&
|
||||
file_procedure_find_by_extension (gimp->plug_in_manager->load_procs,
|
||||
file))
|
||||
gimp_plug_in_manager_file_procedure_find_by_extension (gimp->plug_in_manager,
|
||||
GIMP_FILE_PROCEDURE_GROUP_OPEN,
|
||||
file))
|
||||
{
|
||||
if (thumb->image_filesize > 0)
|
||||
{
|
||||
|
@ -238,7 +238,6 @@ app/display/gimpnavigationeditor.c
|
||||
app/display/gimpstatusbar.c
|
||||
|
||||
app/file/file-open.c
|
||||
app/file/file-procedure.c
|
||||
app/file/file-remote.c
|
||||
app/file/file-save.c
|
||||
app/file/file-utils.c
|
||||
@ -324,6 +323,7 @@ app/plug-in/gimpplugin-message.c
|
||||
app/plug-in/gimpplugin-progress.c
|
||||
app/plug-in/gimppluginmanager.c
|
||||
app/plug-in/gimppluginmanager-call.c
|
||||
app/plug-in/gimppluginmanager-file-procedure.c
|
||||
app/plug-in/gimppluginmanager-restore.c
|
||||
app/plug-in/gimppluginprocedure.c
|
||||
app/plug-in/gimppluginprocframe.c
|
||||
|
@ -65,8 +65,9 @@ HELP
|
||||
return gimp_procedure_get_return_values (procedure, FALSE,
|
||||
error ? *error : NULL);
|
||||
|
||||
file_proc = file_procedure_find (gimp->plug_in_manager->load_procs,
|
||||
file, error);
|
||||
file_proc = gimp_plug_in_manager_file_procedure_find (gimp->plug_in_manager,
|
||||
GIMP_FILE_PROCEDURE_GROUP_OPEN,
|
||||
file, error);
|
||||
|
||||
if (! file_proc)
|
||||
{
|
||||
@ -300,12 +301,14 @@ HELP
|
||||
return gimp_procedure_get_return_values (procedure, FALSE,
|
||||
error ? *error : NULL);
|
||||
|
||||
file_proc = file_procedure_find (gimp->plug_in_manager->save_procs,
|
||||
file, NULL);
|
||||
file_proc = gimp_plug_in_manager_file_procedure_find (gimp->plug_in_manager,
|
||||
GIMP_FILE_PROCEDURE_GROUP_SAVE,
|
||||
file, NULL);
|
||||
|
||||
if (! file_proc)
|
||||
file_proc = file_procedure_find (gimp->plug_in_manager->export_procs,
|
||||
file, error);
|
||||
file_proc = gimp_plug_in_manager_file_procedure_find (gimp->plug_in_manager,
|
||||
GIMP_FILE_PROCEDURE_GROUP_EXPORT,
|
||||
file, error);
|
||||
|
||||
if (! file_proc)
|
||||
{
|
||||
@ -688,12 +691,10 @@ CODE
|
||||
"libgimpconfig/gimpconfig.h"
|
||||
"core/gimp.h"
|
||||
"core/gimp-utils.h"
|
||||
"plug-in/gimppluginmanager.h"
|
||||
"plug-in/gimppluginmanager-file.h"
|
||||
"plug-in/gimppluginprocedure.h"
|
||||
"file/file-open.h"
|
||||
"file/file-save.h"
|
||||
"file/file-procedure.h"
|
||||
"file/file-utils.h");
|
||||
|
||||
@procs = qw(file_load
|
||||
|
Reference in New Issue
Block a user