color: Use g_auto for variables
This commit is contained in:
parent
04e36953ff
commit
490bee5a23
5 changed files with 176 additions and 358 deletions
|
@ -226,23 +226,21 @@ cc_color_calibrate_calib_set_output_gamma (CcColorCalibrate *calibrate,
|
|||
CdColorRGB *p1;
|
||||
CdColorRGB *p2;
|
||||
CdColorRGB result;
|
||||
gboolean ret = TRUE;
|
||||
gdouble mix;
|
||||
GnomeRRCrtc *crtc;
|
||||
guint16 *blue = NULL;
|
||||
guint16 *green = NULL;
|
||||
guint16 *red = NULL;
|
||||
g_autofree guint16 *blue = NULL;
|
||||
g_autofree guint16 *green = NULL;
|
||||
g_autofree guint16 *red = NULL;
|
||||
guint i;
|
||||
|
||||
/* no length? */
|
||||
if (array->len == 0)
|
||||
{
|
||||
ret = FALSE;
|
||||
g_set_error_literal (error,
|
||||
CD_SESSION_ERROR,
|
||||
CD_SESSION_ERROR_INTERNAL,
|
||||
"no data in the CLUT array");
|
||||
goto out;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* convert to a type X understands of the right size */
|
||||
|
@ -270,21 +268,16 @@ cc_color_calibrate_calib_set_output_gamma (CcColorCalibrate *calibrate,
|
|||
crtc = gnome_rr_output_get_crtc (calibrate->output);
|
||||
if (crtc == NULL)
|
||||
{
|
||||
ret = FALSE;
|
||||
g_set_error (error,
|
||||
CD_SESSION_ERROR,
|
||||
CD_SESSION_ERROR_INTERNAL,
|
||||
"failed to get ctrc for %s",
|
||||
gnome_rr_output_get_name (calibrate->output));
|
||||
goto out;
|
||||
return FALSE;
|
||||
}
|
||||
gnome_rr_crtc_set_gamma (crtc, calibrate->gamma_size,
|
||||
red, green, blue);
|
||||
out:
|
||||
g_free (red);
|
||||
g_free (green);
|
||||
g_free (blue);
|
||||
return ret;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -317,7 +310,6 @@ cc_color_calibrate_interaction_required (CcColorCalibrate *calibrate,
|
|||
{
|
||||
const gchar *message_transl;
|
||||
gboolean show_button_start = FALSE;
|
||||
GdkPixbuf *pixbuf;
|
||||
GtkImage *img;
|
||||
GtkLabel *label;
|
||||
GtkWidget *widget;
|
||||
|
@ -331,15 +323,14 @@ cc_color_calibrate_interaction_required (CcColorCalibrate *calibrate,
|
|||
"image_status"));
|
||||
if (image_path != NULL && image_path[0] != '\0')
|
||||
{
|
||||
g_autoptr(GdkPixbuf) pixbuf = NULL;
|
||||
|
||||
g_debug ("showing image %s", image_path);
|
||||
pixbuf = gdk_pixbuf_new_from_file_at_size (image_path,
|
||||
400, 400,
|
||||
NULL);
|
||||
if (pixbuf != NULL)
|
||||
{
|
||||
gtk_image_set_from_pixbuf (img, pixbuf);
|
||||
g_object_unref (pixbuf);
|
||||
}
|
||||
gtk_widget_set_visible (GTK_WIDGET (img), TRUE);
|
||||
gtk_widget_set_visible (GTK_WIDGET (calibrate->sample_widget), FALSE);
|
||||
}
|
||||
|
@ -436,7 +427,7 @@ cc_color_calibrate_finished (CcColorCalibrate *calibrate,
|
|||
const gchar *error_fallback)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GString *str;
|
||||
g_autoptr(GString) str = NULL;
|
||||
const gchar *tmp;
|
||||
|
||||
/* save failure so we can get this after we've quit the loop */
|
||||
|
@ -481,7 +472,6 @@ cc_color_calibrate_finished (CcColorCalibrate *calibrate,
|
|||
widget = GTK_WIDGET (gtk_builder_get_object (calibrate->builder,
|
||||
"label_status"));
|
||||
gtk_label_set_label (GTK_LABEL (widget), str->str);
|
||||
g_string_free (str, TRUE);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -498,12 +488,11 @@ cc_color_calibrate_signal_cb (GDBusProxy *proxy,
|
|||
const gchar *profile_path = NULL;
|
||||
const gchar *str = NULL;
|
||||
gboolean ret;
|
||||
GError *error = NULL;
|
||||
g_autoptr(GError) error = NULL;
|
||||
GPtrArray *array = NULL;
|
||||
GtkImage *img;
|
||||
GtkLabel *label;
|
||||
GVariantIter *iter;
|
||||
GVariant *dict = NULL;
|
||||
g_autoptr(GVariant) dict = NULL;
|
||||
|
||||
if (g_strcmp0 (signal_name, "Finished") == 0)
|
||||
{
|
||||
|
@ -517,7 +506,7 @@ cc_color_calibrate_signal_cb (GDBusProxy *proxy,
|
|||
if (ret)
|
||||
calibrate->profile = cd_profile_new_with_object_path (profile_path);
|
||||
cc_color_calibrate_finished (calibrate, error_code, str);
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
if (g_strcmp0 (signal_name, "UpdateSample") == 0)
|
||||
{
|
||||
|
@ -548,7 +537,7 @@ cc_color_calibrate_signal_cb (GDBusProxy *proxy,
|
|||
* display off the screen (although we do cope if this is
|
||||
* detected early enough) */
|
||||
gtk_label_set_label (label, _("Do not disturb the calibration device while in progress"));
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
if (g_strcmp0 (signal_name, "InteractionRequired") == 0)
|
||||
{
|
||||
|
@ -564,10 +553,12 @@ cc_color_calibrate_signal_cb (GDBusProxy *proxy,
|
|||
code,
|
||||
message,
|
||||
image);
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
if (g_strcmp0 (signal_name, "UpdateGamma") == 0)
|
||||
{
|
||||
g_autoptr(GVariantIter) iter = NULL;
|
||||
|
||||
g_variant_get (parameters,
|
||||
"(a(ddd))",
|
||||
&iter);
|
||||
|
@ -581,7 +572,6 @@ cc_color_calibrate_signal_cb (GDBusProxy *proxy,
|
|||
cd_color_rgb_copy (&color, color_tmp);
|
||||
g_ptr_array_add (array, color_tmp);
|
||||
}
|
||||
g_variant_iter_free (iter);
|
||||
ret = cc_color_calibrate_calib_set_output_gamma (calibrate,
|
||||
array,
|
||||
&error);
|
||||
|
@ -589,22 +579,18 @@ cc_color_calibrate_signal_cb (GDBusProxy *proxy,
|
|||
{
|
||||
g_warning ("failed to update gamma: %s",
|
||||
error->message);
|
||||
g_error_free (error);
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
g_warning ("got unknown signal %s", signal_name);
|
||||
out:
|
||||
if (dict != NULL)
|
||||
g_variant_unref (dict);
|
||||
}
|
||||
|
||||
static void
|
||||
cc_color_calibrate_cancel (CcColorCalibrate *calibrate)
|
||||
{
|
||||
GVariant *retval;
|
||||
GError *error = NULL;
|
||||
g_autoptr(GVariant) retval = NULL;
|
||||
g_autoptr(GError) error = NULL;
|
||||
|
||||
/* cancel the calibration to ensure the helper quits */
|
||||
retval = g_dbus_proxy_call_sync (calibrate->proxy_helper,
|
||||
|
@ -615,15 +601,10 @@ cc_color_calibrate_cancel (CcColorCalibrate *calibrate)
|
|||
NULL,
|
||||
&error);
|
||||
if (retval == NULL)
|
||||
{
|
||||
g_warning ("Failed to send Cancel: %s", error->message);
|
||||
g_error_free (error);
|
||||
}
|
||||
|
||||
/* return */
|
||||
g_main_loop_quit (calibrate->loop);
|
||||
if (retval != NULL)
|
||||
g_variant_unref (retval);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
@ -690,7 +671,7 @@ cc_color_calibrate_window_state_cb (GtkWidget *widget,
|
|||
CcColorCalibrate *calibrate)
|
||||
{
|
||||
gboolean ret;
|
||||
GError *error = NULL;
|
||||
g_autoptr(GError) error = NULL;
|
||||
GdkEventWindowState *event_state = (GdkEventWindowState *) event;
|
||||
GtkWindow *window = GTK_WINDOW (widget);
|
||||
|
||||
|
@ -705,10 +686,7 @@ cc_color_calibrate_window_state_cb (GtkWidget *widget,
|
|||
calibrate->device,
|
||||
&error);
|
||||
if (!ret)
|
||||
{
|
||||
g_warning ("Failed to resize window: %s", error->message);
|
||||
g_error_free (error);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -723,8 +701,8 @@ static void
|
|||
cc_color_calibrate_button_start_cb (GtkWidget *widget,
|
||||
CcColorCalibrate *calibrate)
|
||||
{
|
||||
GError *error = NULL;
|
||||
GVariant *retval;
|
||||
g_autoptr(GError) error = NULL;
|
||||
g_autoptr(GVariant) retval = NULL;
|
||||
|
||||
/* set correct buttons */
|
||||
widget = GTK_WIDGET (gtk_builder_get_object (calibrate->builder,
|
||||
|
@ -743,12 +721,7 @@ cc_color_calibrate_button_start_cb (GtkWidget *widget,
|
|||
NULL,
|
||||
&error);
|
||||
if (retval == NULL)
|
||||
{
|
||||
g_warning ("Failed to send Resume: %s", error->message);
|
||||
g_error_free (error);
|
||||
}
|
||||
if (retval != NULL)
|
||||
g_variant_unref (retval);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -811,10 +784,10 @@ cc_color_calibrate_uninhibit (CcColorCalibrate *calibrate)
|
|||
static void
|
||||
cc_color_calibrate_inhibit (CcColorCalibrate *calibrate, GtkWindow *window)
|
||||
{
|
||||
GError *error = NULL;
|
||||
g_autoptr(GError) error = NULL;
|
||||
gint idx;
|
||||
GUnixFDList *fd_list = NULL;
|
||||
GVariant *retval;
|
||||
g_autoptr(GUnixFDList) fd_list = NULL;
|
||||
g_autoptr(GVariant) retval = NULL;
|
||||
GtkApplication *application;
|
||||
|
||||
/* inhibit basically everything we can */
|
||||
|
@ -847,23 +820,16 @@ cc_color_calibrate_inhibit (CcColorCalibrate *calibrate, GtkWindow *window)
|
|||
if (retval == NULL)
|
||||
{
|
||||
g_warning ("Failed to send Inhibit: %s", error->message);
|
||||
g_error_free (error);
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
g_variant_get (retval, "(h)", &idx);
|
||||
calibrate->inhibit_fd = g_unix_fd_list_get (fd_list, idx, &error);
|
||||
if (calibrate->inhibit_fd == -1)
|
||||
{
|
||||
g_warning ("Failed to receive system inhibitor fd: %s", error->message);
|
||||
g_error_free (error);
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
g_debug ("System inhibitor fd is %d", calibrate->inhibit_fd);
|
||||
out:
|
||||
if (fd_list != NULL)
|
||||
g_object_unref (fd_list);
|
||||
if (retval != NULL)
|
||||
g_variant_unref (retval);
|
||||
}
|
||||
|
||||
gboolean
|
||||
|
@ -920,20 +886,18 @@ cc_color_calibrate_start (CcColorCalibrate *calibrate,
|
|||
GError **error)
|
||||
{
|
||||
const gchar *name;
|
||||
gboolean ret;
|
||||
GtkWidget *widget;
|
||||
GtkWindow *window;
|
||||
GVariantBuilder builder;
|
||||
GVariant *retval = NULL;
|
||||
g_autoptr(GVariant) retval = NULL;
|
||||
|
||||
g_return_val_if_fail (CC_IS_COLOR_CALIBRATE (calibrate), FALSE);
|
||||
|
||||
/* get screen */
|
||||
name = cd_device_get_metadata_item (calibrate->device,
|
||||
CD_DEVICE_METADATA_XRANDR_NAME);
|
||||
ret = cc_color_calibrate_calib_setup_screen (calibrate, name, error);
|
||||
if (!ret)
|
||||
goto out;
|
||||
if (!cc_color_calibrate_calib_setup_screen (calibrate, name, error))
|
||||
return FALSE;
|
||||
|
||||
g_variant_builder_init (&builder, G_VARIANT_TYPE_ARRAY);
|
||||
g_variant_builder_add (&builder,
|
||||
|
@ -967,10 +931,7 @@ cc_color_calibrate_start (CcColorCalibrate *calibrate,
|
|||
NULL,
|
||||
error);
|
||||
if (retval == NULL)
|
||||
{
|
||||
ret = FALSE;
|
||||
goto out;
|
||||
}
|
||||
return FALSE;
|
||||
|
||||
/* set this above our parent */
|
||||
window = GTK_WINDOW (gtk_builder_get_object (calibrate->builder,
|
||||
|
@ -1004,16 +965,14 @@ cc_color_calibrate_start (CcColorCalibrate *calibrate,
|
|||
/* see if we failed */
|
||||
if (calibrate->session_error_code != CD_SESSION_ERROR_NONE)
|
||||
{
|
||||
ret = FALSE;
|
||||
g_set_error_literal (error,
|
||||
CD_SESSION_ERROR,
|
||||
CD_SESSION_ERROR_INTERNAL,
|
||||
"failed to calibrate");
|
||||
return FALSE;
|
||||
}
|
||||
out:
|
||||
if (retval != NULL)
|
||||
g_variant_unref (retval);
|
||||
return ret;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
@ -1054,9 +1013,9 @@ cc_color_calibrate_class_init (CcColorCalibrateClass *klass)
|
|||
static void
|
||||
cc_color_calibrate_init (CcColorCalibrate *calibrate)
|
||||
{
|
||||
GError *error = NULL;
|
||||
g_autoptr(GError) error = NULL;
|
||||
gint retval;
|
||||
GSettings *settings;
|
||||
g_autoptr(GSettings) settings = NULL;
|
||||
GtkBox *box;
|
||||
GtkWidget *widget;
|
||||
GtkWindow *window;
|
||||
|
@ -1070,10 +1029,7 @@ cc_color_calibrate_init (CcColorCalibrate *calibrate)
|
|||
"/org/gnome/control-center/color/color-calibrate.ui",
|
||||
&error);
|
||||
if (retval == 0)
|
||||
{
|
||||
g_warning ("Could not load interface: %s", error->message);
|
||||
g_error_free (error);
|
||||
}
|
||||
|
||||
/* add sample widget */
|
||||
box = GTK_BOX (gtk_builder_get_object (calibrate->builder,
|
||||
|
@ -1089,7 +1045,6 @@ cc_color_calibrate_init (CcColorCalibrate *calibrate)
|
|||
settings = g_settings_new (COLORD_SETTINGS_SCHEMA);
|
||||
calibrate->target_whitepoint = g_settings_get_int (settings, "display-whitepoint");
|
||||
calibrate->target_gamma = g_settings_get_double (settings, "display-gamma");
|
||||
g_object_unref (settings);
|
||||
|
||||
/* connect to buttons */
|
||||
widget = GTK_WIDGET (gtk_builder_get_object (calibrate->builder,
|
||||
|
|
|
@ -108,13 +108,9 @@ cc_color_device_kind_to_sort (CdDevice *device)
|
|||
gchar *
|
||||
cc_color_device_get_sortable_base (CdDevice *device)
|
||||
{
|
||||
gchar *sortable;
|
||||
gchar *title;
|
||||
title = cc_color_device_get_title (device);
|
||||
sortable = g_strdup_printf ("%s-%s-%s",
|
||||
g_autofree gchar *title = cc_color_device_get_title (device);
|
||||
return g_strdup_printf ("%s-%s-%s",
|
||||
cc_color_device_kind_to_sort (device),
|
||||
cd_device_get_id (device),
|
||||
title);
|
||||
g_free (title);
|
||||
return sortable;
|
||||
}
|
||||
|
|
|
@ -62,15 +62,16 @@ static guint signals [SIGNAL_LAST] = { 0 };
|
|||
static void
|
||||
cc_color_device_refresh (CcColorDevice *color_device)
|
||||
{
|
||||
gchar *title = NULL;
|
||||
GPtrArray *profiles = NULL;
|
||||
g_autofree gchar *title = NULL;
|
||||
g_autoptr(GPtrArray) profiles = NULL;
|
||||
AtkObject *accessible;
|
||||
gchar *name = NULL;
|
||||
g_autofree gchar *name1 = NULL;
|
||||
g_autofree gchar *name2 = NULL;
|
||||
|
||||
/* add switch and expander if there are profiles, otherwise use a label */
|
||||
profiles = cd_device_get_profiles (color_device->device);
|
||||
if (profiles == NULL)
|
||||
goto out;
|
||||
return;
|
||||
|
||||
title = cc_color_device_get_title (color_device->device);
|
||||
gtk_label_set_label (GTK_LABEL (color_device->widget_description), title);
|
||||
|
@ -87,19 +88,12 @@ cc_color_device_refresh (CcColorDevice *color_device)
|
|||
cd_device_get_enabled (color_device->device));
|
||||
|
||||
accessible = gtk_widget_get_accessible (color_device->widget_switch);
|
||||
name = g_strdup_printf (_("Enable color management for %s"), title);
|
||||
atk_object_set_name (accessible, name);
|
||||
g_free (name);
|
||||
name1 = g_strdup_printf (_("Enable color management for %s"), title);
|
||||
atk_object_set_name (accessible, name1);
|
||||
|
||||
name = g_strdup_printf (_("Show color profiles for %s"), title);
|
||||
name2 = g_strdup_printf (_("Show color profiles for %s"), title);
|
||||
accessible = gtk_widget_get_accessible (color_device->widget_button);
|
||||
atk_object_set_name (accessible, name);
|
||||
g_free (name);
|
||||
|
||||
out:
|
||||
if (profiles != NULL)
|
||||
g_ptr_array_unref (profiles);
|
||||
g_free (title);
|
||||
atk_object_set_name (accessible, name2);
|
||||
}
|
||||
|
||||
CdDevice *
|
||||
|
@ -187,18 +181,15 @@ cc_color_device_notify_enable_device_cb (GtkSwitch *sw,
|
|||
CcColorDevice *color_device = CC_COLOR_DEVICE (user_data);
|
||||
gboolean enable;
|
||||
gboolean ret;
|
||||
GError *error = NULL;
|
||||
g_autoptr(GError) error = NULL;
|
||||
|
||||
enable = gtk_switch_get_active (sw);
|
||||
g_debug ("Set %s to %i", cd_device_get_id (color_device->device), enable);
|
||||
ret = cd_device_set_enabled_sync (color_device->device,
|
||||
enable, NULL, &error);
|
||||
if (!ret)
|
||||
{
|
||||
g_warning ("failed to %s to the device: %s",
|
||||
enable ? "enable" : "disable", error->message);
|
||||
g_error_free (error);
|
||||
}
|
||||
|
||||
/* if expanded, close */
|
||||
cc_color_device_set_expanded (color_device, FALSE);
|
||||
|
@ -215,7 +206,7 @@ static void
|
|||
cc_color_device_constructed (GObject *object)
|
||||
{
|
||||
CcColorDevice *color_device = CC_COLOR_DEVICE (object);
|
||||
gchar *sortable_tmp;
|
||||
g_autofree gchar *sortable_tmp = NULL;
|
||||
|
||||
/* watch the device for changes */
|
||||
color_device->device_changed_id =
|
||||
|
@ -227,7 +218,6 @@ cc_color_device_constructed (GObject *object)
|
|||
* https://bugzilla.gnome.org/show_bug.cgi?id=691341 */
|
||||
sortable_tmp = cc_color_device_get_sortable_base (color_device->device);
|
||||
color_device->sortable = g_strdup_printf ("%sXX", sortable_tmp);
|
||||
g_free (sortable_tmp);
|
||||
|
||||
cc_color_device_refresh (color_device);
|
||||
|
||||
|
|
|
@ -113,7 +113,7 @@ gcm_prefs_combobox_add_profile (CcColorPanel *prefs,
|
|||
{
|
||||
const gchar *id;
|
||||
GtkTreeIter iter_tmp;
|
||||
GString *string;
|
||||
g_autoptr(GString) string = NULL;
|
||||
GtkListStore *list_store;
|
||||
gchar *escaped = NULL;
|
||||
guint kind = 0;
|
||||
|
@ -173,36 +173,27 @@ gcm_prefs_combobox_add_profile (CcColorPanel *prefs,
|
|||
GCM_PREFS_COMBO_COLUMN_TYPE, kind,
|
||||
GCM_PREFS_COMBO_COLUMN_WARNING_FILENAME, warning,
|
||||
-1);
|
||||
|
||||
g_string_free (string, TRUE);
|
||||
}
|
||||
|
||||
static void
|
||||
gcm_prefs_default_cb (GtkWidget *widget, CcColorPanel *prefs)
|
||||
{
|
||||
CdProfile *profile;
|
||||
g_autoptr(CdProfile) profile = NULL;
|
||||
gboolean ret;
|
||||
GError *error = NULL;
|
||||
g_autoptr(GError) error = NULL;
|
||||
|
||||
/* TODO: check if the profile is already systemwide */
|
||||
profile = cd_device_get_default_profile (prefs->current_device);
|
||||
if (profile == NULL)
|
||||
goto out;
|
||||
return;
|
||||
|
||||
/* install somewhere out of $HOME */
|
||||
ret = cd_profile_install_system_wide_sync (profile,
|
||||
prefs->cancellable,
|
||||
&error);
|
||||
if (!ret)
|
||||
{
|
||||
g_warning ("failed to set profile system-wide: %s",
|
||||
error->message);
|
||||
g_error_free (error);
|
||||
goto out;
|
||||
}
|
||||
out:
|
||||
if (profile != NULL)
|
||||
g_object_unref (profile);
|
||||
}
|
||||
|
||||
static GFile *
|
||||
|
@ -298,7 +289,7 @@ static void
|
|||
gcm_prefs_calib_apply_cb (GtkWidget *widget, CcColorPanel *prefs)
|
||||
{
|
||||
gboolean ret;
|
||||
GError *error = NULL;
|
||||
g_autoptr(GError) error = NULL;
|
||||
GtkWindow *window = NULL;
|
||||
|
||||
/* setup the calibration object with items that can fail */
|
||||
|
@ -310,8 +301,7 @@ gcm_prefs_calib_apply_cb (GtkWidget *widget, CcColorPanel *prefs)
|
|||
if (!ret)
|
||||
{
|
||||
g_warning ("failed to setup calibrate: %s", error->message);
|
||||
g_error_free (error);
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
|
||||
/* actually start the calibration */
|
||||
|
@ -323,16 +313,13 @@ gcm_prefs_calib_apply_cb (GtkWidget *widget, CcColorPanel *prefs)
|
|||
{
|
||||
g_warning ("failed to start calibrate: %s", error->message);
|
||||
gtk_widget_hide (GTK_WIDGET (window));
|
||||
g_error_free (error);
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
|
||||
/* if we are a LiveCD then don't close the window as there is another
|
||||
* summary pane with the export button */
|
||||
if (!prefs->is_live_cd)
|
||||
gtk_widget_hide (GTK_WIDGET (window));
|
||||
out:
|
||||
return;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
@ -506,7 +493,7 @@ gcm_prefs_calib_sensor_treeview_clicked_cb (GtkTreeSelection *selection,
|
|||
GtkTreeIter iter;
|
||||
GtkTreeModel *model;
|
||||
GtkWidget *widget;
|
||||
CdSensor *sensor;
|
||||
g_autoptr(CdSensor) sensor = NULL;
|
||||
GtkAssistant *assistant;
|
||||
|
||||
/* check to see if anything is selected */
|
||||
|
@ -523,7 +510,6 @@ gcm_prefs_calib_sensor_treeview_clicked_cb (GtkTreeSelection *selection,
|
|||
COLUMN_CALIB_SENSOR_OBJECT, &sensor,
|
||||
-1);
|
||||
gcm_prefs_calib_set_sensor (prefs, sensor);
|
||||
g_object_unref (sensor);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -608,9 +594,9 @@ static void
|
|||
gcm_prefs_calibrate_cb (GtkWidget *widget, CcColorPanel *prefs)
|
||||
{
|
||||
gboolean ret;
|
||||
GError *error = NULL;
|
||||
g_autoptr(GError) error = NULL;
|
||||
guint xid;
|
||||
GPtrArray *argv;
|
||||
g_autoptr(GPtrArray) argv = NULL;
|
||||
|
||||
/* use the new-style calibration helper */
|
||||
if (cd_device_get_kind (prefs->current_device) == CD_DEVICE_KIND_DISPLAY)
|
||||
|
@ -633,11 +619,7 @@ gcm_prefs_calibrate_cb (GtkWidget *widget, CcColorPanel *prefs)
|
|||
ret = g_spawn_async (NULL, (gchar**) argv->pdata, NULL, 0,
|
||||
NULL, NULL, NULL, &error);
|
||||
if (!ret)
|
||||
{
|
||||
g_warning ("failed to run calibrate: %s", error->message);
|
||||
g_error_free (error);
|
||||
}
|
||||
g_ptr_array_unref (argv);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
@ -701,9 +683,8 @@ gcm_prefs_combo_sort_func_cb (GtkTreeModel *model,
|
|||
gpointer user_data)
|
||||
{
|
||||
gint type_a, type_b;
|
||||
gchar *text_a;
|
||||
gchar *text_b;
|
||||
gint retval;
|
||||
g_autofree gchar *text_a = NULL;
|
||||
g_autofree gchar *text_b = NULL;
|
||||
|
||||
/* get data from model */
|
||||
gtk_tree_model_get (model, a,
|
||||
|
@ -717,15 +698,11 @@ gcm_prefs_combo_sort_func_cb (GtkTreeModel *model,
|
|||
|
||||
/* prefer normal type profiles over the 'Other Profile...' entry */
|
||||
if (type_a < type_b)
|
||||
retval = -1;
|
||||
return -1;
|
||||
else if (type_a > type_b)
|
||||
retval = 1;
|
||||
return 1;
|
||||
else
|
||||
retval = g_strcmp0 (text_a, text_b);
|
||||
|
||||
g_free (text_a);
|
||||
g_free (text_b);
|
||||
return retval;
|
||||
return g_strcmp0 (text_a, text_b);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
@ -749,8 +726,8 @@ gcm_prefs_add_profiles_suitable_for_devices (CcColorPanel *prefs,
|
|||
{
|
||||
CdProfile *profile_tmp;
|
||||
gboolean ret;
|
||||
GError *error = NULL;
|
||||
GPtrArray *profile_array = NULL;
|
||||
g_autoptr(GError) error = NULL;
|
||||
g_autoptr(GPtrArray) profile_array = NULL;
|
||||
GtkTreeIter iter;
|
||||
GtkListStore *list_store;
|
||||
GtkWidget *widget;
|
||||
|
@ -779,8 +756,7 @@ gcm_prefs_add_profiles_suitable_for_devices (CcColorPanel *prefs,
|
|||
{
|
||||
g_warning ("failed to get profiles: %s",
|
||||
error->message);
|
||||
g_error_free (error);
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
|
||||
/* add profiles of the right kind */
|
||||
|
@ -795,8 +771,7 @@ gcm_prefs_add_profiles_suitable_for_devices (CcColorPanel *prefs,
|
|||
if (!ret)
|
||||
{
|
||||
g_warning ("failed to get profile: %s", error->message);
|
||||
g_error_free (error);
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
|
||||
/* don't add any of the already added profiles */
|
||||
|
@ -823,9 +798,6 @@ gcm_prefs_add_profiles_suitable_for_devices (CcColorPanel *prefs,
|
|||
profile_tmp,
|
||||
&iter);
|
||||
}
|
||||
out:
|
||||
if (profile_array != NULL)
|
||||
g_ptr_array_unref (profile_array);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -834,24 +806,23 @@ gcm_prefs_calib_upload_cb (GtkWidget *widget, CcColorPanel *prefs)
|
|||
CdProfile *profile;
|
||||
const gchar *uri;
|
||||
gboolean ret;
|
||||
gchar *upload_uri = NULL;
|
||||
gchar *msg_result = NULL;
|
||||
gchar *data = NULL;
|
||||
GError *error = NULL;
|
||||
g_autofree gchar *upload_uri = NULL;
|
||||
g_autofree gchar *msg_result = NULL;
|
||||
g_autofree gchar *data = NULL;
|
||||
g_autoptr(GError) error = NULL;
|
||||
gsize length;
|
||||
guint status_code;
|
||||
SoupBuffer *buffer = NULL;
|
||||
SoupMessage *msg = NULL;
|
||||
SoupMultipart *multipart = NULL;
|
||||
SoupSession *session = NULL;
|
||||
g_autoptr(SoupBuffer) buffer = NULL;
|
||||
g_autoptr(SoupMessage) msg = NULL;
|
||||
g_autoptr(SoupMultipart) multipart = NULL;
|
||||
g_autoptr(SoupSession) session = NULL;
|
||||
|
||||
profile = cc_color_calibrate_get_profile (prefs->calibrate);
|
||||
ret = cd_profile_connect_sync (profile, NULL, &error);
|
||||
if (!ret)
|
||||
{
|
||||
g_warning ("Failed to get imported profile: %s", error->message);
|
||||
g_error_free (error);
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
|
||||
/* read file */
|
||||
|
@ -862,8 +833,7 @@ gcm_prefs_calib_upload_cb (GtkWidget *widget, CcColorPanel *prefs)
|
|||
if (!ret)
|
||||
{
|
||||
g_warning ("Failed to read file: %s", error->message);
|
||||
g_error_free (error);
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
|
||||
/* setup the session */
|
||||
|
@ -873,7 +843,7 @@ gcm_prefs_calib_upload_cb (GtkWidget *widget, CcColorPanel *prefs)
|
|||
if (session == NULL)
|
||||
{
|
||||
g_warning ("Failed to setup networking");
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
soup_session_add_feature_by_type (session, SOUP_TYPE_PROXY_RESOLVER_DEFAULT);
|
||||
|
||||
|
@ -896,7 +866,7 @@ gcm_prefs_calib_upload_cb (GtkWidget *widget, CcColorPanel *prefs)
|
|||
msg_result = g_strdup_printf (_("Failed to upload file: %s"), msg->reason_phrase),
|
||||
gtk_label_set_label (GTK_LABEL (widget), msg_result);
|
||||
gtk_widget_show (widget);
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
|
||||
/* show instructions to the user */
|
||||
|
@ -919,18 +889,6 @@ gcm_prefs_calib_upload_cb (GtkWidget *widget, CcColorPanel *prefs)
|
|||
widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
|
||||
"button_calib_upload"));
|
||||
gtk_widget_hide (widget);
|
||||
out:
|
||||
if (session != NULL)
|
||||
g_object_unref (session);
|
||||
if (buffer != NULL)
|
||||
soup_buffer_free (buffer);
|
||||
if (msg != NULL)
|
||||
g_object_unref (msg);
|
||||
if (multipart != NULL)
|
||||
soup_multipart_free (multipart);
|
||||
g_free (data);
|
||||
g_free (upload_uri);
|
||||
g_free (msg_result);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -938,12 +896,20 @@ gcm_prefs_calib_export_cb (GtkWidget *widget, CcColorPanel *prefs)
|
|||
{
|
||||
CdProfile *profile;
|
||||
gboolean ret;
|
||||
gchar *default_name = NULL;
|
||||
GError *error = NULL;
|
||||
GFile *destination = NULL;
|
||||
GFile *source = NULL;
|
||||
g_autofree gchar *default_name = NULL;
|
||||
g_autoptr(GError) error = NULL;
|
||||
g_autoptr(GFile) destination = NULL;
|
||||
g_autoptr(GFile) source = NULL;
|
||||
GtkWidget *dialog;
|
||||
|
||||
profile = cc_color_calibrate_get_profile (prefs->calibrate);
|
||||
ret = cd_profile_connect_sync (profile, NULL, &error);
|
||||
if (!ret)
|
||||
{
|
||||
g_warning ("Failed to get imported profile: %s", error->message);
|
||||
return;
|
||||
}
|
||||
|
||||
/* TRANSLATORS: this is the dialog to save the ICC profile */
|
||||
dialog = gtk_file_chooser_dialog_new (_("Save Profile"),
|
||||
GTK_WINDOW (prefs->main_window),
|
||||
|
@ -953,14 +919,6 @@ gcm_prefs_calib_export_cb (GtkWidget *widget, CcColorPanel *prefs)
|
|||
NULL);
|
||||
gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog), TRUE);
|
||||
|
||||
profile = cc_color_calibrate_get_profile (prefs->calibrate);
|
||||
ret = cd_profile_connect_sync (profile, NULL, &error);
|
||||
if (!ret)
|
||||
{
|
||||
g_warning ("Failed to get imported profile: %s", error->message);
|
||||
g_error_free (error);
|
||||
goto out;
|
||||
}
|
||||
default_name = g_strdup_printf ("%s.icc", cd_profile_get_title (profile));
|
||||
gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (dialog), default_name);
|
||||
|
||||
|
@ -976,19 +934,10 @@ gcm_prefs_calib_export_cb (GtkWidget *widget, CcColorPanel *prefs)
|
|||
NULL,
|
||||
&error);
|
||||
if (!ret)
|
||||
{
|
||||
g_warning ("Failed to copy profile: %s", error->message);
|
||||
g_error_free (error);
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
out:
|
||||
|
||||
gtk_widget_destroy (dialog);
|
||||
g_free (default_name);
|
||||
if (source != NULL)
|
||||
g_object_unref (source);
|
||||
if (destination != NULL)
|
||||
g_object_unref (destination);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1005,7 +954,7 @@ gcm_prefs_calib_export_link_cb (GtkLabel *widget,
|
|||
static void
|
||||
gcm_prefs_profile_add_cb (GtkWidget *widget, CcColorPanel *prefs)
|
||||
{
|
||||
GPtrArray *profiles;
|
||||
g_autoptr(GPtrArray) profiles = NULL;
|
||||
|
||||
/* add profiles of the right kind */
|
||||
profiles = cd_device_get_profiles (prefs->current_device);
|
||||
|
@ -1020,8 +969,6 @@ gcm_prefs_profile_add_cb (GtkWidget *widget, CcColorPanel *prefs)
|
|||
widget = GTK_WIDGET (prefs->dialog_assign);
|
||||
gtk_widget_show (widget);
|
||||
gtk_window_set_transient_for (GTK_WINDOW (widget), GTK_WINDOW (prefs->main_window));
|
||||
if (profiles != NULL)
|
||||
g_ptr_array_unref (profiles);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1029,7 +976,7 @@ gcm_prefs_profile_remove_cb (GtkWidget *widget, CcColorPanel *prefs)
|
|||
{
|
||||
CdProfile *profile;
|
||||
gboolean ret = FALSE;
|
||||
GError *error = NULL;
|
||||
g_autoptr(GError) error = NULL;
|
||||
GtkListBoxRow *row;
|
||||
|
||||
/* get the selected profile */
|
||||
|
@ -1049,10 +996,7 @@ gcm_prefs_profile_remove_cb (GtkWidget *widget, CcColorPanel *prefs)
|
|||
prefs->cancellable,
|
||||
&error);
|
||||
if (!ret)
|
||||
{
|
||||
g_warning ("failed to remove profile: %s", error->message);
|
||||
g_error_free (error);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1062,7 +1006,7 @@ gcm_prefs_make_profile_default_cb (GObject *object,
|
|||
{
|
||||
CdDevice *device = CD_DEVICE (object);
|
||||
gboolean ret = FALSE;
|
||||
GError *error = NULL;
|
||||
g_autoptr(GError) error = NULL;
|
||||
|
||||
ret = cd_device_make_profile_default_finish (device,
|
||||
res,
|
||||
|
@ -1072,7 +1016,6 @@ gcm_prefs_make_profile_default_cb (GObject *object,
|
|||
g_warning ("failed to set default profile on %s: %s",
|
||||
cd_device_get_id (device),
|
||||
error->message);
|
||||
g_error_free (error);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1111,10 +1054,10 @@ gcm_prefs_device_profile_enable_cb (GtkWidget *widget, CcColorPanel *prefs)
|
|||
static void
|
||||
gcm_prefs_profile_view (CcColorPanel *prefs, CdProfile *profile)
|
||||
{
|
||||
GPtrArray *argv = NULL;
|
||||
g_autoptr(GPtrArray) argv = NULL;
|
||||
guint xid;
|
||||
gboolean ret;
|
||||
GError *error = NULL;
|
||||
g_autoptr(GError) error = NULL;
|
||||
|
||||
/* get xid */
|
||||
xid = gdk_x11_window_get_xid (gtk_widget_get_window (GTK_WIDGET (prefs->main_window)));
|
||||
|
@ -1130,12 +1073,7 @@ gcm_prefs_profile_view (CcColorPanel *prefs, CdProfile *profile)
|
|||
ret = g_spawn_async (NULL, (gchar**) argv->pdata, NULL, 0,
|
||||
NULL, NULL, NULL, &error);
|
||||
if (!ret)
|
||||
{
|
||||
g_warning ("failed to run calibrate: %s", error->message);
|
||||
g_error_free (error);
|
||||
}
|
||||
|
||||
g_ptr_array_unref (argv);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1193,9 +1131,9 @@ gcm_prefs_button_assign_ok_cb (GtkWidget *widget, CcColorPanel *prefs)
|
|||
{
|
||||
GtkTreeIter iter;
|
||||
GtkTreeModel *model;
|
||||
CdProfile *profile = NULL;
|
||||
g_autoptr(CdProfile) profile = NULL;
|
||||
gboolean ret = FALSE;
|
||||
GError *error = NULL;
|
||||
g_autoptr(GError) error = NULL;
|
||||
GtkTreeSelection *selection;
|
||||
|
||||
/* hide window */
|
||||
|
@ -1207,14 +1145,14 @@ gcm_prefs_button_assign_ok_cb (GtkWidget *widget, CcColorPanel *prefs)
|
|||
"treeview_assign"));
|
||||
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget));
|
||||
if (!gtk_tree_selection_get_selected (selection, &model, &iter))
|
||||
goto out;
|
||||
return;
|
||||
gtk_tree_model_get (model, &iter,
|
||||
GCM_PREFS_COMBO_COLUMN_PROFILE, &profile,
|
||||
-1);
|
||||
if (profile == NULL)
|
||||
{
|
||||
g_warning ("failed to get the active profile");
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
|
||||
/* if the device is disabled, enable the device so that we can
|
||||
|
@ -1228,8 +1166,7 @@ gcm_prefs_button_assign_ok_cb (GtkWidget *widget, CcColorPanel *prefs)
|
|||
if (!ret)
|
||||
{
|
||||
g_warning ("failed to enabled device: %s", error->message);
|
||||
g_error_free (error);
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1242,8 +1179,7 @@ gcm_prefs_button_assign_ok_cb (GtkWidget *widget, CcColorPanel *prefs)
|
|||
if (!ret)
|
||||
{
|
||||
g_warning ("failed to add: %s", error->message);
|
||||
g_error_free (error);
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
|
||||
/* make it default */
|
||||
|
@ -1252,9 +1188,6 @@ gcm_prefs_button_assign_ok_cb (GtkWidget *widget, CcColorPanel *prefs)
|
|||
prefs->cancellable,
|
||||
(GAsyncReadyCallback) gcm_prefs_make_profile_default_cb,
|
||||
prefs);
|
||||
out:
|
||||
if (profile != NULL)
|
||||
g_object_unref (profile);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
@ -1387,7 +1320,7 @@ static void
|
|||
gcm_prefs_profile_clicked (CcColorPanel *prefs, CdProfile *profile, CdDevice *device)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
gchar *s;
|
||||
g_autofree gchar *s = NULL;
|
||||
|
||||
/* get profile */
|
||||
g_debug ("selected profile = %s",
|
||||
|
@ -1398,10 +1331,7 @@ gcm_prefs_profile_clicked (CcColorPanel *prefs, CdProfile *profile, CdDevice *de
|
|||
"toolbutton_profile_view"));
|
||||
if (cd_profile_get_filename (profile) != NULL &&
|
||||
(s = g_find_program_in_path ("gcm-viewer")) != NULL)
|
||||
{
|
||||
gtk_widget_set_sensitive (widget, TRUE);
|
||||
g_free (s);
|
||||
}
|
||||
else
|
||||
gtk_widget_set_sensitive (widget, FALSE);
|
||||
}
|
||||
|
@ -1413,7 +1343,7 @@ gcm_prefs_profiles_treeview_clicked_cb (GtkTreeSelection *selection,
|
|||
GtkWidget *widget;
|
||||
GtkTreeModel *model;
|
||||
GtkTreeIter iter;
|
||||
CdProfile *profile = NULL;
|
||||
g_autoptr(CdProfile) profile = NULL;
|
||||
#if CD_CHECK_VERSION(0,1,25)
|
||||
gchar **warnings;
|
||||
#endif
|
||||
|
@ -1440,7 +1370,6 @@ gcm_prefs_profiles_treeview_clicked_cb (GtkTreeSelection *selection,
|
|||
#else
|
||||
gtk_widget_set_visible (widget, FALSE);
|
||||
#endif
|
||||
g_object_unref (profile);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1463,9 +1392,9 @@ static void
|
|||
gcm_prefs_button_assign_import_cb (GtkWidget *widget,
|
||||
CcColorPanel *prefs)
|
||||
{
|
||||
GFile *file = NULL;
|
||||
GError *error = NULL;
|
||||
CdProfile *profile = NULL;
|
||||
g_autoptr(GFile) file = NULL;
|
||||
g_autoptr(GError) error = NULL;
|
||||
g_autoptr(CdProfile) profile = NULL;
|
||||
|
||||
file = gcm_prefs_file_chooser_get_icc_profile (prefs);
|
||||
if (file == NULL)
|
||||
|
@ -1473,7 +1402,7 @@ gcm_prefs_button_assign_import_cb (GtkWidget *widget,
|
|||
g_warning ("failed to get ICC file");
|
||||
widget = GTK_WIDGET (prefs->dialog_assign);
|
||||
gtk_widget_hide (widget);
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
|
||||
#if CD_CHECK_VERSION(0,1,12)
|
||||
|
@ -1484,18 +1413,12 @@ gcm_prefs_button_assign_import_cb (GtkWidget *widget,
|
|||
if (profile == NULL)
|
||||
{
|
||||
g_warning ("failed to get imported profile: %s", error->message);
|
||||
g_error_free (error);
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* add to list view */
|
||||
gcm_prefs_profile_add_cb (NULL, prefs);
|
||||
out:
|
||||
if (file != NULL)
|
||||
g_object_unref (file);
|
||||
if (profile != NULL)
|
||||
g_object_unref (profile);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1503,8 +1426,8 @@ gcm_prefs_sensor_coldplug (CcColorPanel *prefs)
|
|||
{
|
||||
CdSensor *sensor_tmp;
|
||||
gboolean ret;
|
||||
GError *error = NULL;
|
||||
GPtrArray *sensors;
|
||||
g_autoptr(GError) error = NULL;
|
||||
g_autoptr(GPtrArray) sensors = NULL;
|
||||
guint i;
|
||||
|
||||
/* unref old */
|
||||
|
@ -1515,11 +1438,10 @@ gcm_prefs_sensor_coldplug (CcColorPanel *prefs)
|
|||
if (sensors == NULL)
|
||||
{
|
||||
g_warning ("%s", error->message);
|
||||
g_error_free (error);
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
if (sensors->len == 0)
|
||||
goto out;
|
||||
return;
|
||||
|
||||
/* save a copy of the sensor list */
|
||||
prefs->sensors = g_ptr_array_ref (sensors);
|
||||
|
@ -1532,13 +1454,9 @@ gcm_prefs_sensor_coldplug (CcColorPanel *prefs)
|
|||
if (!ret)
|
||||
{
|
||||
g_warning ("%s", error->message);
|
||||
g_error_free (error);
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
}
|
||||
out:
|
||||
if (sensors != NULL)
|
||||
g_ptr_array_unref (sensors);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1557,7 +1475,7 @@ gcm_prefs_add_device_profile (CcColorPanel *prefs,
|
|||
gboolean is_default)
|
||||
{
|
||||
gboolean ret;
|
||||
GError *error = NULL;
|
||||
g_autoptr(GError) error = NULL;
|
||||
GtkWidget *widget;
|
||||
|
||||
/* get properties */
|
||||
|
@ -1567,8 +1485,7 @@ gcm_prefs_add_device_profile (CcColorPanel *prefs,
|
|||
if (!ret)
|
||||
{
|
||||
g_warning ("failed to get profile: %s", error->message);
|
||||
g_error_free (error);
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
|
||||
/* ignore profiles from other user accounts */
|
||||
|
@ -1585,7 +1502,7 @@ gcm_prefs_add_device_profile (CcColorPanel *prefs,
|
|||
g_warning ("%s is not usable by this user",
|
||||
cd_profile_get_id (profile));
|
||||
}
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
|
||||
/* add to listbox */
|
||||
|
@ -1593,29 +1510,24 @@ gcm_prefs_add_device_profile (CcColorPanel *prefs,
|
|||
gtk_widget_show (widget);
|
||||
gtk_container_add (GTK_CONTAINER (prefs->list_box), widget);
|
||||
gtk_size_group_add_widget (prefs->list_box_size, widget);
|
||||
out:
|
||||
return;
|
||||
}
|
||||
|
||||
static void
|
||||
gcm_prefs_add_device_profiles (CcColorPanel *prefs, CdDevice *device)
|
||||
{
|
||||
CdProfile *profile_tmp;
|
||||
GPtrArray *profiles = NULL;
|
||||
g_autoptr(GPtrArray) profiles = NULL;
|
||||
guint i;
|
||||
|
||||
/* add profiles */
|
||||
profiles = cd_device_get_profiles (device);
|
||||
if (profiles == NULL)
|
||||
goto out;
|
||||
return;
|
||||
for (i = 0; i < profiles->len; i++)
|
||||
{
|
||||
profile_tmp = g_ptr_array_index (profiles, i);
|
||||
gcm_prefs_add_device_profile (prefs, device, profile_tmp, i == 0);
|
||||
}
|
||||
out:
|
||||
if (profiles != NULL)
|
||||
g_ptr_array_unref (profiles);
|
||||
}
|
||||
|
||||
/* find the profile in the array -- for flicker-free changes */
|
||||
|
@ -1676,7 +1588,7 @@ gcm_prefs_device_changed_cb (CdDevice *device, CcColorPanel *prefs)
|
|||
CdProfile *profile_tmp;
|
||||
gboolean ret;
|
||||
GList *l;
|
||||
GList *list;
|
||||
g_autoptr(GList) list = NULL;
|
||||
GPtrArray *profiles;
|
||||
guint i;
|
||||
|
||||
|
@ -1715,7 +1627,6 @@ gcm_prefs_device_changed_cb (CdDevice *device, CcColorPanel *prefs)
|
|||
if (!ret)
|
||||
gcm_prefs_add_device_profile (prefs, device, profile_tmp, i == 0);
|
||||
}
|
||||
g_list_free (list);
|
||||
|
||||
/* resort */
|
||||
gtk_list_box_invalidate_sort (prefs->list_box);
|
||||
|
@ -1726,9 +1637,6 @@ gcm_prefs_device_expanded_changed_cb (CcColorDevice *widget,
|
|||
gboolean is_expanded,
|
||||
CcColorPanel *prefs)
|
||||
{
|
||||
GList *l;
|
||||
GList *list;
|
||||
|
||||
/* ignore internal changes */
|
||||
if (prefs->model_is_changing)
|
||||
return;
|
||||
|
@ -1736,6 +1644,9 @@ gcm_prefs_device_expanded_changed_cb (CcColorDevice *widget,
|
|||
g_free (prefs->list_box_filter);
|
||||
if (is_expanded)
|
||||
{
|
||||
g_autoptr(GList) list = NULL;
|
||||
GList *l;
|
||||
|
||||
prefs->list_box_filter = g_strdup (cd_device_get_id (cc_color_device_get_device (widget)));
|
||||
|
||||
/* unexpand other device widgets */
|
||||
|
@ -1749,7 +1660,6 @@ gcm_prefs_device_expanded_changed_cb (CcColorDevice *widget,
|
|||
cc_color_device_set_expanded (CC_COLOR_DEVICE (l->data), FALSE);
|
||||
}
|
||||
prefs->model_is_changing = FALSE;
|
||||
g_list_free (list);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1762,7 +1672,7 @@ static void
|
|||
gcm_prefs_add_device (CcColorPanel *prefs, CdDevice *device)
|
||||
{
|
||||
gboolean ret;
|
||||
GError *error = NULL;
|
||||
g_autoptr(GError) error = NULL;
|
||||
GtkWidget *widget;
|
||||
|
||||
/* get device properties */
|
||||
|
@ -1770,8 +1680,7 @@ gcm_prefs_add_device (CcColorPanel *prefs, CdDevice *device)
|
|||
if (!ret)
|
||||
{
|
||||
g_warning ("failed to connect to the device: %s", error->message);
|
||||
g_error_free (error);
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
|
||||
/* add device */
|
||||
|
@ -1790,8 +1699,6 @@ gcm_prefs_add_device (CcColorPanel *prefs, CdDevice *device)
|
|||
g_signal_connect (device, "changed",
|
||||
G_CALLBACK (gcm_prefs_device_changed_cb), prefs);
|
||||
gtk_list_box_invalidate_sort (prefs->list_box);
|
||||
out:
|
||||
return;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1799,7 +1706,7 @@ gcm_prefs_remove_device (CcColorPanel *prefs, CdDevice *device)
|
|||
{
|
||||
CdDevice *device_tmp;
|
||||
GList *l;
|
||||
GList *list;
|
||||
g_autoptr(GList) list = NULL;
|
||||
|
||||
list = gtk_container_get_children (GTK_CONTAINER (prefs->list_box));
|
||||
for (l = list; l != NULL; l = l->next)
|
||||
|
@ -1814,7 +1721,6 @@ gcm_prefs_remove_device (CcColorPanel *prefs, CdDevice *device)
|
|||
gtk_widget_destroy (GTK_WIDGET (l->data));
|
||||
}
|
||||
}
|
||||
g_list_free (list);
|
||||
g_signal_handlers_disconnect_by_func (device,
|
||||
G_CALLBACK (gcm_prefs_device_changed_cb),
|
||||
prefs);
|
||||
|
@ -1824,7 +1730,7 @@ gcm_prefs_remove_device (CcColorPanel *prefs, CdDevice *device)
|
|||
static void
|
||||
gcm_prefs_update_device_list_extra_entry (CcColorPanel *prefs)
|
||||
{
|
||||
GList *device_widgets;
|
||||
g_autoptr(GList) device_widgets = NULL;
|
||||
GtkWidget *widget;
|
||||
guint number_of_devices;
|
||||
|
||||
|
@ -1841,7 +1747,6 @@ gcm_prefs_update_device_list_extra_entry (CcColorPanel *prefs)
|
|||
/* if we have only one device expand it by default */
|
||||
if (number_of_devices == 1)
|
||||
cc_color_device_set_expanded (CC_COLOR_DEVICE (device_widgets->data), TRUE);
|
||||
g_list_free (device_widgets);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1876,8 +1781,8 @@ gcm_prefs_get_devices_cb (GObject *object,
|
|||
CcColorPanel *prefs = (CcColorPanel *) user_data;
|
||||
CdClient *client = CD_CLIENT (object);
|
||||
CdDevice *device;
|
||||
GError *error = NULL;
|
||||
GPtrArray *devices;
|
||||
g_autoptr(GError) error = NULL;
|
||||
g_autoptr(GPtrArray) devices = NULL;
|
||||
guint i;
|
||||
|
||||
/* get devices and add them */
|
||||
|
@ -1886,8 +1791,7 @@ gcm_prefs_get_devices_cb (GObject *object,
|
|||
{
|
||||
g_warning ("failed to add connected devices: %s",
|
||||
error->message);
|
||||
g_error_free (error);
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
for (i = 0; i < devices->len; i++)
|
||||
{
|
||||
|
@ -1897,9 +1801,6 @@ gcm_prefs_get_devices_cb (GObject *object,
|
|||
|
||||
/* ensure we show the 'No devices detected' entry if empty */
|
||||
gcm_prefs_update_device_list_extra_entry (prefs);
|
||||
out:
|
||||
if (devices != NULL)
|
||||
g_ptr_array_unref (devices);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1931,8 +1832,7 @@ gcm_prefs_refresh_toolbar_buttons (CcColorPanel *panel)
|
|||
return;
|
||||
|
||||
/* save current device */
|
||||
if (panel->current_device != NULL)
|
||||
g_object_unref (panel->current_device);
|
||||
g_clear_object (&panel->current_device);
|
||||
g_object_get (row, "device", &panel->current_device, NULL);
|
||||
|
||||
/* device actions */
|
||||
|
@ -1992,7 +1892,7 @@ gcm_prefs_connect_cb (GObject *object,
|
|||
{
|
||||
CcColorPanel *prefs;
|
||||
gboolean ret;
|
||||
GError *error = NULL;
|
||||
g_autoptr(GError) error = NULL;
|
||||
|
||||
ret = cd_client_connect_finish (CD_CLIENT (object),
|
||||
res,
|
||||
|
@ -2001,8 +1901,6 @@ gcm_prefs_connect_cb (GObject *object,
|
|||
{
|
||||
if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
|
||||
g_warning ("failed to connect to colord: %s", error->message);
|
||||
|
||||
g_error_free (error);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -2014,7 +1912,6 @@ gcm_prefs_connect_cb (GObject *object,
|
|||
/* set calibrate button sensitivity */
|
||||
gcm_prefs_sensor_coldplug (prefs);
|
||||
|
||||
|
||||
/* get devices */
|
||||
cd_client_get_devices (prefs->client,
|
||||
prefs->cancellable,
|
||||
|
@ -2027,12 +1924,12 @@ gcm_prefs_is_livecd (void)
|
|||
{
|
||||
#ifdef __linux__
|
||||
gboolean ret = TRUE;
|
||||
gchar *data = NULL;
|
||||
GError *error = NULL;
|
||||
g_autofree gchar *data = NULL;
|
||||
g_autoptr(GError) error = NULL;
|
||||
|
||||
/* allow testing */
|
||||
if (g_getenv ("CC_COLOR_PANEL_IS_LIVECD") != NULL)
|
||||
goto out;
|
||||
return TRUE;
|
||||
|
||||
/* get the kernel commandline */
|
||||
ret = g_file_get_contents ("/proc/cmdline", &data, NULL, &error);
|
||||
|
@ -2040,14 +1937,10 @@ gcm_prefs_is_livecd (void)
|
|||
{
|
||||
g_warning ("failed to get kernel command line: %s",
|
||||
error->message);
|
||||
g_error_free (error);
|
||||
goto out;
|
||||
return TRUE;
|
||||
}
|
||||
ret = (g_strstr_len (data, -1, "liveimg") != NULL ||
|
||||
return (g_strstr_len (data, -1, "liveimg") != NULL ||
|
||||
g_strstr_len (data, -1, "casper") != NULL);
|
||||
out:
|
||||
g_free (data);
|
||||
return ret;
|
||||
#else
|
||||
return FALSE;
|
||||
#endif
|
||||
|
@ -2121,8 +2014,7 @@ cc_color_panel_dispose (GObject *object)
|
|||
G_CALLBACK (gcm_prefs_device_changed_cb),
|
||||
CC_COLOR_PANEL (object));
|
||||
}
|
||||
g_ptr_array_unref (prefs->devices);
|
||||
prefs->devices = NULL;
|
||||
g_clear_pointer (&prefs->devices, g_ptr_array_unref);
|
||||
}
|
||||
|
||||
if (prefs->cancellable != NULL)
|
||||
|
@ -2188,17 +2080,14 @@ static gboolean
|
|||
cc_color_panel_filter_func (GtkListBoxRow *row, void *user_data)
|
||||
{
|
||||
CcColorPanel *prefs = CC_COLOR_PANEL (user_data);
|
||||
CdDevice *device;
|
||||
gboolean ret;
|
||||
g_autoptr(CdDevice) device = NULL;
|
||||
|
||||
/* always show all devices */
|
||||
if (CC_IS_COLOR_DEVICE (row))
|
||||
return TRUE;
|
||||
|
||||
g_object_get (row, "device", &device, NULL);
|
||||
ret = g_strcmp0 (cd_device_get_id (device), prefs->list_box_filter) == 0;
|
||||
g_object_unref (device);
|
||||
return ret;
|
||||
return g_strcmp0 (cd_device_get_id (device), prefs->list_box_filter) == 0;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
@ -2221,7 +2110,7 @@ cc_color_panel_treeview_quality_default_cb (GtkTreeModel *model,
|
|||
static void
|
||||
cc_color_panel_init (CcColorPanel *prefs)
|
||||
{
|
||||
GError *error = NULL;
|
||||
g_autoptr(GError) error = NULL;
|
||||
GtkCellRenderer *renderer;
|
||||
GtkStyleContext *context;
|
||||
GtkTreeModel *model;
|
||||
|
@ -2240,7 +2129,6 @@ cc_color_panel_init (CcColorPanel *prefs)
|
|||
if (error != NULL)
|
||||
{
|
||||
g_warning ("Could not load interface file: %s", error->message);
|
||||
g_error_free (error);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -65,19 +65,14 @@ static gchar *
|
|||
cc_color_profile_get_profile_date (CdProfile *profile)
|
||||
{
|
||||
gint64 created;
|
||||
gchar *string = NULL;
|
||||
GDateTime *dt = NULL;
|
||||
g_autoptr(GDateTime) dt = NULL;
|
||||
|
||||
/* get profile age */
|
||||
created = cd_profile_get_created (profile);
|
||||
if (created == 0)
|
||||
goto out;
|
||||
return NULL;
|
||||
dt = g_date_time_new_from_unix_utc (created);
|
||||
string = g_date_time_format (dt, "%x");
|
||||
out:
|
||||
if (dt != NULL)
|
||||
g_date_time_unref (dt);
|
||||
return string;
|
||||
return g_date_time_format (dt, "%x");
|
||||
}
|
||||
|
||||
static gchar *
|
||||
|
@ -234,7 +229,7 @@ static void
|
|||
cc_color_profile_refresh (CcColorProfile *color_profile)
|
||||
{
|
||||
const gchar *warnings;
|
||||
gchar *title = NULL;
|
||||
g_autofree gchar *title = NULL;
|
||||
|
||||
/* show the image if the profile is default */
|
||||
gtk_widget_set_visible (color_profile->widget_image, color_profile->is_default);
|
||||
|
@ -244,7 +239,6 @@ cc_color_profile_refresh (CcColorProfile *color_profile)
|
|||
/* set the title */
|
||||
title = gcm_prefs_get_profile_title (color_profile->profile);
|
||||
gtk_label_set_markup (GTK_LABEL (color_profile->widget_description), title);
|
||||
g_free (title);
|
||||
|
||||
/* show any information */
|
||||
warnings = cc_color_profile_get_warnings (color_profile);
|
||||
|
@ -355,16 +349,13 @@ static void
|
|||
cc_color_profile_changed_cb (CdDevice *device,
|
||||
CcColorProfile *color_profile)
|
||||
{
|
||||
CdProfile *profile;
|
||||
g_autoptr(CdProfile) profile = NULL;
|
||||
|
||||
/* check to see if the default has changed */
|
||||
profile = cd_device_get_default_profile (device);
|
||||
if (profile != NULL)
|
||||
{
|
||||
color_profile->is_default = g_strcmp0 (cd_profile_get_object_path (profile),
|
||||
cd_profile_get_object_path (color_profile->profile)) == 0;
|
||||
g_object_unref (profile);
|
||||
}
|
||||
cc_color_profile_refresh (color_profile);
|
||||
}
|
||||
|
||||
|
@ -389,8 +380,8 @@ cc_color_profile_constructed (GObject *object)
|
|||
{
|
||||
CcColorProfile *color_profile = CC_COLOR_PROFILE (object);
|
||||
const gchar *sortable_data_source;
|
||||
gchar *sortable_device;
|
||||
gchar *title;
|
||||
g_autofree gchar *sortable_device = NULL;
|
||||
g_autofree gchar *title = NULL;
|
||||
|
||||
/* watch to see if the default changes */
|
||||
color_profile->device_changed_id =
|
||||
|
@ -414,8 +405,6 @@ cc_color_profile_constructed (GObject *object)
|
|||
sortable_data_source,
|
||||
cd_profile_get_created (color_profile->profile),
|
||||
title);
|
||||
g_free (title);
|
||||
g_free (sortable_device);
|
||||
|
||||
cc_color_profile_refresh (color_profile);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue