[gnome-settings-daemon] color: Use the new CdIccStore functionality



commit 7d212213da5db6e604d4f1ed8468a440514051af
Author: Richard Hughes <richard hughsie com>
Date:   Wed Jul 3 20:46:06 2013 +0100

    color: Use the new CdIccStore functionality

 configure.ac                      |    2 +-
 plugins/color/Makefile.am         |    2 -
 plugins/color/gcm-profile-store.c |  521 -------------------------------------
 plugins/color/gcm-profile-store.h |   59 -----
 plugins/color/gsd-color-manager.c |   68 +++---
 5 files changed, 31 insertions(+), 621 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 0679bac..21046c1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -242,7 +242,7 @@ dnl ---------------------------------------------------------------------------
 dnl - color
 dnl ---------------------------------------------------------------------------
 
-PKG_CHECK_MODULES(COLOR, [colord >= 0.1.34 gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED_VERSION 
libcanberra-gtk3])
+PKG_CHECK_MODULES(COLOR, [colord >= 1.0.2 gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED_VERSION 
libcanberra-gtk3])
 
 dnl ---------------------------------------------------------------------------
 dnl - wacom (disabled for s390/s390x and non Linux platforms)
diff --git a/plugins/color/Makefile.am b/plugins/color/Makefile.am
index 8c04910..3cc20cb 100644
--- a/plugins/color/Makefile.am
+++ b/plugins/color/Makefile.am
@@ -4,8 +4,6 @@ plugin_LTLIBRARIES = \
        libcolor.la
 
 libcolor_la_SOURCES =                  \
-       gcm-profile-store.c             \
-       gcm-profile-store.h             \
        gcm-dmi.c                       \
        gcm-dmi.h                       \
        gcm-edid.c                      \
diff --git a/plugins/color/gsd-color-manager.c b/plugins/color/gsd-color-manager.c
index a1530d9..ad02420 100644
--- a/plugins/color/gsd-color-manager.c
+++ b/plugins/color/gsd-color-manager.c
@@ -36,7 +36,6 @@
 #include "gnome-settings-profile.h"
 #include "gnome-settings-session.h"
 #include "gsd-color-manager.h"
-#include "gcm-profile-store.h"
 #include "gcm-dmi.h"
 #include "gcm-edid.h"
 
@@ -51,7 +50,7 @@ struct GsdColorManagerPrivate
         GDBusProxy      *session;
         CdClient        *client;
         GSettings       *settings;
-        GcmProfileStore *profile_store;
+        CdIccStore      *icc_store;
         GcmDmi          *dmi;
         GnomeRRScreen   *x11_screen;
         GHashTable      *edid_cache;
@@ -1264,7 +1263,16 @@ gcm_session_client_connect_cb (GObject *source_object,
         }
 
         /* add profiles */
-        gcm_profile_store_search (priv->profile_store);
+        ret = cd_icc_store_search_kind (priv->icc_store,
+                                        CD_ICC_STORE_SEARCH_KIND_USER,
+                                        CD_ICC_STORE_SEARCH_FLAGS_CREATE_LOCATION,
+                                        NULL,
+                                        &error);
+        if (!ret) {
+                g_warning ("failed to add user icc: %s", error->message);
+                g_error_free (error);
+                goto out;
+        }
 
         /* add screens */
         gnome_rr_screen_refresh (priv->x11_screen, &error);
@@ -1345,7 +1353,7 @@ gsd_color_manager_stop (GsdColorManager *manager)
 
         g_clear_object (&manager->priv->settings);
         g_clear_object (&manager->priv->client);
-        g_clear_object (&manager->priv->profile_store);
+        g_clear_object (&manager->priv->icc_store);
         g_clear_object (&manager->priv->dmi);
         g_clear_object (&manager->priv->session);
         g_clear_pointer (&manager->priv->edid_cache, g_hash_table_destroy);
@@ -1645,34 +1653,19 @@ gcm_session_create_profile_cb (GObject *object,
 }
 
 static void
-gcm_session_profile_store_added_cb (GcmProfileStore *profile_store,
-                                    const gchar *filename,
-                                    GsdColorManager *manager)
+gcm_session_icc_store_added_cb (CdIccStore *icc_store,
+                                CdIcc *icc,
+                                GsdColorManager *manager)
 {
-        CdIcc *icc;
+        const gchar *filename;
         const gchar *checksum;
-        gboolean ret;
         gchar *profile_id = NULL;
-        GError *error = NULL;
-        GFile *file;
         GHashTable *profile_props = NULL;
         GsdColorManagerPrivate *priv = manager->priv;
 
+        filename = cd_icc_get_filename (icc);
         g_debug ("profile %s added", filename);
 
-        /* load file */
-        file = g_file_new_for_path (filename);
-        icc = cd_icc_new ();
-        ret = cd_icc_load_file (icc, file,
-                                CD_ICC_LOAD_FLAGS_FALLBACK_MD5,
-                                NULL, &error);
-        if (!ret) {
-                g_debug ("failed to load %s: %s",
-                         filename, error->message);
-                g_error_free (error);
-                goto out;
-        }
-
         /* generate ID */
         checksum = cd_icc_get_checksum (icc);
         profile_id = g_strdup_printf ("icc-%s", checksum);
@@ -1691,9 +1684,6 @@ gcm_session_profile_store_added_cb (GcmProfileStore *profile_store,
                                   NULL,
                                   gcm_session_create_profile_cb,
                                   manager);
-out:
-        g_object_unref (icc);
-        g_object_unref (file);
         g_free (profile_id);
         if (profile_props != NULL)
                 g_hash_table_unref (profile_props);
@@ -1744,14 +1734,14 @@ out:
 }
 
 static void
-gcm_session_profile_store_removed_cb (GcmProfileStore *profile_store,
-                                      const gchar *filename,
-                                      GsdColorManager *manager)
+gcm_session_icc_store_removed_cb (CdIccStore *icc_store,
+                                  CdIcc *icc,
+                                  GsdColorManager *manager)
 {
         /* find the ID for the filename */
-        g_debug ("filename %s removed", filename);
+        g_debug ("filename %s removed", cd_icc_get_filename (icc));
         cd_client_find_profile_by_filename (manager->priv->client,
-                                            filename,
+                                            cd_icc_get_filename (icc),
                                             NULL,
                                             gcm_session_find_profile_by_filename_cb,
                                             manager);
@@ -1888,12 +1878,14 @@ gsd_color_manager_init (GsdColorManager *manager)
                           manager);
 
         /* have access to all user profiles */
-        priv->profile_store = gcm_profile_store_new ();
-        g_signal_connect (priv->profile_store, "added",
-                          G_CALLBACK (gcm_session_profile_store_added_cb),
+        priv->icc_store = cd_icc_store_new ();
+        cd_icc_store_set_load_flags (priv->icc_store,
+                                     CD_ICC_LOAD_FLAGS_FALLBACK_MD5);
+        g_signal_connect (priv->icc_store, "added",
+                          G_CALLBACK (gcm_session_icc_store_added_cb),
                           manager);
-        g_signal_connect (priv->profile_store, "removed",
-                          G_CALLBACK (gcm_session_profile_store_removed_cb),
+        g_signal_connect (priv->icc_store, "removed",
+                          G_CALLBACK (gcm_session_icc_store_removed_cb),
                           manager);
 }
 
@@ -1909,7 +1901,7 @@ gsd_color_manager_finalize (GObject *object)
 
         g_clear_object (&manager->priv->settings);
         g_clear_object (&manager->priv->client);
-        g_clear_object (&manager->priv->profile_store);
+        g_clear_object (&manager->priv->icc_store);
         g_clear_object (&manager->priv->dmi);
         g_clear_object (&manager->priv->session);
         g_clear_pointer (&manager->priv->edid_cache, g_hash_table_destroy);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]