[Xfce4-commits] [xfce/xfce4-settings] 22/67: display: Auto-activate if there is only one matching profile
noreply at xfce.org
noreply at xfce.org
Sat Sep 22 11:23:13 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 def633a8ed9c17550d1030209a7db053f2588557
Author: Simon Steinbeiss <simon.steinbeiss at elfenbeinturm.at>
Date: Thu Aug 16 00:24:25 2018 +0200
display: Auto-activate if there is only one matching profile
---
dialogs/display-settings/main.c | 40 ++++++++++++++++++++--
.../display-settings/minimal-display-dialog.glade | 2 +-
2 files changed, 39 insertions(+), 3 deletions(-)
diff --git a/dialogs/display-settings/main.c b/dialogs/display-settings/main.c
index 4948db3..62db06c 100644
--- a/dialogs/display-settings/main.c
+++ b/dialogs/display-settings/main.c
@@ -150,6 +150,7 @@ GList *current_outputs = NULL;
GtkWidget *randr_outputs_combobox = NULL;
GtkWidget *apply_button = NULL;
+/* Profile buttons */
GtkWidget *profile_save_button = NULL;
GtkWidget *profile_delete_button = NULL;
GtkWidget *profile_apply_button = NULL;
@@ -172,6 +173,9 @@ static void display_setting_primary_toggled (GtkToggleButton *b
static void display_setting_mirror_displays_populate (GtkBuilder *builder);
+static void display_settings_profile_apply (GtkWidget *widget,
+ GtkBuilder *builder);
+
static void
display_settings_changed (void)
{
@@ -1324,6 +1328,10 @@ display_settings_profile_combobox_populate (GtkBuilder *builder)
m++;
}
+ /* If there is only one profile we auto-select and activate it */
+ if (m == 1)
+ gtk_combo_box_set_active_iter (GTK_COMBO_BOX (combobox), &iter);
+
/* Release the store */
g_list_free (profiles);
g_object_unref (G_OBJECT (store));
@@ -1490,16 +1498,43 @@ display_settings_profile_changed (GtkWidget *widget, GtkBuilder *builder)
{
GtkWidget *entry = gtk_bin_get_child ((GtkBin*) gtk_builder_get_object (builder, "randr-profile"));
gboolean sensitive = gtk_entry_get_text_length (GTK_ENTRY (entry));
+ GtkTreeIter iter;
gtk_widget_set_sensitive (profile_save_button, sensitive);
gtk_widget_set_sensitive (profile_delete_button, sensitive);
gtk_widget_set_sensitive (profile_apply_button, sensitive);
+
+ if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter))
+ {
+ display_settings_profile_apply (widget, builder);
+ }
+}
+
+static void
+display_settings_minimal_profile_apply (GtkComboBox *combobox, GtkBuilder *builder)
+{
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ GValue *value;
+ const gchar *profile;
+ gchar *profile_hash;
+
+ if (gtk_combo_box_get_active_iter (combobox, &iter))
+ {
+ model = gtk_combo_box_get_model (combobox);
+ gtk_tree_model_get_value (model, &iter, 0, value);
+ profile = g_value_get_string (value);
+ profile_hash = g_compute_checksum_for_string (G_CHECKSUM_SHA1, profile, strlen(profile));
+ g_warning ("this is the value: %s / %s", profile, profile_hash);
+ xfce_randr_apply (xfce_randr, profile_hash, display_channel);
+ }
+ g_value_unset (value);
}
static void
display_settings_profile_apply (GtkWidget *widget, GtkBuilder *builder)
{
- GtkWidget *entry = gtk_bin_get_child ((GtkBin*) gtk_builder_get_object (builder, "randr-profile"));
+ GtkWidget *entry = gtk_bin_get_child (GTK_BIN (widget));
if (gtk_entry_get_text_length (GTK_ENTRY (entry)))
{
@@ -3345,7 +3380,6 @@ display_settings_show_minimal_dialog (GdkDisplay *display)
/* Populate the combobox */
display_settings_combobox_populate (builder);
display_settings_profile_combobox_populate (builder);
- g_signal_connect (G_OBJECT (auto_button), "changed", G_CALLBACK (display_settings_profile_apply), builder);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fake_button), TRUE);
@@ -3440,6 +3474,8 @@ display_settings_show_minimal_dialog (GdkDisplay *display)
g_signal_connect_swapped (app, "activate", G_CALLBACK (gtk_window_present), dialog);
+ g_signal_connect (G_OBJECT (auto_button), "changed", G_CALLBACK (display_settings_minimal_profile_apply), builder);
+
/* Show the minimal dialog and start the main loop */
gtk_window_present (GTK_WINDOW (dialog));
gtk_main ();
diff --git a/dialogs/display-settings/minimal-display-dialog.glade b/dialogs/display-settings/minimal-display-dialog.glade
index 0ec3c48..af455d9 100644
--- a/dialogs/display-settings/minimal-display-dialog.glade
+++ b/dialogs/display-settings/minimal-display-dialog.glade
@@ -199,7 +199,7 @@
<property name="entry_text_column">0</property>
</object>
<packing>
- <property name="expand">True</property>
+ <property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list