[gnome-color-manager] trivial: switch gcm_profile_parse() to use a GFile, not a filename
- From: Richard Hughes <rhughes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-color-manager] trivial: switch gcm_profile_parse() to use a GFile, not a filename
- Date: Fri, 19 Feb 2010 15:47:53 +0000 (UTC)
commit b13ca03865ac640b56c1a63cc9231e3393f9651f
Author: Richard Hughes <richard hughsie com>
Date: Fri Feb 19 14:26:16 2010 +0000
trivial: switch gcm_profile_parse() to use a GFile, not a filename
src/gcm-cie-widget.c | 5 ++++-
src/gcm-dbus.c | 5 ++++-
src/gcm-device-xrandr.c | 5 ++++-
src/gcm-dump-profile.c | 6 +++++-
src/gcm-import.c | 6 +++---
src/gcm-prefs.c | 34 +++++++++++++++-------------------
src/gcm-profile-store.c | 6 +++++-
src/gcm-profile.c | 23 ++++++++++-------------
src/gcm-profile.h | 4 +++-
src/gcm-trc-widget.c | 5 ++++-
10 files changed, 57 insertions(+), 42 deletions(-)
---
diff --git a/src/gcm-cie-widget.c b/src/gcm-cie-widget.c
index c50fe41..e0f46d7 100644
--- a/src/gcm-cie-widget.c
+++ b/src/gcm-cie-widget.c
@@ -1212,6 +1212,7 @@ gcm_cie_widget_test (EggTest *test)
gint response;
gchar *filename_profile;
gchar *filename_image;
+ GFile *file = NULL;
if (!egg_test_start (test, "GcmCieWidget"))
return;
@@ -1232,13 +1233,15 @@ gcm_cie_widget_test (EggTest *test)
egg_test_assert (test, (filename_profile != NULL));
profile = gcm_profile_default_new ();
- gcm_profile_parse (profile, filename_profile, NULL);
+ file = g_file_new_for_path (filename_profile);
+ gcm_profile_parse (profile, file, NULL);
g_object_get (profile,
"white-point", &white,
"luminance-red", &red,
"luminance-green", &green,
"luminance-blue", &blue,
NULL);
+ g_object_unref (file);
g_object_set (widget,
"red", red,
diff --git a/src/gcm-dbus.c b/src/gcm-dbus.c
index 2a1d5bb..84ace0f 100644
--- a/src/gcm-dbus.c
+++ b/src/gcm-dbus.c
@@ -170,6 +170,7 @@ gcm_dbus_get_profiles_for_device_internal (GcmDbus *dbus, const gchar *sysfs_pat
guint i;
GcmDevice *device;
GcmProfile *profile;
+ GFile *file;
GError *error = NULL;
GPtrArray *array;
GPtrArray *array_devices;
@@ -200,7 +201,8 @@ gcm_dbus_get_profiles_for_device_internal (GcmDbus *dbus, const gchar *sysfs_pat
/* open and parse filename */
profile = gcm_profile_default_new ();
- ret = gcm_profile_parse (profile, filename, &error);
+ file = g_file_new_for_path (filename);
+ ret = gcm_profile_parse (profile, file, &error);
if (!ret) {
egg_warning ("failed to parse %s: %s", filename, error->message);
g_clear_error (&error);
@@ -209,6 +211,7 @@ gcm_dbus_get_profiles_for_device_internal (GcmDbus *dbus, const gchar *sysfs_pat
}
/* unref */
+ g_object_unref (file);
g_object_unref (profile);
g_free (filename);
}
diff --git a/src/gcm-device-xrandr.c b/src/gcm-device-xrandr.c
index c687a6a..fc99014 100644
--- a/src/gcm-device-xrandr.c
+++ b/src/gcm-device-xrandr.c
@@ -453,6 +453,7 @@ gcm_device_xrandr_apply (GcmDevice *device, GError **error)
gboolean use_global;
gboolean use_atom;
gboolean leftmost_screen = FALSE;
+ GFile *file = NULL;
GcmDeviceTypeEnum type;
GcmDeviceXrandr *device_xrandr = GCM_DEVICE_XRANDR (device);
GcmDeviceXrandrPrivate *priv = device_xrandr->priv;
@@ -513,7 +514,9 @@ gcm_device_xrandr_apply (GcmDevice *device, GError **error)
if (use_global && filename != NULL) {
/* create CLUT */
profile = gcm_profile_default_new ();
- ret = gcm_profile_parse (profile, filename, error);
+ file = g_file_new_for_path (filename);
+ ret = gcm_profile_parse (profile, file, error);
+ g_object_unref (file);
if (!ret)
goto out;
diff --git a/src/gcm-dump-profile.c b/src/gcm-dump-profile.c
index 3f9c3b3..7ddaec8 100644
--- a/src/gcm-dump-profile.c
+++ b/src/gcm-dump-profile.c
@@ -48,10 +48,12 @@ gcm_dump_profile_filename (const gchar *filename)
gchar *manufacturer = NULL;
gchar *model = NULL;
gchar *datetime = NULL;
+ GFile *file = NULL;
/* parse profile */
profile = gcm_profile_default_new ();
- ret = gcm_profile_parse (profile, filename, &error);
+ file = g_file_new_for_path (filename);
+ ret = gcm_profile_parse (profile, file, &error);
if (!ret) {
egg_warning ("failed to parse: %s", error->message);
g_error_free (error);
@@ -87,6 +89,8 @@ gcm_dump_profile_filename (const gchar *filename)
if (datetime != NULL)
g_print ("Created:\t%s\n", datetime);
out:
+ if (file != NULL)
+ g_object_unref (file);
g_object_unref (profile);
g_free (description);
g_free (copyright);
diff --git a/src/gcm-import.c b/src/gcm-import.c
index ed4846b..f3a472e 100644
--- a/src/gcm-import.c
+++ b/src/gcm-import.c
@@ -61,6 +61,7 @@ main (int argc, char **argv)
gchar *copyright = NULL;
gchar *description = NULL;
GFile *destination = NULL;
+ GFile *file = NULL;
gchar **files = NULL;
guint retval = 1;
GcmProfile *profile = NULL;
@@ -74,7 +75,6 @@ main (int argc, char **argv)
GcmXyz *red = NULL;
GcmXyz *green = NULL;
GcmXyz *blue = NULL;
- GFile *file = NULL;
const GOptionEntry options[] = {
{ G_OPTION_REMAINING, '\0', 0, G_OPTION_ARG_FILENAME_ARRAY, &files,
@@ -110,7 +110,8 @@ main (int argc, char **argv)
/* load profile */
profile = gcm_profile_default_new ();
- ret = gcm_profile_parse (profile, files[0], &error);
+ file = g_file_new_for_path (files[0]);
+ ret = gcm_profile_parse (profile, file, &error);
if (!ret) {
/* TRANSLATORS: could not read file */
dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, _("Failed to open ICC profile"));
@@ -146,7 +147,6 @@ main (int argc, char **argv)
NULL);
/* check file does't already exist */
- file = g_file_new_for_path (files[0]);
destination = gcm_utils_get_profile_destination (file);
ret = g_file_query_exists (destination, NULL);
if (ret) {
diff --git a/src/gcm-prefs.c b/src/gcm-prefs.c
index 7d42b14..3fcd2f6 100644
--- a/src/gcm-prefs.c
+++ b/src/gcm-prefs.c
@@ -1735,27 +1735,23 @@ gcm_prefs_profile_combo_changed_cb (GtkWidget *widget, gpointer data)
/* check the file is suitable */
profile_tmp = gcm_profile_default_new ();
filename = g_file_get_path (file);
+ ret = gcm_profile_parse (profile_tmp, file, &error);
+ if (!ret) {
+ /* set to 'None' */
+ gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0);
- //TODO gcm_profile_parse() needs to take a GFile as we can't do this on GVFS mounts
- if (filename != NULL) {
- ret = gcm_profile_parse (profile_tmp, filename, &error);
- if (!ret) {
- /* set to 'None' */
- gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0);
+ egg_warning ("failed to parse ICC file: %s", error->message);
+ g_error_free (error);
+ goto out;
+ }
+ ret = gcm_prefs_is_profile_suitable_for_device (profile_tmp, current_device);
+ if (!ret) {
+ /* set to 'None' */
+ gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0);
- egg_warning ("failed to parse ICC file: %s", error->message);
- g_error_free (error);
- goto out;
- }
- ret = gcm_prefs_is_profile_suitable_for_device (profile_tmp, current_device);
- if (!ret) {
- /* set to 'None' */
- gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0);
-
- /* TRANSLATORS: the profile was of the wrong sort for this device */
- gcm_prefs_error_dialog (_("Could not import profile"), _("The profile was of the wrong type for this device"));
- goto out;
- }
+ /* TRANSLATORS: the profile was of the wrong sort for this device */
+ gcm_prefs_error_dialog (_("Could not import profile"), _("The profile was of the wrong type for this device"));
+ goto out;
}
/* actually set this as the default */
diff --git a/src/gcm-profile-store.c b/src/gcm-profile-store.c
index 746317b..5e17eb3 100644
--- a/src/gcm-profile-store.c
+++ b/src/gcm-profile-store.c
@@ -177,6 +177,7 @@ gcm_profile_store_add_profile (GcmProfileStore *profile_store, const gchar *file
gboolean ret = FALSE;
GcmProfile *profile = NULL;
GError *error = NULL;
+ GFile *file = NULL;
GcmProfileStorePrivate *priv = profile_store->priv;
/* already added? */
@@ -186,7 +187,8 @@ gcm_profile_store_add_profile (GcmProfileStore *profile_store, const gchar *file
/* parse the profile name */
profile = gcm_profile_default_new ();
- ret = gcm_profile_parse (profile, filename, &error);
+ file = g_file_new_for_path (filename);
+ ret = gcm_profile_parse (profile, file, &error);
if (!ret) {
egg_warning ("failed to add profile '%s': %s", filename, error->message);
g_error_free (error);
@@ -203,6 +205,8 @@ gcm_profile_store_add_profile (GcmProfileStore *profile_store, const gchar *file
g_signal_emit (profile_store, signals[SIGNAL_ADDED], 0, profile);
g_signal_emit (profile_store, signals[SIGNAL_CHANGED], 0);
out:
+ if (file != NULL)
+ g_object_unref (file);
if (profile != NULL)
g_object_unref (profile);
return ret;
diff --git a/src/gcm-profile.c b/src/gcm-profile.c
index 8db49a3..aefca31 100644
--- a/src/gcm-profile.c
+++ b/src/gcm-profile.c
@@ -120,20 +120,19 @@ out:
* gcm_profile_parse:
**/
gboolean
-gcm_profile_parse (GcmProfile *profile, const gchar *filename, GError **error)
+gcm_profile_parse (GcmProfile *profile, GFile *file, GError **error)
{
gchar *data = NULL;
gboolean ret;
guint length;
+ gchar *filename = NULL;
GError *error_local = NULL;
g_return_val_if_fail (GCM_IS_PROFILE (profile), FALSE);
- g_return_val_if_fail (filename != NULL, FALSE);
-
- egg_debug ("loading '%s'", filename);
+ g_return_val_if_fail (file != NULL, FALSE);
/* load files */
- ret = g_file_get_contents (filename, &data, (gsize *) &length, &error_local);
+ ret = g_file_load_contents (file, NULL, &data, (gsize *) &length, NULL, &error_local);
if (!ret) {
g_set_error (error, 1, 0, "failed to load profile: %s", error_local->message);
g_error_free (error_local);
@@ -146,10 +145,12 @@ gcm_profile_parse (GcmProfile *profile, const gchar *filename, GError **error)
goto out;
/* save */
+ filename = g_file_get_path (file);
g_object_set (profile,
"filename", filename,
NULL);
out:
+ g_free (filename);
g_free (data);
return ret;
}
@@ -654,6 +655,7 @@ gcm_profile_test_parse_file (EggTest *test, const guint8 *datafile, GcmProfileTe
GcmProfile *profile_lcms1;
GcmXyz *xyz;
gfloat luminance;
+ GFile *file;
/************************************************************/
egg_test_title (test, "get a profile_lcms1 object");
@@ -667,11 +669,13 @@ gcm_profile_test_parse_file (EggTest *test, const guint8 *datafile, GcmProfileTe
/************************************************************/
egg_test_title (test, "load ICC file");
- ret = gcm_profile_parse (profile_lcms1, filename, &error);
+ file = g_file_new_for_path (filename);
+ ret = gcm_profile_parse (profile_lcms1, file, &error);
if (ret)
egg_test_success (test, NULL);
else
egg_test_failed (test, "failed to parse: %s", error->message);
+ g_object_unref (file);
/* get some properties */
g_object_get (profile_lcms1,
@@ -686,13 +690,6 @@ gcm_profile_test_parse_file (EggTest *test, const guint8 *datafile, GcmProfileTe
NULL);
/************************************************************/
- egg_test_title (test, "check filename for %s", datafile);
- if (g_strcmp0 (filename, filename_tmp) == 0)
- egg_test_success (test, NULL);
- else
- egg_test_failed (test, "invalid value: %s, expecting: %s", filename, filename_tmp);
-
- /************************************************************/
egg_test_title (test, "check copyright for %s", datafile);
if (g_strcmp0 (copyright, test_data->copyright) == 0)
egg_test_success (test, NULL);
diff --git a/src/gcm-profile.h b/src/gcm-profile.h
index c011084..373fbe5 100644
--- a/src/gcm-profile.h
+++ b/src/gcm-profile.h
@@ -23,6 +23,8 @@
#define __GCM_PROFILE_H
#include <glib-object.h>
+#include <gio/gio.h>
+
#include "gcm-clut.h"
G_BEGIN_DECLS
@@ -71,7 +73,7 @@ GType gcm_profile_get_type (void);
GcmProfile *gcm_profile_new (void);
GcmProfile *gcm_profile_default_new (void);
gboolean gcm_profile_parse (GcmProfile *profile,
- const gchar *filename,
+ GFile *file,
GError **error);
gboolean gcm_profile_parse_data (GcmProfile *profile,
const guint8 *data,
diff --git a/src/gcm-trc-widget.c b/src/gcm-trc-widget.c
index 57133df..5716892 100644
--- a/src/gcm-trc-widget.c
+++ b/src/gcm-trc-widget.c
@@ -413,6 +413,7 @@ gcm_trc_widget_test (EggTest *test)
gchar *filename_profile;
gchar *filename_image;
GcmClutData *data;
+ GFile *file;
if (!egg_test_start (test, "GcmTrcWidget"))
return;
@@ -433,11 +434,13 @@ gcm_trc_widget_test (EggTest *test)
egg_test_assert (test, (filename_profile != NULL));
profile = gcm_profile_default_new ();
- gcm_profile_parse (profile, filename_profile, NULL);
+ file = g_file_new_for_path (filename_profile);
+ gcm_profile_parse (profile, file, NULL);
clut = gcm_profile_generate_vcgt (profile, 256);
g_object_set (widget,
"clut", clut,
NULL);
+ g_object_unref (file);
/* show in a dialog as an example */
dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, "Does TRC widget match\nthe picture below?");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]