mirror of https://github.com/GNOME/gimp.git
added backend methods uri_backend_init() and uri_backend_shutdown().
2005-02-07 Michael Natterer <mitch@gimp.org> * plug-ins/uri/uri-backend.h: added backend methods uri_backend_init() and uri_backend_shutdown(). * plug-ins/uri/uri.c: call them around using other backend functions (both in query() and run()). * plug-ins/uri/uri-backend-gnomevfs.c: moved init()/shutdown() of GnomeVFS into the new backend methods. Create the list of supported protocols dynamically. Get rid of one translatable string. * plug-ins/uri/uri-backend-wget.c: implement the new methods as empty stubs which always succeed.
This commit is contained in:
parent
5257aa9cbb
commit
796898f72a
16
ChangeLog
16
ChangeLog
|
@ -1,3 +1,19 @@
|
|||
2005-02-07 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* plug-ins/uri/uri-backend.h: added backend methods
|
||||
uri_backend_init() and uri_backend_shutdown().
|
||||
|
||||
* plug-ins/uri/uri.c: call them around using other backend
|
||||
functions (both in query() and run()).
|
||||
|
||||
* plug-ins/uri/uri-backend-gnomevfs.c: moved init()/shutdown() of
|
||||
GnomeVFS into the new backend methods. Create the list of
|
||||
supported protocols dynamically. Get rid of one translatable
|
||||
string.
|
||||
|
||||
* plug-ins/uri/uri-backend-wget.c: implement the new methods as
|
||||
empty stubs which always succeed.
|
||||
|
||||
2005-02-07 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* libgimpconfig/Makefile.am
|
||||
|
|
|
@ -35,11 +35,76 @@ static gboolean copy_uri (const gchar *src_uri,
|
|||
GError **error);
|
||||
|
||||
|
||||
/* private variables */
|
||||
|
||||
static gchar *supported_protocols = NULL;
|
||||
|
||||
|
||||
/* public functions */
|
||||
|
||||
gboolean
|
||||
uri_backend_init (GError **error)
|
||||
{
|
||||
if (! gnome_vfs_init ())
|
||||
{
|
||||
g_set_error (error, 0, 0, "Could not initialize GnomeVFS");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void
|
||||
uri_backend_shutdown (void)
|
||||
{
|
||||
gnome_vfs_shutdown ();
|
||||
}
|
||||
|
||||
const gchar *
|
||||
uri_backend_get_load_protocols (void)
|
||||
{
|
||||
if (! supported_protocols)
|
||||
{
|
||||
static const gchar *protocols[] =
|
||||
{
|
||||
"http:",
|
||||
"https:",
|
||||
"ftp:",
|
||||
"sftp:",
|
||||
"ssh:",
|
||||
"smb:",
|
||||
"dav:",
|
||||
"davs:"
|
||||
};
|
||||
|
||||
GString *string = g_string_new (NULL);
|
||||
gint i;
|
||||
|
||||
for (i = 0; i < G_N_ELEMENTS (protocols); i++)
|
||||
{
|
||||
gchar *uri;
|
||||
GnomeVFSURI *vfs_uri;
|
||||
|
||||
uri = g_strdup_printf ("%s//foo/bar.xcf", protocols[i]);
|
||||
|
||||
vfs_uri = gnome_vfs_uri_new (uri);
|
||||
|
||||
if (vfs_uri)
|
||||
{
|
||||
if (string->len > 0)
|
||||
g_string_append_c (string, ',');
|
||||
|
||||
g_string_append (string, protocols[i]);
|
||||
|
||||
gnome_vfs_uri_unref (vfs_uri);
|
||||
}
|
||||
|
||||
g_free (uri);
|
||||
}
|
||||
|
||||
supported_protocols = g_string_free (string, FALSE);
|
||||
}
|
||||
|
||||
return "http:,https:,ftp:,sftp:,ssh:,smb:,dav:,davs:";
|
||||
}
|
||||
|
||||
|
@ -56,8 +121,6 @@ uri_backend_load_image (const gchar *uri,
|
|||
success = copy_uri (uri, dest_uri, error);
|
||||
g_free (dest_uri);
|
||||
|
||||
gnome_vfs_shutdown ();
|
||||
|
||||
return success;
|
||||
}
|
||||
|
||||
|
@ -78,12 +141,6 @@ copy_uri (const gchar *src_uri,
|
|||
GnomeVFSResult result;
|
||||
gchar *message;
|
||||
|
||||
if (! gnome_vfs_init ())
|
||||
{
|
||||
g_set_error (error, 0, 0, "Could not initialize GnomeVFS");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
gimp_progress_init (_("Connecting to server..."));
|
||||
|
||||
src_info = gnome_vfs_file_info_new ();
|
||||
|
@ -121,16 +178,14 @@ copy_uri (const gchar *src_uri,
|
|||
}
|
||||
|
||||
if (file_size > 0)
|
||||
{
|
||||
message = g_strdup_printf (_("Downloading %llu bytes of image data..."),
|
||||
file_size);
|
||||
gimp_progress_init (message);
|
||||
g_free (message);
|
||||
}
|
||||
message = g_strdup_printf (_("Downloading %llu bytes of image data..."),
|
||||
file_size);
|
||||
else
|
||||
{
|
||||
gimp_progress_init (_("Downloaded 0 bytes of image data"));
|
||||
}
|
||||
message = g_strdup_printf (_("Downloaded %llu bytes of image data"),
|
||||
(GnomeVFSFileSize) 0);
|
||||
|
||||
gimp_progress_init (message);
|
||||
g_free (message);
|
||||
|
||||
while (TRUE)
|
||||
{
|
||||
|
@ -193,4 +248,3 @@ copy_uri (const gchar *src_uri,
|
|||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
|
@ -41,6 +41,17 @@
|
|||
#define BUFSIZE 1024
|
||||
|
||||
|
||||
gboolean
|
||||
uri_backend_init (GError **error)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void
|
||||
uri_backend_shutdown (void)
|
||||
{
|
||||
}
|
||||
|
||||
const gchar *
|
||||
uri_backend_get_load_protocols (void)
|
||||
{
|
||||
|
|
|
@ -20,6 +20,9 @@
|
|||
#define __URI_BACKEND_H__
|
||||
|
||||
|
||||
gboolean uri_backend_init (GError **error);
|
||||
void uri_backend_shutdown (void);
|
||||
|
||||
const gchar * uri_backend_get_load_protocols (void);
|
||||
gboolean uri_backend_load_image (const gchar *uri,
|
||||
const gchar *tmpname,
|
||||
|
|
|
@ -70,24 +70,39 @@ query (void)
|
|||
{ GIMP_PDB_IMAGE, "image", "Output image" }
|
||||
};
|
||||
|
||||
gimp_install_procedure ("file_uri_load",
|
||||
"loads files given an URI",
|
||||
"You need to have GNU Wget installed.",
|
||||
"Spencer Kimball & Peter Mattis",
|
||||
"Spencer Kimball & Peter Mattis",
|
||||
"1995-1997",
|
||||
N_("URI"),
|
||||
NULL,
|
||||
GIMP_PLUGIN,
|
||||
G_N_ELEMENTS (load_args),
|
||||
G_N_ELEMENTS (load_return_vals),
|
||||
load_args, load_return_vals);
|
||||
GError *error = NULL;
|
||||
|
||||
gimp_plugin_icon_register ("file_uri_load",
|
||||
GIMP_ICON_TYPE_STOCK_ID, GIMP_STOCK_WEB);
|
||||
gimp_register_load_handler ("file_uri_load",
|
||||
"",
|
||||
uri_backend_get_load_protocols ());
|
||||
if (! uri_backend_init (&error))
|
||||
{
|
||||
g_message (error->message);
|
||||
g_clear_error (&error);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (uri_backend_get_load_protocols ())
|
||||
{
|
||||
gimp_install_procedure ("file_uri_load",
|
||||
"loads files given an URI",
|
||||
"You need to have GNU Wget installed.",
|
||||
"Spencer Kimball & Peter Mattis",
|
||||
"Spencer Kimball & Peter Mattis",
|
||||
"1995-1997",
|
||||
N_("URI"),
|
||||
NULL,
|
||||
GIMP_PLUGIN,
|
||||
G_N_ELEMENTS (load_args),
|
||||
G_N_ELEMENTS (load_return_vals),
|
||||
load_args, load_return_vals);
|
||||
|
||||
gimp_plugin_icon_register ("file_uri_load",
|
||||
GIMP_ICON_TYPE_STOCK_ID, GIMP_STOCK_WEB);
|
||||
gimp_register_load_handler ("file_uri_load",
|
||||
"",
|
||||
uri_backend_get_load_protocols ());
|
||||
}
|
||||
|
||||
uri_backend_shutdown ();
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -97,10 +112,11 @@ run (const gchar *name,
|
|||
gint *nreturn_vals,
|
||||
GimpParam **return_vals)
|
||||
{
|
||||
static GimpParam values[2];
|
||||
GimpRunMode run_mode;
|
||||
GimpPDBStatusType status = GIMP_PDB_EXECUTION_ERROR;
|
||||
gint32 image_ID;
|
||||
static GimpParam values[2];
|
||||
GimpRunMode run_mode;
|
||||
GimpPDBStatusType status = GIMP_PDB_EXECUTION_ERROR;
|
||||
gint32 image_ID;
|
||||
GError *error = NULL;
|
||||
|
||||
run_mode = param[0].data.d_int32;
|
||||
|
||||
|
@ -110,7 +126,15 @@ run (const gchar *name,
|
|||
values[0].type = GIMP_PDB_STATUS;
|
||||
values[0].data.d_status = status;
|
||||
|
||||
if (strcmp (name, "file_uri_load") == 0)
|
||||
if (! uri_backend_init (&error))
|
||||
{
|
||||
g_message (error->message);
|
||||
g_clear_error (&error);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (! strcmp (name, "file_uri_load") && uri_backend_get_load_protocols ())
|
||||
{
|
||||
image_ID = load_image (param[2].data.d_string, run_mode);
|
||||
|
||||
|
@ -128,6 +152,8 @@ run (const gchar *name,
|
|||
status = GIMP_PDB_CALLING_ERROR;
|
||||
}
|
||||
|
||||
uri_backend_shutdown ();
|
||||
|
||||
values[0].data.d_status = status;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue