[Xfce4-commits] [xfce/xfce4-settings] 64/67: display: Add invisible profile hash column
noreply at xfce.org
noreply at xfce.org
Sat Sep 22 11:23:55 CEST 2018
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 2a23ab288547cd3de3f65157a13eefb187911eaf
Author: Simon Steinbeiss <simon.steinbeiss at elfenbeinturm.at>
Date: Sun Sep 9 21:09:22 2018 +0200
display: Add invisible profile hash column
This means we can avoid re-computing the hash all the time.
---
dialogs/display-settings/main.c | 40 ++++++++++++++++++++--------------------
1 file changed, 20 insertions(+), 20 deletions(-)
diff --git a/dialogs/display-settings/main.c b/dialogs/display-settings/main.c
index cc49a39..845ab88 100644
--- a/dialogs/display-settings/main.c
+++ b/dialogs/display-settings/main.c
@@ -1331,7 +1331,7 @@ display_settings_minimal_profile_populate (GtkBuilder *builder)
profile_radio = gtk_radio_button_new_from_widget (GTK_RADIO_BUTTON (profile_display1));
gtk_container_add (GTK_CONTAINER (profile_radio), image);
- g_object_set_data (G_OBJECT (profile_radio), "profile", profile_name);
+ g_object_set_data (G_OBJECT (profile_radio), "profile", (gchar *)current->data);
gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (profile_radio), FALSE);
gtk_widget_set_size_request (GTK_WIDGET (profile_radio), 128, 128);
@@ -1358,19 +1358,27 @@ display_settings_profile_list_init (GtkBuilder *builder)
GtkCellRenderer *renderer;
GtkTreeViewColumn *column;
- store = gtk_list_store_new (1,
+ store = gtk_list_store_new (2,
+ G_TYPE_STRING,
G_TYPE_STRING);
treeview = gtk_builder_get_object (builder, "randr-profile");
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (treeview), FALSE);
gtk_tree_view_set_model (GTK_TREE_VIEW (treeview), GTK_TREE_MODEL (store));
+ /* Setup Profile name column */
column = gtk_tree_view_column_new ();
- /* Setup renderer */
renderer = gtk_cell_renderer_text_new ();
gtk_tree_view_column_pack_start (column, renderer, TRUE);
gtk_tree_view_column_set_attributes (column, renderer, "text", COLUMN_COMBO_NAME, NULL);
g_object_set (G_OBJECT (renderer), "ellipsize", PANGO_ELLIPSIZE_END, NULL);
gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
+ /* Setup Profile hash column */
+ column = gtk_tree_view_column_new ();
+ renderer = gtk_cell_renderer_text_new ();
+ gtk_tree_view_column_pack_start (column, renderer, TRUE);
+ gtk_tree_view_column_set_attributes (column, renderer, "text", COLUMN_COMBO_VALUE, NULL);
+ gtk_tree_view_column_set_visible (column, FALSE);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
g_object_unref (G_OBJECT (store));
}
@@ -1385,7 +1393,8 @@ display_settings_profile_list_populate (GtkBuilder *builder)
GList *current;
/* create a new list store */
- store = gtk_list_store_new (1,
+ store = gtk_list_store_new (2,
+ G_TYPE_STRING,
G_TYPE_STRING);
/* set up the new combobox which will replace the above combobox */
@@ -1408,6 +1417,7 @@ display_settings_profile_list_populate (GtkBuilder *builder)
gtk_list_store_append (store, &iter);
gtk_list_store_set (store, &iter,
0, profile_name,
+ 1, (gchar *)current->data,
-1);
current = g_list_next(current);
@@ -1554,11 +1564,9 @@ display_settings_profile_changed (GtkTreeSelection *selection, GtkBuilder *build
static void
display_settings_minimal_profile_apply (GtkToggleButton *widget, GtkBuilder *builder)
{
- gchar *profile;
gchar *profile_hash;
- profile = (gchar *) g_object_get_data (G_OBJECT (widget), "profile");
- profile_hash = g_compute_checksum_for_string (G_CHECKSUM_SHA1, profile, strlen(profile));
+ profile_hash = (gchar *) g_object_get_data (G_OBJECT (widget), "profile");
xfce_randr_apply (xfce_randr, profile_hash, display_channel);
}
@@ -1580,12 +1588,10 @@ display_settings_profile_save (GtkWidget *widget, GtkBuilder *builder)
gchar *profile_hash;
gchar *profile_name;
- /* make sure the profile name can be saved as xfconf property name, so hash it */
- gtk_tree_model_get (model, &iter, COLUMN_COMBO_NAME, &profile_name, -1);
- profile_hash = g_compute_checksum_for_string (G_CHECKSUM_SHA1, profile_name, strlen(profile_name));
+ gtk_tree_model_get (model, &iter, COLUMN_COMBO_NAME, &profile_name, COLUMN_COMBO_VALUE, &profile_hash, -1);
property = g_strdup_printf ("/%s", profile_hash);
- for (i=0; i < xfce_randr->noutput; i++)
+ for (i = 0; i < xfce_randr->noutput; i++)
xfce_randr_save_output (xfce_randr, profile_hash, display_channel, i);
/* save the human-readable name of the profile as string value */
@@ -1689,11 +1695,8 @@ display_settings_profile_apply (GtkWidget *widget, GtkBuilder *builder)
if (gtk_tree_selection_get_selected (selection, &model, &iter))
{
gchar *profile_hash;
- gchar *profile_name;
-
- gtk_tree_model_get (model, &iter, COLUMN_COMBO_NAME, &profile_name, -1);
- profile_hash = g_compute_checksum_for_string (G_CHECKSUM_SHA1, profile_name, strlen(profile_name));
+ gtk_tree_model_get (model, &iter, COLUMN_COMBO_VALUE, &profile_hash, -1);
xfce_randr_apply (xfce_randr, profile_hash, display_channel);
if (!display_setting_timed_confirmation (builder))
@@ -1704,7 +1707,6 @@ display_settings_profile_apply (GtkWidget *widget, GtkBuilder *builder)
}
g_free (profile_hash);
- g_free (profile_name);
}
}
@@ -1722,10 +1724,11 @@ display_settings_profile_delete (GtkWidget *widget, GtkBuilder *builder)
if (gtk_tree_selection_get_selected (selection, &model, &iter))
{
gchar *profile_name;
+ gchar *profile_hash;
gint response;
gchar *secondary_message;
- gtk_tree_model_get (model, &iter, COLUMN_COMBO_NAME, &profile_name, -1);
+ gtk_tree_model_get (model, &iter, COLUMN_COMBO_NAME, &profile_name, COLUMN_COMBO_VALUE, &profile_hash, -1);
secondary_message = g_strdup_printf (_("Do you really want to delete the profile '%s'?"), profile_name);
response = xfce_message_dialog (NULL, _("Question"),
@@ -1741,9 +1744,7 @@ display_settings_profile_delete (GtkWidget *widget, GtkBuilder *builder)
if (response == GTK_RESPONSE_YES)
{
GString *property;
- gchar *profile_hash;
- profile_hash = g_compute_checksum_for_string (G_CHECKSUM_SHA1, profile_name, strlen (profile_name));
property = g_string_new (profile_hash);
g_string_prepend_c (property, '/');
@@ -3475,7 +3476,6 @@ display_settings_show_minimal_dialog (GdkDisplay *display)
/* Create the profile radiobuttons */
display_settings_minimal_profile_populate (builder);
-
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fake_button), TRUE);
label = gtk_builder_get_object (builder, "label1");
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list