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 21f06d88d4c10654bc6fc8bda2f1e94a6a440189 Author: Simon Steinbeiss <[email protected]> Date: Fri Aug 31 00:05:05 2018 +0200 display: Replace profile-combo with individual radios in minimal dialog --- dialogs/display-settings/main.c | 106 ++++++++++++--------- .../display-settings/minimal-display-dialog.glade | 51 ++++------ 2 files changed, 79 insertions(+), 78 deletions(-) diff --git a/dialogs/display-settings/main.c b/dialogs/display-settings/main.c index 93dad79..c139484 100644 --- a/dialogs/display-settings/main.c +++ b/dialogs/display-settings/main.c @@ -176,6 +176,8 @@ static void display_setting_mirror_displays_populate (GtkBuilder *builde static void display_settings_profile_apply (GtkWidget *widget, GtkBuilder *builder); +static void display_settings_minimal_profile_apply (GtkToggleButton *widget, + GtkBuilder *builder); static void display_settings_changed (void) @@ -1304,6 +1306,44 @@ display_settings_get_profiles (void) } static void +display_settings_minimal_profile_populate (GtkBuilder *builder) +{ + GObject *profile_box, *profile_display1; + GList *profiles = NULL; + GList *current; + + profile_box = gtk_builder_get_object (builder, "profile-box"); + profile_display1 = gtk_builder_get_object (builder, "display1"); + + profiles = display_settings_get_profiles (); + + current = g_list_first (profiles); + while (current) + { + GtkWidget *profile_radio; + gchar *property; + gchar *profile_name; + + /* use the display string value of the profile hash property */ + property = g_strdup_printf ("/%s", (gchar *)current->data); + profile_name = xfconf_channel_get_string (display_channel, property, NULL); + + profile_radio = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (profile_display1), profile_name); + gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (profile_radio), FALSE); + gtk_widget_set_size_request (GTK_WIDGET (profile_radio), 128, 128); + gtk_box_pack_start (GTK_BOX (profile_box), profile_radio, FALSE, FALSE, 0); + g_signal_connect (profile_radio, "toggled", G_CALLBACK (display_settings_minimal_profile_apply), + builder); + + current = g_list_next(current); + g_free (property); + g_free (profile_name); + } + + gtk_widget_show_all (GTK_WIDGET (profile_box)); +} + +static void display_settings_profile_combobox_populate (GtkBuilder *builder) { guint m = 0; @@ -1512,39 +1552,6 @@ display_settings_profile_changed (GtkWidget *widget, GtkBuilder *builder) } static void -display_settings_minimal_profile_changed (GtkComboBox *combobox, GtkBuilder *builder) -{ - GObject *auto_profile, *auto_profile_label; - GtkTreeModel *model; - GtkTreeIter iter; - GValue value = { 0, }; - const gchar *profile; - gchar *profile_hash; - gboolean profile_match; - - auto_profile = gtk_builder_get_object (builder, "auto-profile"); - auto_profile_label = gtk_builder_get_object (builder, "label5"); - profile_match = gtk_combo_box_get_active_iter (combobox, &iter); - - if (profile_match) - { - 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)); - xfce_randr_apply (xfce_randr, profile_hash, display_channel); - gtk_button_set_label (GTK_BUTTON (auto_profile), profile); - } - - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (auto_profile), profile_match); - gtk_widget_set_visible (GTK_WIDGET (combobox), !profile_match); - gtk_widget_set_visible (GTK_WIDGET (auto_profile), profile_match); - gtk_widget_set_visible (GTK_WIDGET (auto_profile_label), profile_match); - - g_value_unset (&value); -} - -static void display_settings_minimal_profile_apply (GtkToggleButton *widget, GtkBuilder *builder) { const gchar *profile; @@ -3282,7 +3289,7 @@ display_settings_show_minimal_dialog (GdkDisplay *display) GtkBuilder *builder; GtkWidget *dialog, *cancel; GObject *only_display1, *only_display2, *mirror_displays; - GObject *extend_right, *advanced, *fake_button, *label, *profile_combo, *auto_profile; + GObject *extend_right, *advanced, *fake_button, *label; GError *error = NULL; gboolean found = FALSE; RRMode mode; @@ -3310,15 +3317,12 @@ display_settings_show_minimal_dialog (GdkDisplay *display) mirror_displays = gtk_builder_get_object (builder, "mirror"); extend_right = gtk_builder_get_object (builder, "extend_right"); only_display2 = gtk_builder_get_object (builder, "display2"); - auto_profile = gtk_builder_get_object (builder, "auto-profile"); advanced = gtk_builder_get_object (builder, "advanced_button"); - profile_combo = gtk_builder_get_object (builder, "randr-profile"); fake_button = gtk_builder_get_object (builder, "fake_button"); - display_settings_combo_box_create (GTK_COMBO_BOX (profile_combo)); + /* Create the profile radiobuttons */ + display_settings_minimal_profile_populate (builder); - /* Populate the combobox */ - display_settings_profile_combobox_populate (builder); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fake_button), TRUE); @@ -3406,16 +3410,30 @@ display_settings_show_minimal_dialog (GdkDisplay *display) builder); g_signal_connect (only_display2, "toggled", G_CALLBACK (display_settings_minimal_only_display2_toggled), builder); - g_signal_connect (auto_profile, "toggled", G_CALLBACK (display_settings_minimal_profile_apply), - builder); g_signal_connect (advanced, "clicked", G_CALLBACK (display_settings_minimal_advanced_clicked), builder); g_signal_connect_swapped (app, "activate", G_CALLBACK (gtk_window_present), dialog); - g_signal_connect (profile_combo, "changed", G_CALLBACK (display_settings_minimal_profile_changed), builder); - /* Trigger the changed signal once to see if there is a profile we may want to auto-apply */ - display_settings_minimal_profile_changed (GTK_COMBO_BOX (profile_combo), builder); + /* Auto-apply the first profile in the list */ + GObject *profile_box; + profile_box = gtk_builder_get_object (builder, "profile-box"); + if (GTK_IS_CONTAINER (profile_box)) + { + GList *children = NULL; + GList *current; + + children = gtk_container_get_children (GTK_CONTAINER (profile_box)); + current = g_list_first (children); + while (current) + { + GtkWidget* widget = GTK_WIDGET (children->data); + if (widget != NULL) { + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE); + break; + } + } + } /* Show the minimal dialog and start the main loop */ gtk_window_present (GTK_WINDOW (dialog)); diff --git a/dialogs/display-settings/minimal-display-dialog.glade b/dialogs/display-settings/minimal-display-dialog.glade index d14a691..71f6095 100644 --- a/dialogs/display-settings/minimal-display-dialog.glade +++ b/dialogs/display-settings/minimal-display-dialog.glade @@ -25,7 +25,6 @@ <property name="can_focus">False</property> <property name="row_spacing">3</property> <property name="column_spacing">24</property> - <property name="column_homogeneous">True</property> <child> <object class="GtkLabel" id="label1"> <property name="width_request">128</property> @@ -87,6 +86,7 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> + <property name="halign">center</property> <property name="active">True</property> <property name="draw_indicator">False</property> <property name="group">display1</property> @@ -109,6 +109,7 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> + <property name="halign">center</property> <property name="active">True</property> <property name="draw_indicator">False</property> <property name="group">display1</property> @@ -131,6 +132,7 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> + <property name="halign">center</property> <property name="active">True</property> <property name="draw_indicator">False</property> <property name="group">display1</property> @@ -153,6 +155,7 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> + <property name="halign">center</property> <property name="active">True</property> <property name="draw_indicator">False</property> <child> @@ -168,31 +171,27 @@ </packing> </child> <child> - <object class="GtkLabel" id="label5"> - <property name="width_request">128</property> + <object class="GtkBox" id="profile-box"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="label" translatable="yes">Profile</property> - <property name="ellipsize">middle</property> + <property name="spacing">24</property> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> </object> <packing> <property name="left_attach">4</property> - <property name="top_attach">1</property> + <property name="top_attach">0</property> </packing> </child> <child> - <object class="GtkRadioButton" id="auto-profile"> - <property name="label" translatable="yes">radiobutton</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="draw_indicator">False</property> - <property name="group">display1</property> - </object> - <packing> - <property name="left_attach">4</property> - <property name="top_attach">0</property> - </packing> + <placeholder/> </child> </object> <packing> @@ -219,22 +218,6 @@ </packing> </child> <child> - <object class="GtkComboBox" id="randr-profile"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="hexpand">True</property> - <property name="entry_text_column">0</property> - </object> - <packing> - <property name="expand">True</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> - <child> - <placeholder/> - </child> - <child> <object class="GtkRadioButton" id="fake_button"> <property name="label" translatable="yes">radiobutton</property> <property name="can_focus">True</property> -- To stop receiving notification emails like this one, please contact the administrator of this repository. _______________________________________________ Xfce4-commits mailing list [email protected] https://mail.xfce.org/mailman/listinfo/xfce4-commits
