summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2018-05-30 16:27:46 +1200
committerRobert Ancell <robert.ancell@canonical.com>2018-05-30 16:27:46 +1200
commit5ea7632b833ce745120dbf6ee2a7a6cfdf80e880 (patch)
treef0f43a814fd887a5706b5d191848901b6f549457
parent490bee5a2312b687098343a807404cee99c2968c (diff)
downloadgnome-control-center-5ea7632b833ce745120dbf6ee2a7a6cfdf80e880.tar.gz
color: Use GtkTemplate
-rw-r--r--panels/color/cc-color-panel.c423
-rw-r--r--panels/color/color.ui416
2 files changed, 379 insertions, 460 deletions
diff --git a/panels/color/cc-color-panel.c b/panels/color/cc-color-panel.c
index eb0fc5887..1d18b3fd5 100644
--- a/panels/color/cc-color-panel.c
+++ b/panels/color/cc-color-panel.c
@@ -35,8 +35,6 @@
#include "cc-color-device.h"
#include "cc-color-profile.h"
-#define WID(b, w) (GtkWidget *) gtk_builder_get_object (b, w)
-
struct _CcColorPanel
{
CcPanel parent_instance;
@@ -48,10 +46,43 @@ struct _CcColorPanel
GCancellable *cancellable;
GSettings *settings;
GSettings *settings_colord;
- GtkBuilder *builder;
GtkWidget *assistant_calib;
+ GtkWidget *box_calib_brightness;
+ GtkWidget *box_calib_kind;
+ GtkWidget *box_calib_quality;
+ GtkWidget *box_calib_sensor;
+ GtkWidget *box_calib_summary;
+ GtkWidget *box_calib_temp;
+ GtkWidget *box_calib_title;
+ GtkWidget *box_devices;
+ GtkWidget *button_assign_cancel;
+ GtkWidget *button_assign_import;
+ GtkWidget *button_assign_ok;
+ GtkWidget *button_calib_export;
+ GtkWidget *button_calib_upload;
GtkWidget *dialog_assign;
+ GtkWidget *entry_calib_title;
+ GtkWidget *frame_devices;
+ GtkWidget *label_assign_warning;
+ GtkWidget *label_calib_summary_message;
+ GtkWidget *label_calib_upload_location;
+ GtkWidget *label_no_devices;
+ GtkTreeModel *liststore_assign;
+ GtkTreeModel *liststore_calib_kind;
+ GtkTreeModel *liststore_calib_sensor;
GtkWidget *main_window;
+ GtkWidget *toolbar_devices;
+ GtkWidget *toolbutton_device_calibrate;
+ GtkWidget *toolbutton_device_default;
+ GtkWidget *toolbutton_device_enable;
+ GtkWidget *toolbutton_profile_add;
+ GtkWidget *toolbutton_profile_remove;
+ GtkWidget *toolbutton_profile_view;
+ GtkWidget *treeview_assign;
+ GtkWidget *treeview_calib_kind;
+ GtkWidget *treeview_calib_quality;
+ GtkWidget *treeview_calib_sensor;
+ GtkWidget *treeview_calib_temp;
CcColorCalibrate *calibrate;
GtkListBox *list_box;
gchar *list_box_filter;
@@ -114,7 +145,6 @@ gcm_prefs_combobox_add_profile (CcColorPanel *prefs,
const gchar *id;
GtkTreeIter iter_tmp;
g_autoptr(GString) string = NULL;
- GtkListStore *list_store;
gchar *escaped = NULL;
guint kind = 0;
const gchar *warning = NULL;
@@ -164,10 +194,8 @@ gcm_prefs_combobox_add_profile (CcColorPanel *prefs,
#endif
escaped = g_markup_escape_text (string->str, -1);
- list_store = GTK_LIST_STORE(gtk_builder_get_object (prefs->builder,
- "liststore_assign"));
- gtk_list_store_append (list_store, iter);
- gtk_list_store_set (list_store, iter,
+ gtk_list_store_append (GTK_LIST_STORE (prefs->liststore_assign), iter);
+ gtk_list_store_set (GTK_LIST_STORE (prefs->liststore_assign), iter,
GCM_PREFS_COMBO_COLUMN_TEXT, escaped,
GCM_PREFS_COMBO_COLUMN_PROFILE, profile,
GCM_PREFS_COMBO_COLUMN_TYPE, kind,
@@ -253,12 +281,9 @@ gcm_prefs_calib_delayed_complete_cb (gpointer user_data)
{
CcColorPanel *panel = CC_COLOR_PANEL (user_data);
GtkAssistant *assistant;
- GtkWidget *widget;
assistant = GTK_ASSISTANT (panel->assistant_calib);
- widget = GTK_WIDGET (gtk_builder_get_object (panel->builder,
- "box_calib_brightness"));
- gtk_assistant_set_page_complete (assistant, widget, TRUE);
+ gtk_assistant_set_page_complete (assistant, panel->box_calib_brightness, TRUE);
return FALSE;
}
@@ -267,14 +292,10 @@ gcm_prefs_calib_prepare_cb (GtkAssistant *assistant,
GtkWidget *page,
CcColorPanel *panel)
{
- GtkWidget *widget;
-
/* give the user the indication they should actually manually set the
* desired brightness rather than clicking blindly by delaying the
* "Next" button deliberately for a second or so */
- widget = GTK_WIDGET (gtk_builder_get_object (panel->builder,
- "box_calib_brightness"));
- if (widget == page)
+ if (page == panel->box_calib_brightness)
{
g_timeout_add_seconds (1, gcm_prefs_calib_delayed_complete_cb, panel);
return;
@@ -282,7 +303,7 @@ gcm_prefs_calib_prepare_cb (GtkAssistant *assistant,
/* disable the brightness page as we don't want to show a 'Finished'
* button if the user goes back at any point */
- gtk_assistant_set_page_complete (assistant, widget, FALSE);
+ gtk_assistant_set_page_complete (assistant, panel->box_calib_brightness, FALSE);
}
static void
@@ -293,9 +314,7 @@ gcm_prefs_calib_apply_cb (GtkWidget *widget, CcColorPanel *prefs)
GtkWindow *window = NULL;
/* setup the calibration object with items that can fail */
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "button_calib_upload"));
- gtk_widget_show (widget);
+ gtk_widget_show (prefs->button_calib_upload);
ret = cc_color_calibrate_setup (prefs->calibrate,
&error);
if (!ret)
@@ -339,16 +358,13 @@ gcm_prefs_calib_temp_treeview_clicked_cb (GtkTreeSelection *selection,
gboolean ret;
GtkTreeIter iter;
GtkTreeModel *model;
- GtkWidget *widget;
guint target_whitepoint;
GtkAssistant *assistant;
/* check to see if anything is selected */
ret = gtk_tree_selection_get_selected (selection, &model, &iter);
assistant = GTK_ASSISTANT (prefs->assistant_calib);
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "box_calib_temp"));
- gtk_assistant_set_page_complete (assistant, widget, ret);
+ gtk_assistant_set_page_complete (assistant, prefs->box_calib_temp, ret);
if (!ret)
return;
@@ -366,15 +382,12 @@ gcm_prefs_calib_kind_treeview_clicked_cb (GtkTreeSelection *selection,
gboolean ret;
GtkTreeIter iter;
GtkTreeModel *model;
- GtkWidget *widget;
GtkAssistant *assistant;
/* check to see if anything is selected */
ret = gtk_tree_selection_get_selected (selection, &model, &iter);
assistant = GTK_ASSISTANT (prefs->assistant_calib);
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "box_calib_kind"));
- gtk_assistant_set_page_complete (assistant, widget, ret);
+ gtk_assistant_set_page_complete (assistant, prefs->box_calib_kind, ret);
if (!ret)
return;
@@ -394,14 +407,11 @@ gcm_prefs_calib_quality_treeview_clicked_cb (GtkTreeSelection *selection,
GtkAssistant *assistant;
GtkTreeIter iter;
GtkTreeModel *model;
- GtkWidget *widget;
/* check to see if anything is selected */
ret = gtk_tree_selection_get_selected (selection, &model, &iter);
assistant = GTK_ASSISTANT (prefs->assistant_calib);
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "box_calib_quality"));
- gtk_assistant_set_page_complete (assistant, widget, ret);
+ gtk_assistant_set_page_complete (assistant, prefs->box_calib_quality, ret);
if (!ret)
return;
@@ -450,8 +460,6 @@ static void
gcm_prefs_calib_set_sensor (CcColorPanel *prefs,
CdSensor *sensor)
{
- GtkTreeModel *model;
- GtkWidget *page;
guint64 caps;
guint8 i;
@@ -459,19 +467,15 @@ gcm_prefs_calib_set_sensor (CcColorPanel *prefs,
cc_color_calibrate_set_sensor (prefs->calibrate, sensor);
/* hide display types the sensor does not support */
- model = GTK_TREE_MODEL (gtk_builder_get_object (prefs->builder,
- "liststore_calib_kind"));
- gtk_tree_model_foreach (model,
+ gtk_tree_model_foreach (prefs->liststore_calib_kind,
gcm_prefs_calib_set_sensor_cap_supported_cb,
sensor);
/* if the sensor only supports one kind then do not show the panel at all */
- page = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "box_calib_kind"));
caps = cd_sensor_get_caps (sensor);
if (_cd_bitfield_popcount (caps) == 1)
{
- gtk_widget_set_visible (page, FALSE);
+ gtk_widget_set_visible (prefs->box_calib_kind, FALSE);
for (i = 0; i < CD_SENSOR_CAP_LAST; i++)
{
if (cd_bitfield_contain (caps, i))
@@ -481,7 +485,7 @@ gcm_prefs_calib_set_sensor (CcColorPanel *prefs,
else
{
cc_color_calibrate_set_kind (prefs->calibrate, CD_SENSOR_CAP_UNKNOWN);
- gtk_widget_set_visible (page, TRUE);
+ gtk_widget_set_visible (prefs->box_calib_kind, TRUE);
}
}
@@ -492,16 +496,13 @@ gcm_prefs_calib_sensor_treeview_clicked_cb (GtkTreeSelection *selection,
gboolean ret;
GtkTreeIter iter;
GtkTreeModel *model;
- GtkWidget *widget;
g_autoptr(CdSensor) sensor = NULL;
GtkAssistant *assistant;
/* check to see if anything is selected */
ret = gtk_tree_selection_get_selected (selection, &model, &iter);
assistant = GTK_ASSISTANT (prefs->assistant_calib);
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "box_calib_sensor"));
- gtk_assistant_set_page_complete (assistant, widget, ret);
+ gtk_assistant_set_page_complete (assistant, prefs->box_calib_sensor, ret);
if (!ret)
return;
@@ -517,39 +518,32 @@ gcm_prefs_calibrate_display (CcColorPanel *prefs)
{
CdSensor *sensor_tmp;
const gchar *tmp;
- GtkListStore *liststore;
GtkTreeIter iter;
- GtkWidget *page;
- GtkWidget *widget;
guint i;
/* set target device */
cc_color_calibrate_set_device (prefs->calibrate, prefs->current_device);
/* add sensors to list */
- liststore = GTK_LIST_STORE (gtk_builder_get_object (prefs->builder,
- "liststore_calib_sensor"));
- gtk_list_store_clear (liststore);
- page = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "box_calib_sensor"));
+ gtk_list_store_clear (GTK_LIST_STORE (prefs->liststore_calib_sensor));
if (prefs->sensors->len > 1)
{
for (i = 0; i < prefs->sensors->len; i++)
{
sensor_tmp = g_ptr_array_index (prefs->sensors, i);
- gtk_list_store_append (liststore, &iter);
- gtk_list_store_set (liststore, &iter,
+ gtk_list_store_append (GTK_LIST_STORE (prefs->liststore_calib_sensor), &iter);
+ gtk_list_store_set (GTK_LIST_STORE (prefs->liststore_calib_sensor), &iter,
COLUMN_CALIB_SENSOR_OBJECT, sensor_tmp,
COLUMN_CALIB_SENSOR_DESCRIPTION, cd_sensor_get_model (sensor_tmp),
-1);
}
- gtk_widget_set_visible (page, TRUE);
+ gtk_widget_set_visible (prefs->box_calib_sensor, TRUE);
}
else
{
sensor_tmp = g_ptr_array_index (prefs->sensors, 0);
gcm_prefs_calib_set_sensor (prefs, sensor_tmp);
- gtk_widget_set_visible (page, FALSE);
+ gtk_widget_set_visible (prefs->box_calib_sensor, FALSE);
}
/* set default profile title */
@@ -558,19 +552,16 @@ gcm_prefs_calibrate_display (CcColorPanel *prefs)
tmp = cd_device_get_vendor (prefs->current_device);
if (tmp == NULL)
tmp = _("Screen");
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "entry_calib_title"));
- gtk_entry_set_text (GTK_ENTRY (widget), tmp);
+ gtk_entry_set_text (GTK_ENTRY (prefs->entry_calib_title), tmp);
cc_color_calibrate_set_title (prefs->calibrate, tmp);
/* set the display whitepoint to D65 by default */
//FIXME?
/* show ui */
- widget = GTK_WIDGET (prefs->assistant_calib);
- gtk_window_set_transient_for (GTK_WINDOW (widget),
+ gtk_window_set_transient_for (GTK_WINDOW (prefs->assistant_calib),
GTK_WINDOW (prefs->main_window));
- gtk_widget_show (widget);
+ gtk_widget_show (prefs->assistant_calib);
}
static void
@@ -579,15 +570,12 @@ gcm_prefs_title_entry_changed_cb (GtkWidget *widget,
CcColorPanel *prefs)
{
GtkAssistant *assistant;
- GtkWidget *page;
const gchar *value;
assistant = GTK_ASSISTANT (prefs->assistant_calib);
- page = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "box_calib_title"));
- value = gtk_entry_get_text (GTK_ENTRY (widget));
+ value = gtk_entry_get_text (GTK_ENTRY (prefs->box_calib_title));
cc_color_calibrate_set_title (prefs->calibrate, value);
- gtk_assistant_set_page_complete (assistant, page, value[0] != '\0');
+ gtk_assistant_set_page_complete (assistant, prefs->box_calib_title, value[0] != '\0');
}
static void
@@ -729,24 +717,18 @@ gcm_prefs_add_profiles_suitable_for_devices (CcColorPanel *prefs,
g_autoptr(GError) error = NULL;
g_autoptr(GPtrArray) profile_array = NULL;
GtkTreeIter iter;
- GtkListStore *list_store;
- GtkWidget *widget;
guint i;
- list_store = GTK_LIST_STORE(gtk_builder_get_object (prefs->builder,
- "liststore_assign"));
- gtk_list_store_clear (list_store);
- gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (list_store),
+ gtk_list_store_clear (GTK_LIST_STORE (prefs->liststore_assign));
+ gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (prefs->liststore_assign),
GCM_PREFS_COMBO_COLUMN_TEXT,
GTK_SORT_ASCENDING);
- gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (list_store),
+ gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (prefs->liststore_assign),
GCM_PREFS_COMBO_COLUMN_TEXT,
gcm_prefs_combo_sort_func_cb,
- list_store, NULL);
+ prefs->liststore_assign, NULL);
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "label_assign_warning"));
- gtk_widget_hide (widget);
+ gtk_widget_hide (prefs->label_assign_warning);
/* get profiles */
profile_array = cd_client_get_profiles_sync (prefs->client,
@@ -860,18 +842,14 @@ gcm_prefs_calib_upload_cb (GtkWidget *widget, CcColorPanel *prefs)
status_code = soup_session_send_message (session, msg);
if (status_code != 201)
{
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "label_calib_upload_location"));
/* TRANSLATORS: this is when the upload of the profile failed */
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);
+ gtk_label_set_label (GTK_LABEL (prefs->label_calib_upload_location), msg_result);
+ gtk_widget_show (prefs->label_calib_upload_location);
return;
}
/* show instructions to the user */
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "label_calib_upload_location"));
uri = soup_message_headers_get_one (msg->response_headers, "Location");
msg_result = g_strdup_printf ("%s %s\n\n• %s\n• %s\n• %s",
/* TRANSLATORS: these are instructions on how to recover
@@ -882,13 +860,11 @@ gcm_prefs_calib_upload_cb (GtkWidget *widget, CcColorPanel *prefs)
_("Write down this URL."),
_("Restart this computer and boot your normal operating system."),
_("Type the URL into your browser to download and install the profile.")),
- gtk_label_set_label (GTK_LABEL (widget), msg_result);
- gtk_widget_show (widget);
+ gtk_label_set_label (GTK_LABEL (prefs->label_calib_upload_location), msg_result);
+ gtk_widget_show (prefs->label_calib_upload_location);
/* hide the upload button as duplicate uploads will fail */
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "button_calib_upload"));
- gtk_widget_hide (widget);
+ gtk_widget_hide (prefs->button_calib_upload);
}
static void
@@ -961,14 +937,11 @@ gcm_prefs_profile_add_cb (GtkWidget *widget, CcColorPanel *prefs)
gcm_prefs_add_profiles_suitable_for_devices (prefs, profiles);
/* make insensitve until we have a selection */
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "button_assign_ok"));
- gtk_widget_set_sensitive (widget, FALSE);
+ gtk_widget_set_sensitive (prefs->button_assign_ok, FALSE);
/* show the dialog */
- widget = GTK_WIDGET (prefs->dialog_assign);
- gtk_widget_show (widget);
- gtk_window_set_transient_for (GTK_WINDOW (widget), GTK_WINDOW (prefs->main_window));
+ gtk_widget_show (prefs->dialog_assign);
+ gtk_window_set_transient_for (GTK_WINDOW (prefs->dialog_assign), GTK_WINDOW (prefs->main_window));
}
static void
@@ -1141,9 +1114,7 @@ gcm_prefs_button_assign_ok_cb (GtkWidget *widget, CcColorPanel *prefs)
gtk_widget_hide (widget);
/* get the selected profile */
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "treeview_assign"));
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget));
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (prefs->treeview_assign));
if (!gtk_tree_selection_get_selected (selection, &model, &iter))
return;
gtk_tree_model_get (model, &iter,
@@ -1229,7 +1200,6 @@ static void
gcm_prefs_set_calibrate_button_sensitivity (CcColorPanel *prefs)
{
gboolean ret = FALSE;
- GtkWidget *widget;
const gchar *tooltip;
CdDeviceKind kind;
CdSensor *sensor_tmp;
@@ -1299,10 +1269,8 @@ gcm_prefs_set_calibrate_button_sensitivity (CcColorPanel *prefs)
}
out:
/* control the tooltip and sensitivity of the button */
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "toolbutton_device_calibrate"));
- gtk_widget_set_tooltip_text (widget, tooltip);
- gtk_widget_set_sensitive (widget, ret);
+ gtk_widget_set_tooltip_text (prefs->toolbutton_device_calibrate, tooltip);
+ gtk_widget_set_sensitive (prefs->toolbutton_device_calibrate, ret);
}
static void
@@ -1319,7 +1287,6 @@ gcm_prefs_device_clicked (CcColorPanel *prefs, CdDevice *device)
static void
gcm_prefs_profile_clicked (CcColorPanel *prefs, CdProfile *profile, CdDevice *device)
{
- GtkWidget *widget;
g_autofree gchar *s = NULL;
/* get profile */
@@ -1327,20 +1294,17 @@ gcm_prefs_profile_clicked (CcColorPanel *prefs, CdProfile *profile, CdDevice *de
cd_profile_get_filename (profile));
/* allow getting profile info */
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "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);
+ gtk_widget_set_sensitive (prefs->toolbutton_profile_view, TRUE);
else
- gtk_widget_set_sensitive (widget, FALSE);
+ gtk_widget_set_sensitive (prefs->toolbutton_profile_view, FALSE);
}
static void
gcm_prefs_profiles_treeview_clicked_cb (GtkTreeSelection *selection,
CcColorPanel *prefs)
{
- GtkWidget *widget;
GtkTreeModel *model;
GtkTreeIter iter;
g_autoptr(CdProfile) profile = NULL;
@@ -1355,20 +1319,15 @@ gcm_prefs_profiles_treeview_clicked_cb (GtkTreeSelection *selection,
GCM_PREFS_COMBO_COLUMN_PROFILE, &profile,
-1);
-
/* as soon as anything is selected, make the Add button sensitive */
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "button_assign_ok"));
- gtk_widget_set_sensitive (widget, TRUE);
+ gtk_widget_set_sensitive (prefs->button_assign_ok, TRUE);
/* is the profile faulty */
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "label_assign_warning"));
#if CD_CHECK_VERSION(0,1,25)
warnings = cd_profile_get_warnings (profile);
- gtk_widget_set_visible (widget, warnings != NULL && warnings[0] != NULL);
+ gtk_widget_set_visible (prefs->label_assign_warning, warnings != NULL && warnings[0] != NULL);
#else
- gtk_widget_set_visible (widget, FALSE);
+ gtk_widget_set_visible (prefs->label_assign_warning, FALSE);
#endif
}
@@ -1731,18 +1690,13 @@ static void
gcm_prefs_update_device_list_extra_entry (CcColorPanel *prefs)
{
g_autoptr(GList) device_widgets = NULL;
- GtkWidget *widget;
guint number_of_devices;
/* any devices to show? */
device_widgets = gtk_container_get_children (GTK_CONTAINER (prefs->list_box));
number_of_devices = g_list_length (device_widgets);
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "label_no_devices"));
- gtk_widget_set_visible (widget, number_of_devices == 0);
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "vbox3"));
- gtk_widget_set_visible (widget, number_of_devices > 0);
+ gtk_widget_set_visible (prefs->label_no_devices, number_of_devices == 0);
+ gtk_widget_set_visible (prefs->box_devices, number_of_devices > 0);
/* if we have only one device expand it by default */
if (number_of_devices == 1)
@@ -1815,7 +1769,6 @@ static void
gcm_prefs_refresh_toolbar_buttons (CcColorPanel *panel)
{
CdProfile *profile = NULL;
- GtkWidget *widget;
GtkListBoxRow *row;
gboolean is_device;
@@ -1825,9 +1778,7 @@ gcm_prefs_refresh_toolbar_buttons (CcColorPanel *panel)
is_device = CC_IS_COLOR_DEVICE (row);
/* nothing selected */
- widget = GTK_WIDGET (gtk_builder_get_object (panel->builder,
- "toolbar_devices"));
- gtk_widget_set_visible (widget, row != NULL);
+ gtk_widget_set_visible (panel->toolbar_devices, row != NULL);
if (row == NULL)
return;
@@ -1850,28 +1801,14 @@ gcm_prefs_refresh_toolbar_buttons (CcColorPanel *panel)
else
g_assert_not_reached ();
- widget = GTK_WIDGET (gtk_builder_get_object (panel->builder,
- "toolbutton_device_default"));
- gtk_widget_set_visible (widget, !is_device && cc_color_profile_get_is_default (CC_COLOR_PROFILE (row)));
+ gtk_widget_set_visible (panel->toolbutton_device_default, !is_device && cc_color_profile_get_is_default (CC_COLOR_PROFILE (row)));
if (profile)
- gtk_widget_set_sensitive (widget, !cd_profile_get_is_system_wide (profile));
-
- widget = GTK_WIDGET (gtk_builder_get_object (panel->builder,
- "toolbutton_device_enable"));
- gtk_widget_set_visible (widget, !is_device && !cc_color_profile_get_is_default (CC_COLOR_PROFILE (row)));
-
- widget = GTK_WIDGET (gtk_builder_get_object (panel->builder,
- "toolbutton_device_calibrate"));
- gtk_widget_set_visible (widget, is_device);
- widget = GTK_WIDGET (gtk_builder_get_object (panel->builder,
- "toolbutton_profile_add"));
- gtk_widget_set_visible (widget, is_device);
- widget = GTK_WIDGET (gtk_builder_get_object (panel->builder,
- "toolbutton_profile_view"));
- gtk_widget_set_visible (widget, !is_device);
- widget = GTK_WIDGET (gtk_builder_get_object (panel->builder,
- "toolbutton_profile_remove"));
- gtk_widget_set_visible (widget, !is_device);
+ gtk_widget_set_sensitive (panel->toolbutton_device_default, !cd_profile_get_is_system_wide (profile));
+ gtk_widget_set_visible (panel->toolbutton_device_enable, !is_device && !cc_color_profile_get_is_default (CC_COLOR_PROFILE (row)));
+ gtk_widget_set_visible (panel->toolbutton_device_calibrate, is_device);
+ gtk_widget_set_visible (panel->toolbutton_profile_add, is_device);
+ gtk_widget_set_visible (panel->toolbutton_profile_view, !is_device);
+ gtk_widget_set_visible (panel->toolbutton_profile_remove, !is_device);
}
static void
@@ -2022,7 +1959,6 @@ cc_color_panel_dispose (GObject *object)
g_clear_object (&prefs->settings);
g_clear_object (&prefs->settings_colord);
g_clear_object (&prefs->cancellable);
- g_clear_object (&prefs->builder);
g_clear_object (&prefs->client);
g_clear_object (&prefs->current_device);
g_clear_object (&prefs->calibrate);
@@ -2044,6 +1980,7 @@ static void
cc_color_panel_class_init (CcColorPanelClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
CcPanelClass *panel_class = CC_PANEL_CLASS (klass);
panel_class->get_help_uri = cc_color_panel_get_help_uri;
@@ -2052,6 +1989,45 @@ cc_color_panel_class_init (CcColorPanelClass *klass)
object_class->set_property = cc_color_panel_set_property;
object_class->dispose = cc_color_panel_dispose;
object_class->finalize = cc_color_panel_finalize;
+
+ gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/control-center/color/color.ui");
+
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, assistant_calib);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, box_calib_brightness);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, box_calib_kind);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, box_calib_quality);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, box_calib_sensor);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, box_calib_summary);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, box_calib_temp);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, box_calib_title);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, box_devices);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, button_assign_cancel);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, button_assign_import);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, button_assign_ok);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, button_calib_export);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, button_calib_upload);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, dialog_assign);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, entry_calib_title);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, frame_devices);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, label_assign_warning);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, label_calib_summary_message);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, label_calib_upload_location);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, label_no_devices);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, liststore_assign);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, liststore_calib_kind);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, liststore_calib_sensor);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, toolbar_devices);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, toolbutton_device_calibrate);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, toolbutton_device_default);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, toolbutton_device_enable);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, toolbutton_profile_add);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, toolbutton_profile_remove);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, toolbutton_profile_view);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, treeview_assign);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, treeview_calib_kind);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, treeview_calib_quality);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, treeview_calib_sensor);
+ gtk_widget_class_bind_template_child (widget_class, CcColorPanel, treeview_calib_temp);
}
static gint
@@ -2110,27 +2086,16 @@ cc_color_panel_treeview_quality_default_cb (GtkTreeModel *model,
static void
cc_color_panel_init (CcColorPanel *prefs)
{
- g_autoptr(GError) error = NULL;
GtkCellRenderer *renderer;
GtkStyleContext *context;
GtkTreeModel *model;
GtkTreeModel *model_filter;
GtkTreeSelection *selection;
GtkTreeViewColumn *column;
- GtkWidget *widget;
g_resources_register (cc_color_get_resource ());
- prefs->builder = gtk_builder_new ();
- gtk_builder_add_from_resource (prefs->builder,
- "/org/gnome/control-center/color/color.ui",
- &error);
-
- if (error != NULL)
- {
- g_warning ("Could not load interface file: %s", error->message);
- return;
- }
+ gtk_widget_init_template (GTK_WIDGET (prefs));
prefs->cancellable = g_cancellable_new ();
prefs->devices = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref);
@@ -2144,103 +2109,71 @@ cc_color_panel_init (CcColorPanel *prefs)
prefs->settings_colord = g_settings_new (COLORD_SETTINGS_SCHEMA);
/* assign buttons */
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "toolbutton_profile_add"));
- g_signal_connect (widget, "clicked",
+ g_signal_connect (prefs->toolbutton_profile_add, "clicked",
G_CALLBACK (gcm_prefs_profile_add_cb), prefs);
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "toolbutton_profile_remove"));
- g_signal_connect (widget, "clicked",
+ g_signal_connect (prefs->toolbutton_profile_remove, "clicked",
G_CALLBACK (gcm_prefs_profile_remove_cb), prefs);
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "toolbutton_profile_view"));
- g_signal_connect (widget, "clicked",
+ g_signal_connect (prefs->toolbutton_profile_view, "clicked",
G_CALLBACK (gcm_prefs_profile_view_cb), prefs);
/* href */
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "label_assign_warning"));
- g_signal_connect (widget, "activate-link",
+ g_signal_connect (prefs->label_assign_warning, "activate-link",
G_CALLBACK (gcm_prefs_profile_assign_link_activate_cb), prefs);
/* add columns to profile tree view */
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "treeview_assign"));
- gcm_prefs_add_profiles_columns (prefs, GTK_TREE_VIEW (widget));
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget));
+ gcm_prefs_add_profiles_columns (prefs, GTK_TREE_VIEW (prefs->treeview_assign));
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (prefs->treeview_assign));
g_signal_connect (selection, "changed",
G_CALLBACK (gcm_prefs_profiles_treeview_clicked_cb),
prefs);
- g_signal_connect (GTK_TREE_VIEW (widget), "row-activated",
+ g_signal_connect (GTK_TREE_VIEW (prefs->treeview_assign), "row-activated",
G_CALLBACK (gcm_prefs_profiles_row_activated_cb),
prefs);
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "toolbutton_device_default"));
- g_signal_connect (widget, "clicked",
+ g_signal_connect (prefs->toolbutton_device_default, "clicked",
G_CALLBACK (gcm_prefs_default_cb), prefs);
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "toolbutton_device_enable"));
- g_signal_connect (widget, "clicked",
+ g_signal_connect (prefs->toolbutton_device_enable, "clicked",
G_CALLBACK (gcm_prefs_device_profile_enable_cb), prefs);
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "toolbutton_device_calibrate"));
- g_signal_connect (widget, "clicked",
+ g_signal_connect (prefs->toolbutton_device_calibrate, "clicked",
G_CALLBACK (gcm_prefs_calibrate_cb), prefs);
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "toolbar_devices"));
- context = gtk_widget_get_style_context (widget);
+ context = gtk_widget_get_style_context (prefs->toolbar_devices);
gtk_style_context_add_class (context, GTK_STYLE_CLASS_INLINE_TOOLBAR);
gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP);
/* set up assign dialog */
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "dialog_assign"));
- g_signal_connect (widget, "delete-event",
+ g_signal_connect (prefs->dialog_assign, "delete-event",
G_CALLBACK (gcm_prefs_profile_delete_event_cb), prefs);
- prefs->dialog_assign = widget;
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "button_assign_cancel"));
- g_signal_connect (widget, "clicked",
+ g_signal_connect (prefs->button_assign_cancel, "clicked",
G_CALLBACK (gcm_prefs_button_assign_cancel_cb), prefs);
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "button_assign_ok"));
- g_signal_connect (widget, "clicked",
+ g_signal_connect (prefs->button_assign_ok, "clicked",
G_CALLBACK (gcm_prefs_button_assign_ok_cb), prefs);
/* setup icc profiles list */
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "button_assign_import"));
- g_signal_connect (widget, "clicked",
+ g_signal_connect (prefs->button_assign_import, "clicked",
G_CALLBACK (gcm_prefs_button_assign_import_cb), prefs);
/* setup the calibration helper */
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "assistant_calib"));
- g_signal_connect (widget, "delete-event",
+ g_signal_connect (prefs->assistant_calib, "delete-event",
G_CALLBACK (gcm_prefs_calib_delete_event_cb),
prefs);
- g_signal_connect (widget, "apply",
+ g_signal_connect (prefs->assistant_calib, "apply",
G_CALLBACK (gcm_prefs_calib_apply_cb),
prefs);
- g_signal_connect (widget, "cancel",
+ g_signal_connect (prefs->assistant_calib, "cancel",
G_CALLBACK (gcm_prefs_calib_cancel_cb),
prefs);
- g_signal_connect (widget, "close",
+ g_signal_connect (prefs->assistant_calib, "close",
G_CALLBACK (gcm_prefs_calib_cancel_cb),
prefs);
- g_signal_connect (widget, "prepare",
+ g_signal_connect (prefs->assistant_calib, "prepare",
G_CALLBACK (gcm_prefs_calib_prepare_cb),
prefs);
- prefs->assistant_calib = widget;
/* setup the calibration helper ::TreeView */
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "treeview_calib_quality"));
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget));
- model = gtk_tree_view_get_model (GTK_TREE_VIEW (widget));
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (prefs->treeview_calib_quality));
+ model = gtk_tree_view_get_model (GTK_TREE_VIEW (prefs->treeview_calib_quality));
gtk_tree_model_foreach (model,
cc_color_panel_treeview_quality_default_cb,
selection);
@@ -2257,7 +2190,7 @@ cc_color_panel_init (CcColorPanel *prefs)
gtk_tree_view_column_add_attribute (column, renderer,
"markup", COLUMN_CALIB_QUALITY_DESCRIPTION);
gtk_tree_view_column_set_expand (column, TRUE);
- gtk_tree_view_append_column (GTK_TREE_VIEW (widget),
+ gtk_tree_view_append_column (GTK_TREE_VIEW (prefs->treeview_calib_quality),
GTK_TREE_VIEW_COLUMN (column));
column = gtk_tree_view_column_new ();
renderer = cc_color_cell_renderer_text_new ();
@@ -2270,12 +2203,10 @@ cc_color_panel_init (CcColorPanel *prefs)
gtk_tree_view_column_add_attribute (column, renderer,
"markup", COLUMN_CALIB_QUALITY_APPROX_TIME);
gtk_tree_view_column_set_expand (column, FALSE);
- gtk_tree_view_append_column (GTK_TREE_VIEW (widget),
+ gtk_tree_view_append_column (GTK_TREE_VIEW (prefs->treeview_calib_quality),
GTK_TREE_VIEW_COLUMN (column));
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "treeview_calib_sensor"));
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget));
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (prefs->treeview_calib_sensor));
g_signal_connect (selection, "changed",
G_CALLBACK (gcm_prefs_calib_sensor_treeview_clicked_cb),
prefs);
@@ -2289,12 +2220,10 @@ cc_color_panel_init (CcColorPanel *prefs)
gtk_tree_view_column_add_attribute (column, renderer,
"markup", COLUMN_CALIB_SENSOR_DESCRIPTION);
gtk_tree_view_column_set_expand (column, TRUE);
- gtk_tree_view_append_column (GTK_TREE_VIEW (widget),
+ gtk_tree_view_append_column (GTK_TREE_VIEW (prefs->treeview_calib_sensor),
GTK_TREE_VIEW_COLUMN (column));
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "treeview_calib_kind"));
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget));
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (prefs->treeview_calib_kind));
g_signal_connect (selection, "changed",
G_CALLBACK (gcm_prefs_calib_kind_treeview_clicked_cb),
prefs);
@@ -2307,19 +2236,17 @@ cc_color_panel_init (CcColorPanel *prefs)
gtk_tree_view_column_pack_start (column, renderer, TRUE);
gtk_tree_view_column_add_attribute (column, renderer,
"markup", COLUMN_CALIB_KIND_DESCRIPTION);
- model = gtk_tree_view_get_model (GTK_TREE_VIEW (widget));
+ model = gtk_tree_view_get_model (GTK_TREE_VIEW (prefs->treeview_calib_kind));
model_filter = gtk_tree_model_filter_new (model, NULL);
- gtk_tree_view_set_model (GTK_TREE_VIEW (widget), model_filter);
+ gtk_tree_view_set_model (GTK_TREE_VIEW (prefs->treeview_calib_kind), model_filter);
gtk_tree_model_filter_set_visible_column (GTK_TREE_MODEL_FILTER (model_filter),
COLUMN_CALIB_KIND_VISIBLE);
gtk_tree_view_column_set_expand (column, TRUE);
- gtk_tree_view_append_column (GTK_TREE_VIEW (widget),
+ gtk_tree_view_append_column (GTK_TREE_VIEW (prefs->treeview_calib_kind),
GTK_TREE_VIEW_COLUMN (column));
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "treeview_calib_temp"));
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget));
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (prefs->treeview_calib_temp));
g_signal_connect (selection, "changed",
G_CALLBACK (gcm_prefs_calib_temp_treeview_clicked_cb),
prefs);
@@ -2333,11 +2260,9 @@ cc_color_panel_init (CcColorPanel *prefs)
gtk_tree_view_column_add_attribute (column, renderer,
"markup", COLUMN_CALIB_TEMP_DESCRIPTION);
gtk_tree_view_column_set_expand (column, TRUE);
- gtk_tree_view_append_column (GTK_TREE_VIEW (widget),
+ gtk_tree_view_append_column (GTK_TREE_VIEW (prefs->treeview_calib_temp),
GTK_TREE_VIEW_COLUMN (column));
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "entry_calib_title"));
- g_signal_connect (widget, "notify::text",
+ g_signal_connect (prefs->entry_calib_title, "notify::text",
G_CALLBACK (gcm_prefs_title_entry_changed_cb), prefs);
/* use a device client array */
@@ -2373,8 +2298,7 @@ cc_color_panel_init (CcColorPanel *prefs)
prefs);
prefs->list_box_size = gtk_size_group_new (GTK_SIZE_GROUP_VERTICAL);
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder, "frame_devices"));
- gtk_container_add (GTK_CONTAINER (widget), GTK_WIDGET (prefs->list_box));
+ gtk_container_add (GTK_CONTAINER (prefs->frame_devices), GTK_WIDGET (prefs->list_box));
gtk_widget_show (GTK_WIDGET (prefs->list_box));
/* connect to colord */
@@ -2396,26 +2320,15 @@ cc_color_panel_init (CcColorPanel *prefs)
/* show the confirmation export page if we are running from a LiveCD */
prefs->is_live_cd = gcm_prefs_is_livecd ();
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "box_calib_summary"));
- gtk_widget_set_visible (widget, prefs->is_live_cd);
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "button_calib_export"));
- g_signal_connect (widget, "clicked",
+ gtk_widget_set_visible (prefs->box_calib_summary, prefs->is_live_cd);
+ g_signal_connect (prefs->button_calib_export, "clicked",
G_CALLBACK (gcm_prefs_calib_export_cb), prefs);
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "button_calib_upload"));
- g_signal_connect (widget, "clicked",
+ g_signal_connect (prefs->button_calib_upload, "clicked",
G_CALLBACK (gcm_prefs_calib_upload_cb), prefs);
- widget = GTK_WIDGET (gtk_builder_get_object (prefs->builder,
- "label_calib_summary_message"));
- g_signal_connect (widget, "activate-link",
+ g_signal_connect (prefs->label_calib_summary_message, "activate-link",
G_CALLBACK (gcm_prefs_calib_export_link_cb), prefs);
-
- widget = WID (prefs->builder, "dialog-vbox1");
- gtk_container_add (GTK_CONTAINER (prefs), widget);
- g_signal_connect (widget, "realize",
+ g_signal_connect (prefs, "realize",
G_CALLBACK (gcm_prefs_window_realize_cb),
prefs);
}
diff --git a/panels/color/color.ui b/panels/color/color.ui
index 27b409865..5798d7c05 100644
--- a/panels/color/color.ui
+++ b/panels/color/color.ui
@@ -754,273 +754,279 @@
<action-widget response="0">button_assign_ok</action-widget>
</action-widgets>
</object>
- <object class="GtkScrolledWindow" id="dialog-vbox1">
+ <template class="CcColorPanel" parent="CcPanel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
- <object class="GtkBox">
+ <object class="GtkScrolledWindow" id="dialog_scroll">
<property name="visible">True</property>
<property name="can_focus">False</property>
-
- <!-- Stub boxes to make the content cover 1/3 of the screen -->
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="hexpand">True</property>
- </object>
- </child>
- <child>
- <object class="GtkBox">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- </object>
- <packing>
- <property name="pack_type">end</property>
- </packing>
- </child>
+ <!-- Stub boxes to make the content cover 1/3 of the screen -->
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ </object>
+ </child>
- <!-- Content -->
- <child>
- <object class="GtkBox">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="spacing">12</property>
- <property name="margin_top">32</property>
- <property name="margin_bottom">32</property>
- <property name="margin_left">24</property>
- <property name="margin_right">24</property>
- <property name="hexpand">True</property>
<child>
- <object class="GtkBox" id="hbox3">
+ <object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">9</property>
- <child>
- <object class="GtkLabel" id="label_intro">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Each device needs an up to date color profile to be color managed.</property>
- <property name="wrap">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label_padding">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLinkButton" id="linkbutton_help">
- <property name="label" translatable="yes">Learn more</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip_text" translatable="yes">Learn more about color management</property>
- <property name="relief">none</property>
- <property name="xalign">0.50999999046325684</property>
- <property name="uri">help:gnome-help/color-whyimportant</property>
- <accessibility>
- <relation type="labelled-by" target="label_intro"/>
- </accessibility>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
+ <property name="hexpand">True</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
+ <property name="pack_type">end</property>
</packing>
</child>
+
+ <!-- Content -->
<child>
- <object class="GtkBox" id="vbox3">
+ <object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
+ <property name="spacing">12</property>
+ <property name="margin_top">32</property>
+ <property name="margin_bottom">32</property>
+ <property name="margin_left">24</property>
+ <property name="margin_right">24</property>
+ <property name="hexpand">True</property>
<child>
- <object class="GtkFrame" id="frame_devices">
+ <object class="GtkBox" id="hbox3">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="shadow_type">in</property>
- </object>
- </child>
- <child>
- <object class="GtkToolbar" id="toolbar_devices">
- <property name="can_focus">True</property>
- <property name="show_arrow">False</property>
- <property name="icon_size">1</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">9</property>
<child>
- <object class="GtkToolItem" id="left_button_group">
+ <object class="GtkLabel" id="label_intro">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <child>
- <object class="GtkBox" id="left_button_group_box">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <object class="GtkButton" id="toolbutton_device_default">
- <property name="label" translatable="yes">_Set for all users</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip_text" translatable="yes">Set this profile for all users on this computer</property>
- <property name="use_underline">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="toolbutton_device_enable">
- <property name="label" translatable="yes">_Enable</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip_markup" translatable="yes">Set this profile for all users on this computer</property>
- <property name="tooltip_text" translatable="yes">Set this profile for all users on this computer</property>
- <property name="use_underline">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
- </child>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Each device needs an up to date color profile to be color managed.</property>
+ <property name="wrap">True</property>
</object>
<packing>
- <property name="expand">True</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkToolItem" id="right_button_group">
+ <object class="GtkLabel" id="label_padding">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLinkButton" id="linkbutton_help">
+ <property name="label" translatable="yes">Learn more</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip_text" translatable="yes">Learn more about color management</property>
+ <property name="relief">none</property>
+ <property name="xalign">0.50999999046325684</property>
+ <property name="uri">help:gnome-help/color-whyimportant</property>
+ <accessibility>
+ <relation type="labelled-by" target="label_intro"/>
+ </accessibility>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="box_devices">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkFrame" id="frame_devices">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="shadow_type">in</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkToolbar" id="toolbar_devices">
+ <property name="can_focus">True</property>
+ <property name="show_arrow">False</property>
+ <property name="icon_size">1</property>
<child>
- <object class="GtkBox" id="right_button_group_box">
+ <object class="GtkToolItem" id="left_button_group">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
- <object class="GtkButton" id="toolbutton_profile_add">
- <property name="label" translatable="yes">_Add profile</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <object class="GtkBox" id="left_button_group_box">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkButton" id="toolbutton_device_default">
+ <property name="label" translatable="yes">_Set for all users</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip_text" translatable="yes">Set this profile for all users on this computer</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="toolbutton_device_enable">
+ <property name="label" translatable="yes">_Enable</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip_markup" translatable="yes">Set this profile for all users on this computer</property>
+ <property name="tooltip_text" translatable="yes">Set this profile for all users on this computer</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="toolbutton_device_calibrate">
- <property name="label" translatable="yes">_Calibrate…</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip_text" translatable="yes">Calibrate the device</property>
- <property name="use_underline">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="toolbutton_profile_remove">
- <property name="label" translatable="yes">_Remove profile</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
</child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolItem" id="right_button_group">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
<child>
- <object class="GtkButton" id="toolbutton_profile_view">
- <property name="label" translatable="yes">_View details</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <object class="GtkBox" id="right_button_group_box">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkButton" id="toolbutton_profile_add">
+ <property name="label" translatable="yes">_Add profile</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="toolbutton_device_calibrate">
+ <property name="label" translatable="yes">_Calibrate…</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip_text" translatable="yes">Calibrate the device</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="toolbutton_profile_remove">
+ <property name="label" translatable="yes">_Remove profile</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="toolbutton_profile_view">
+ <property name="label" translatable="yes">_View details</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">3</property>
- </packing>
</child>
</object>
+ <packing>
+ <property name="expand">False</property>
+ </packing>
</child>
</object>
<packing>
<property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
</packing>
</child>
</object>
<packing>
- <property name="expand">False</property>
+ <property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
+ <child>
+ <object class="GtkLabel" id="label_no_devices">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Unable to detect any devices that can be color managed</property>
+ <style>
+ <class name="dim-label"/>
+ </style>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
</object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label_no_devices">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">Unable to detect any devices that can be color managed</property>
- <style>
- <class name="dim-label"/>
- </style>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
</child>
</object>
</child>
</object>
</child>
- </object>
+ </template>
<object class="GtkListStore" id="liststore_assign">
<columns>
<!-- column-name title -->