[Xfce4-commits] [xfce/xfce4-settings] 49/57: color: Add info button to show profile details
noreply at xfce.org
noreply at xfce.org
Thu Mar 21 22:14:37 CET 2019
This is an automated email from the git hooks/post-receive script.
o c h o s i p u s h e d a c o m m i t t o b r a n c h m a s t e r
in repository xfce/xfce4-settings.
commit 2eaf6b24cafd57f628761d089bcf1d201f5643ed
Author: Simon Steinbeiss <simon.steinbeiss at elfenbeinturm.at>
Date: Mon Feb 25 22:58:04 2019 +0100
color: Add info button to show profile details
This is based on gnome-color-manager's gcm-viewer.
---
dialogs/color-settings/color-dialog.glade | 46 +++++++++++++++++++--------
dialogs/color-settings/color-profile.c | 7 ----
dialogs/color-settings/main.c | 53 +++++++++++++++++++++++++++++++
3 files changed, 85 insertions(+), 21 deletions(-)
diff --git a/dialogs/color-settings/color-dialog.glade b/dialogs/color-settings/color-dialog.glade
index be94821..4535d3b 100644
--- a/dialogs/color-settings/color-dialog.glade
+++ b/dialogs/color-settings/color-dialog.glade
@@ -16,13 +16,23 @@
<property name="icon_name">list-remove-symbolic</property>
<property name="use_fallback">True</property>
</object>
+ <object class="GtkImage" id="image3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="icon_name">folder-open-symbolic</property>
+ </object>
+ <object class="GtkImage" id="image4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="icon_name">dialog-information-symbolic</property>
+ </object>
<object class="XfceTitledDialog" id="dialog">
<property name="can_focus">False</property>
<property name="title" translatable="yes">Color Profiles</property>
<property name="window_position">center-on-parent</property>
<property name="default_width">700</property>
<property name="default_height">400</property>
- <property name="icon_name">preferences-color-symbolic</property>
+ <property name="icon_name">preferences-color</property>
<property name="type_hint">dialog</property>
<property name="subtitle" translatable="yes">Configure color profiles for your devices</property>
<child internal-child="vbox">
@@ -37,8 +47,8 @@
<property name="can_focus">False</property>
<property name="layout_style">end</property>
<child>
- <object class="GtkButton" id="button2">
- <property name="label">gtk-close</property>
+ <object class="GtkButton" id="button1">
+ <property name="label">gtk-help</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
@@ -48,11 +58,12 @@
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
+ <property name="secondary">True</property>
</packing>
</child>
<child>
- <object class="GtkButton" id="button1">
- <property name="label">gtk-help</property>
+ <object class="GtkButton" id="button2">
+ <property name="label">gtk-close</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
@@ -62,7 +73,6 @@
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
- <property name="secondary">True</property>
</packing>
</child>
</object>
@@ -154,7 +164,7 @@
<property name="can_focus">False</property>
<property name="margin_left">24</property>
<property name="margin_right">24</property>
- <property name="margin_top">24</property>
+ <property name="margin_top">18</property>
<property name="margin_bottom">24</property>
<property name="orientation">vertical</property>
<child>
@@ -350,6 +360,19 @@
<property name="position">1</property>
</packing>
</child>
+ <child>
+ <object class="GtkButton" id="profiles-info">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="image">image4</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>
@@ -425,15 +448,10 @@
</object>
</child>
<action-widgets>
- <action-widget response="0">button2</action-widget>
<action-widget response="-11">button1</action-widget>
+ <action-widget response="0">button2</action-widget>
</action-widgets>
</object>
- <object class="GtkImage" id="image3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="icon_name">folder-open-symbolic</property>
- </object>
<object class="GtkListStore" id="liststore-assign">
<columns>
<!-- column-name title -->
@@ -452,7 +470,7 @@
<property name="modal">True</property>
<property name="default_width">350</property>
<property name="default_height">500</property>
- <property name="icon_name">preferences-color-symbolic</property>
+ <property name="icon_name">preferences-color</property>
<property name="type_hint">dialog</property>
<property name="transient_for">dialog</property>
<child>
diff --git a/dialogs/color-settings/color-profile.c b/dialogs/color-settings/color-profile.c
index 83a3fd5..b66418b 100644
--- a/dialogs/color-settings/color-profile.c
+++ b/dialogs/color-settings/color-profile.c
@@ -36,7 +36,6 @@ struct _ColorProfile
gboolean is_default;
GtkWidget *widget_description;
GtkWidget *widget_image;
- GtkWidget *widget_info;
guint device_changed_id;
guint profile_changed_id;
};
@@ -361,12 +360,6 @@ color_profile_init (ColorProfile *color_profile)
gtk_box_pack_start (GTK_BOX (box), color_profile->widget_description, TRUE, TRUE, 0);
gtk_widget_show (color_profile->widget_description);
- /* profile warnings/info */
- color_profile->widget_info = gtk_image_new_from_icon_name ("dialog-information-symbolic", GTK_ICON_SIZE_MENU);
- gtk_widget_set_margin_start (color_profile->widget_info, IMAGE_WIDGET_PADDING);
- gtk_widget_set_margin_end (color_profile->widget_info, IMAGE_WIDGET_PADDING);
- gtk_box_pack_start (GTK_BOX (box), color_profile->widget_info, FALSE, FALSE, 0);
-
/* refresh */
gtk_container_add (GTK_CONTAINER (color_profile), box);
gtk_widget_set_visible (box, TRUE);
diff --git a/dialogs/color-settings/main.c b/dialogs/color-settings/main.c
index cec310a..c5a3339 100644
--- a/dialogs/color-settings/main.c
+++ b/dialogs/color-settings/main.c
@@ -77,6 +77,7 @@ struct _ColorSettings
GObject *profiles_enable;
GObject *profiles_add;
GObject *profiles_remove;
+ GObject *profiles_info;
GtkListBox *profiles_list_box;
gchar *profiles_list_box_filter;
guint profiles_list_box_selected_id;
@@ -574,6 +575,45 @@ color_settings_profile_remove_cb (GtkWidget *widget, ColorSettings *settings)
static void
+color_settings_profile_info_view (CdProfile *profile)
+{
+ gboolean ret;
+ GError **error = NULL;
+ gchar *cli;
+
+ /* open up gcm-viewer */
+ argv = g_ptr_array_new_with_free_func (g_free);
+ cli = g_strdup_printf ("gcm-viewer --profile %s", cd_profile_get_id (profile));
+ ret = g_spawn_command_line_async (cli, error);
+ if (!ret)
+ g_warning ("failed to run gcm-viewer: %s", error->message);
+
+ g_free (cli);
+}
+
+
+
+static void
+color_settings_profile_info_cb (GtkWidget *widget, ColorSettings *settings)
+{
+ CdProfile *profile;
+ GtkListBoxRow *row;
+
+ /* get the selected profile */
+ row = gtk_list_box_get_selected_row (settings->profiles_list_box);
+ if (row == NULL)
+ return;
+ profile = color_profile_get_profile (SETTINGS_COLOR_PROFILE (row));
+ if (profile == NULL) {
+ g_warning ("failed to get the active profile");
+ return;
+ }
+ color_settings_profile_info_view (profile);
+}
+
+
+
+static void
color_settings_make_profile_default_cb (GObject *object,
GAsyncResult *res,
ColorSettings *settings)
@@ -621,6 +661,8 @@ color_settings_device_profile_enable_cb (GtkWidget *widget, ColorSettings *setti
settings);
}
+
+
static void
color_settings_add_device_profile (ColorSettings *settings,
CdDevice *device,
@@ -717,6 +759,7 @@ color_settings_list_box_row_activated_cb (GtkListBox *list_box,
color_settings_device_changed_cb (settings->current_device, settings);
gtk_widget_set_sensitive (GTK_WIDGET (settings->profiles_add), TRUE);
gtk_widget_set_sensitive (GTK_WIDGET (settings->profiles_remove), FALSE);
+ gtk_widget_set_sensitive (GTK_WIDGET (settings->profiles_info), FALSE);
gtk_widget_set_sensitive (GTK_WIDGET (settings->profiles_enable), FALSE);
}
else
@@ -724,6 +767,7 @@ color_settings_list_box_row_activated_cb (GtkListBox *list_box,
gtk_widget_show (GTK_WIDGET (settings->label_no_profiles));
gtk_widget_set_sensitive (GTK_WIDGET (settings->profiles_add), FALSE);
gtk_widget_set_sensitive (GTK_WIDGET (settings->profiles_remove), FALSE);
+ gtk_widget_set_sensitive (GTK_WIDGET (settings->profiles_info), FALSE);
gtk_widget_set_sensitive (GTK_WIDGET (settings->profiles_enable), FALSE);
gtk_widget_hide (GTK_WIDGET (settings->scrolled_profiles));
}
@@ -742,6 +786,7 @@ color_settings_device_enabled_changed_cb (ColorDevice *widget,
gtk_widget_set_visible (GTK_WIDGET (settings->scrolled_profiles), is_enabled);
gtk_widget_set_sensitive (GTK_WIDGET (settings->profiles_add), is_enabled);
gtk_widget_set_sensitive (GTK_WIDGET (settings->profiles_remove), is_enabled);
+ gtk_widget_set_sensitive (GTK_WIDGET (settings->profiles_info), is_enabled);
gtk_widget_set_sensitive (GTK_WIDGET (settings->profiles_enable), is_enabled);
}
@@ -753,6 +798,7 @@ color_settings_profiles_list_box_row_selected_cb (GtkListBox *list_box,
ColorSettings *settings)
{
gtk_widget_set_sensitive (GTK_WIDGET (settings->profiles_remove), TRUE);
+ gtk_widget_set_sensitive (GTK_WIDGET (settings->profiles_info), TRUE);
gtk_widget_set_sensitive (GTK_WIDGET (settings->profiles_enable), TRUE);
}
@@ -1148,6 +1194,13 @@ color_settings_dialog_init (GtkBuilder *builder)
gtk_widget_set_sensitive (GTK_WIDGET (settings->profiles_remove), FALSE);
g_signal_connect (settings->profiles_remove, "clicked", G_CALLBACK (color_settings_profile_remove_cb), settings);
+ settings->profiles_info = gtk_builder_get_object (builder, "profiles-info");
+ /* Conditionally show/hide the info button, based on the availability of gnome-color-manager */
+ if (g_find_program_in_path ("gcm-viewer") == NULL)
+ gtk_widget_hide (GTK_WIDGET (settings->profiles_info));
+ gtk_widget_set_sensitive (GTK_WIDGET (settings->profiles_info), FALSE);
+ g_signal_connect (settings->profiles_info, "clicked", G_CALLBACK (color_settings_profile_info_cb), settings);
+
settings->profiles_enable = gtk_builder_get_object (builder, "profiles-enable");
gtk_widget_set_sensitive (GTK_WIDGET (settings->profiles_enable), FALSE);
g_signal_connect (settings->profiles_enable, "clicked", G_CALLBACK (color_settings_device_profile_enable_cb), settings);
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list