app: use g_file_new_for_commandline_arg_and_cwd() in unique.c

This commit is contained in:
Michael Natterer 2014-07-08 01:25:17 +02:00
parent c2f7ec7b16
commit 98ae4b1f2c
1 changed files with 11 additions and 42 deletions

View File

@ -25,8 +25,6 @@
#include "core/core-types.h"
#include "file/file-utils.h"
#include "unique.h"
@ -48,39 +46,6 @@ gimp_unique_open (const gchar **filenames,
#endif
}
#ifndef GIMP_CONSOLE_COMPILATION
static gchar *
gimp_unique_filename_to_uri (const gchar *filename,
const gchar *cwd,
GError **error)
{
gchar *uri = NULL;
if (file_utils_filename_is_uri (filename, error))
{
uri = g_strdup (filename);
}
else if (! *error)
{
if (! g_path_is_absolute (filename))
{
gchar *absolute = g_build_filename (cwd, filename, NULL);
uri = g_filename_to_uri (absolute, NULL, error);
g_free (absolute);
}
else
{
uri = g_filename_to_uri (filename, NULL, error);
}
}
return uri;
}
#endif
static gboolean
gimp_unique_dbus_open (const gchar **filenames,
gboolean as_new)
@ -107,13 +72,14 @@ gimp_unique_dbus_open (const gchar **filenames,
for (i = 0; filenames[i] && success; i++)
{
GError *error = NULL;
gchar *uri = gimp_unique_filename_to_uri (filenames[i],
cwd, &error);
GFile *file;
if (uri)
file = g_file_new_for_commandline_arg_and_cwd (filenames[i], cwd);
if (file)
{
GVariant *result;
gchar *uri = g_file_get_uri (file);
result = g_dbus_connection_call_sync (connection,
GIMP_DBUS_SERVICE_NAME,
@ -126,17 +92,20 @@ gimp_unique_dbus_open (const gchar **filenames,
G_DBUS_CALL_FLAGS_NO_AUTO_START,
-1,
NULL, NULL);
g_free (uri);
if (result)
g_variant_unref (result);
else
success = FALSE;
g_free (uri);
g_object_unref (file);
}
else
{
g_printerr ("conversion to uri failed: %s\n", error->message);
g_clear_error (&error);
g_printerr ("conversion to uri failed for '%s'\n",
filenames[i]);
}
}