mirror of https://github.com/GNOME/gimp.git
libgimp: add gimp_file_procedure_set_handles_uri()
Implementing a shiny new GimpFileProcedure doesn't mean the libraries we use to load/save files are automatically capable of handling remote files, so we still need this flag.
This commit is contained in:
parent
f042d21989
commit
cd836e9d96
|
@ -26,11 +26,12 @@
|
|||
|
||||
struct _GimpFileProcedurePrivate
|
||||
{
|
||||
gchar *mime_types;
|
||||
gchar *extensions;
|
||||
gchar *prefixes;
|
||||
gchar *magics;
|
||||
gint priority;
|
||||
gchar *mime_types;
|
||||
gchar *extensions;
|
||||
gchar *prefixes;
|
||||
gchar *magics;
|
||||
gint priority;
|
||||
gboolean handles_uri;
|
||||
};
|
||||
|
||||
|
||||
|
@ -280,3 +281,47 @@ gimp_file_procedure_get_priority (GimpFileProcedure *procedure)
|
|||
|
||||
return procedure->priv->priority;
|
||||
}
|
||||
|
||||
/**
|
||||
* gimp_file_procedure_set_handles_uri:
|
||||
* @procedure: A #GimpFileProcedure.
|
||||
* @handles_uri: The procedure's handles uri flag.
|
||||
*
|
||||
* Registers a file procedure as capable of handling arbitrary URIs
|
||||
* via GIO.
|
||||
*
|
||||
* When @handles_uri is set to %TRUE, the procedure will get a #GFile
|
||||
* passed that can point to a remote file.
|
||||
*
|
||||
* When @handles_uri is set to %FALSE, the procedure will get a local
|
||||
* #GFile passed and can use g_file_get_path() to get to a filename
|
||||
* that can be used with whatever non-GIO means of dealing with the
|
||||
* file.
|
||||
*
|
||||
* Since: 3.0
|
||||
**/
|
||||
void
|
||||
gimp_file_procedure_set_handles_uri (GimpFileProcedure *procedure,
|
||||
gint handles_uri)
|
||||
{
|
||||
g_return_if_fail (GIMP_IS_FILE_PROCEDURE (procedure));
|
||||
|
||||
procedure->priv->handles_uri = handles_uri;
|
||||
}
|
||||
|
||||
/**
|
||||
* gimp_file_procedure_get_handles_uri:
|
||||
* @procedure: A #GimpFileProcedure.
|
||||
*
|
||||
* Returns: The procedure's handles uri flag as set with
|
||||
* gimp_file_procedure_set_handles_uri().
|
||||
*
|
||||
* Since: 3.0
|
||||
**/
|
||||
gint
|
||||
gimp_file_procedure_get_handles_uri (GimpFileProcedure *procedure)
|
||||
{
|
||||
g_return_val_if_fail (GIMP_IS_FILE_PROCEDURE (procedure), 0);
|
||||
|
||||
return procedure->priv->handles_uri;
|
||||
}
|
||||
|
|
|
@ -54,27 +54,31 @@ struct _GimpFileProcedureClass
|
|||
};
|
||||
|
||||
|
||||
GType gimp_file_procedure_get_type (void) G_GNUC_CONST;
|
||||
GType gimp_file_procedure_get_type (void) G_GNUC_CONST;
|
||||
|
||||
void gimp_file_procedure_set_mime_types (GimpFileProcedure *procedure,
|
||||
const gchar *mime_types);
|
||||
const gchar * gimp_file_procedure_get_mime_types (GimpFileProcedure *procedure);
|
||||
void gimp_file_procedure_set_mime_types (GimpFileProcedure *procedure,
|
||||
const gchar *mime_types);
|
||||
const gchar * gimp_file_procedure_get_mime_types (GimpFileProcedure *procedure);
|
||||
|
||||
void gimp_file_procedure_set_extensions (GimpFileProcedure *procedure,
|
||||
const gchar *extensions);
|
||||
const gchar * gimp_file_procedure_get_extensions (GimpFileProcedure *procedure);
|
||||
void gimp_file_procedure_set_extensions (GimpFileProcedure *procedure,
|
||||
const gchar *extensions);
|
||||
const gchar * gimp_file_procedure_get_extensions (GimpFileProcedure *procedure);
|
||||
|
||||
void gimp_file_procedure_set_prefixes (GimpFileProcedure *procedure,
|
||||
const gchar *prefixes);
|
||||
const gchar * gimp_file_procedure_get_prefixes (GimpFileProcedure *procedure);
|
||||
void gimp_file_procedure_set_prefixes (GimpFileProcedure *procedure,
|
||||
const gchar *prefixes);
|
||||
const gchar * gimp_file_procedure_get_prefixes (GimpFileProcedure *procedure);
|
||||
|
||||
void gimp_file_procedure_set_magics (GimpFileProcedure *procedure,
|
||||
const gchar *magics);
|
||||
const gchar * gimp_file_procedure_get_magics (GimpFileProcedure *procedure);
|
||||
void gimp_file_procedure_set_magics (GimpFileProcedure *procedure,
|
||||
const gchar *magics);
|
||||
const gchar * gimp_file_procedure_get_magics (GimpFileProcedure *procedure);
|
||||
|
||||
void gimp_file_procedure_set_priority (GimpFileProcedure *procedure,
|
||||
gint priority);
|
||||
gint gimp_file_procedure_get_priority (GimpFileProcedure *procedure);
|
||||
void gimp_file_procedure_set_priority (GimpFileProcedure *procedure,
|
||||
gint priority);
|
||||
gint gimp_file_procedure_get_priority (GimpFileProcedure *procedure);
|
||||
|
||||
void gimp_file_procedure_set_handles_uri (GimpFileProcedure *procedure,
|
||||
gboolean handles_uri);
|
||||
gboolean gimp_file_procedure_get_handles_uri (GimpFileProcedure *procedure);
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
|
|
@ -135,7 +135,8 @@ gimp_load_procedure_install (GimpProcedure *procedure)
|
|||
gimp_file_procedure_get_prefixes (file_proc));
|
||||
}
|
||||
|
||||
gimp_register_file_handler_uri (gimp_procedure_get_name (procedure));
|
||||
if (gimp_file_procedure_get_handles_uri (file_proc))
|
||||
gimp_register_file_handler_uri (gimp_procedure_get_name (procedure));
|
||||
|
||||
mime_types = gimp_file_procedure_get_mime_types (file_proc);
|
||||
if (mime_types)
|
||||
|
|
|
@ -128,7 +128,8 @@ gimp_save_procedure_install (GimpProcedure *procedure)
|
|||
gimp_file_procedure_get_extensions (file_proc),
|
||||
gimp_file_procedure_get_prefixes (file_proc));
|
||||
|
||||
gimp_register_file_handler_uri (gimp_procedure_get_name (procedure));
|
||||
if (gimp_file_procedure_get_handles_uri (file_proc))
|
||||
gimp_register_file_handler_uri (gimp_procedure_get_name (procedure));
|
||||
|
||||
mime_types = gimp_file_procedure_get_mime_types (file_proc);
|
||||
if (mime_types)
|
||||
|
|
|
@ -173,8 +173,6 @@ load_image (GFile *file,
|
|||
GError *error = NULL;
|
||||
|
||||
filename = g_file_get_path (file);
|
||||
if (! filename)
|
||||
goto out;
|
||||
|
||||
if (! g_key_file_load_from_file (key_file, filename, G_KEY_FILE_NONE, &error))
|
||||
goto out;
|
||||
|
|
|
@ -127,6 +127,8 @@ pat_create_procedure (GimpPlugIn *plug_in,
|
|||
"image/x-gimp-pat");
|
||||
gimp_file_procedure_set_extensions (GIMP_FILE_PROCEDURE (procedure),
|
||||
"pat");
|
||||
gimp_file_procedure_set_handles_uri (GIMP_FILE_PROCEDURE (procedure),
|
||||
TRUE);
|
||||
|
||||
gimp_procedure_add_argument (procedure,
|
||||
gimp_param_spec_string ("description",
|
||||
|
|
Loading…
Reference in New Issue