[gnome-control-center] region: Convert add input button to a row



commit 4d5626d066e8794351a879bc63f3b0a819b363f6
Author: Robert Ancell <robert ancell canonical com>
Date:   Mon Nov 19 11:22:29 2018 +1300

    region: Convert add input button to a row
    
    This matches the new designs in
    
https://gitlab.gnome.org/Teams/Design/settings-mockups/blob/master/region-and-language/region-and-language.png

 panels/region/cc-region-panel.c  | 16 +++++++++----
 panels/region/cc-region-panel.ui | 51 ++++++++++++++--------------------------
 2 files changed, 30 insertions(+), 37 deletions(-)
---
diff --git a/panels/region/cc-region-panel.c b/panels/region/cc-region-panel.c
index 45e886042..e4d6f1833 100644
--- a/panels/region/cc-region-panel.c
+++ b/panels/region/cc-region-panel.c
@@ -59,7 +59,7 @@
 struct _CcRegionPanel {
         CcPanel          parent_instance;
 
-        GtkButton       *add_input_button;
+        GtkListBoxRow   *add_input_row;
         GtkLabel        *alt_next_source;
         GtkLabel        *formats_label;
         GtkListBoxRow   *formats_row;
@@ -808,7 +808,7 @@ add_input_row (CcRegionPanel *self, CcInputSource *source)
         g_signal_connect_object (row, "show-settings", G_CALLBACK (row_settings_cb), self, 
G_CONNECT_SWAPPED);
         g_signal_connect_object (row, "show-layout", G_CALLBACK (row_layout_cb), self, G_CONNECT_SWAPPED);
         g_signal_connect_object (row, "remove-row", G_CALLBACK (row_removed_cb), self, G_CONNECT_SWAPPED);
-        gtk_container_add (GTK_CONTAINER (self->input_list), GTK_WIDGET (row));
+        gtk_list_box_insert (GTK_LIST_BOX (self->input_list), GTK_WIDGET (row), gtk_list_box_row_get_index 
(self->add_input_row));
         update_input_rows (self);
 
         cc_list_box_adjust_scrolling (self->input_list);
@@ -1149,6 +1149,14 @@ move_input (CcRegionPanel *self,
         }
 }
 
+static void
+input_row_activated_cb (CcRegionPanel *self, GtkListBoxRow *row)
+{
+        if (row == self->add_input_row) {
+                add_input (self);
+        }
+}
+
 static void
 move_selected_input_up (CcRegionPanel *self)
 {
@@ -1603,7 +1611,7 @@ cc_region_panel_class_init (CcRegionPanelClass * klass)
 
         gtk_widget_class_set_template_from_resource (widget_class, 
"/org/gnome/control-center/region/cc-region-panel.ui");
 
-        gtk_widget_class_bind_template_child (widget_class, CcRegionPanel, add_input_button);
+        gtk_widget_class_bind_template_child (widget_class, CcRegionPanel, add_input_row);
         gtk_widget_class_bind_template_child (widget_class, CcRegionPanel, alt_next_source);
         gtk_widget_class_bind_template_child (widget_class, CcRegionPanel, formats_label);
         gtk_widget_class_bind_template_child (widget_class, CcRegionPanel, formats_row);
@@ -1628,8 +1636,8 @@ cc_region_panel_class_init (CcRegionPanelClass * klass)
         gtk_widget_class_bind_template_child (widget_class, CcRegionPanel, restart_revealer);
         gtk_widget_class_bind_template_child (widget_class, CcRegionPanel, same_source);
 
+        gtk_widget_class_bind_template_callback (widget_class, input_row_activated_cb);
         gtk_widget_class_bind_template_callback (widget_class, restart_now);
-        gtk_widget_class_bind_template_callback (widget_class, add_input);
         gtk_widget_class_bind_template_callback (widget_class, move_selected_input_up);
         gtk_widget_class_bind_template_callback (widget_class, move_selected_input_down);
 }
diff --git a/panels/region/cc-region-panel.ui b/panels/region/cc-region-panel.ui
index 740c1ac50..242793e1f 100644
--- a/panels/region/cc-region-panel.ui
+++ b/panels/region/cc-region-panel.ui
@@ -253,6 +253,8 @@
                       <object class="GtkListBox" id="input_list">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
+                        <property name="selection-mode">none</property>
+                        <signal name="row_activated" handler="input_row_activated_cb" object="CcRegionPanel" 
swapped="yes"/>
                         <accessibility>
                           <relation target="input_heading_label" type="labelled-by"/>
                         </accessibility>
@@ -271,6 +273,22 @@
                             </child>
                           </object>
                         </child>
+                        <child>
+                          <object class="GtkListBoxRow" id="add_input_row">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="selectable">False</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="hexpand">True</property>
+                                <property name="margin">18</property>
+                                <property name="icon-name">list-add-symbolic</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
                       </object>
                     </child>
                   </object>
@@ -285,39 +303,6 @@
                     <style>
                       <class name="inline-toolbar"/>
                     </style>
-                    <child>
-                      <object class="GtkToolItem">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <child>
-                          <object class="GtkBox">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <child>
-                              <object class="GtkButton" id="add_input_button">
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="receives_default">True</property>
-                                <signal name="clicked" handler="add_input" object="CcRegionPanel" 
swapped="yes"/>
-                                <child internal-child="accessible">
-                                  <object class="AtkObject">
-                                    <property name="accessible-name" translatable="yes">Add input 
source</property>
-                                  </object>
-                                </child>
-                                <child>
-                                  <object class="GtkImage">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="icon_name">list-add-symbolic</property>
-                                    <property name="icon-size">1</property>
-                                  </object>
-                                </child>
-                              </object>
-                            </child>
-                          </object>
-                        </child>
-                      </object>
-                    </child>
                     <child>
                       <object class="GtkSeparatorToolItem">
                         <property name="visible">True</property>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]