[epiphany] prefs-dialog: Port the Fonts & Style prefs page to list boxes



commit 2dbc7b423a8abeb1a8c01ba08c769af90eff4429
Author: Adrien Plazas <kekun plazas laposte net>
Date:   Sat Dec 15 22:03:11 2018 +0100

    prefs-dialog: Port the Fonts & Style prefs page to list boxes

 src/prefs-dialog.c                | 223 +++++++++++++------------
 src/resources/gtk/prefs-dialog.ui | 333 +++++++++++++-------------------------
 2 files changed, 219 insertions(+), 337 deletions(-)
---
diff --git a/src/prefs-dialog.c b/src/prefs-dialog.c
index 3995e0265..67cd41d54 100644
--- a/src/prefs-dialog.c
+++ b/src/prefs-dialog.c
@@ -102,12 +102,11 @@ struct _PrefsDialog {
   GtkWidget *start_in_incognito_mode_switch;
 
   /* fonts & style */
-  GtkWidget *use_gnome_fonts_checkbutton;
-  GtkWidget *custom_fonts_table;
+  GtkWidget *use_gnome_fonts_row;
   GtkWidget *sans_fontbutton;
   GtkWidget *serif_fontbutton;
   GtkWidget *mono_fontbutton;
-  GtkWidget *css_checkbox;
+  GtkWidget *css_switch;
   GtkWidget *css_edit_button;
   GtkWidget *default_zoom_spin_button;
   GtkWidget *reader_mode_box;
@@ -1003,12 +1002,11 @@ prefs_dialog_class_init (PrefsDialogClass *klass)
   gtk_widget_class_bind_template_child (widget_class, PrefsDialog, start_in_incognito_mode_switch);
 
   /* fonts & style */
-  gtk_widget_class_bind_template_child (widget_class, PrefsDialog, use_gnome_fonts_checkbutton);
-  gtk_widget_class_bind_template_child (widget_class, PrefsDialog, custom_fonts_table);
+  gtk_widget_class_bind_template_child (widget_class, PrefsDialog, use_gnome_fonts_row);
   gtk_widget_class_bind_template_child (widget_class, PrefsDialog, sans_fontbutton);
   gtk_widget_class_bind_template_child (widget_class, PrefsDialog, serif_fontbutton);
   gtk_widget_class_bind_template_child (widget_class, PrefsDialog, mono_fontbutton);
-  gtk_widget_class_bind_template_child (widget_class, PrefsDialog, css_checkbox);
+  gtk_widget_class_bind_template_child (widget_class, PrefsDialog, css_switch);
   gtk_widget_class_bind_template_child (widget_class, PrefsDialog, css_edit_button);
   gtk_widget_class_bind_template_child (widget_class, PrefsDialog, default_zoom_spin_button);
   gtk_widget_class_bind_template_child (widget_class, PrefsDialog, reader_mode_box);
@@ -2060,135 +2058,136 @@ setup_general_page (PrefsDialog *dialog)
     create_download_path_button (dialog);
 }
 
-enum {
-  ENUM_MODEL_COLUMN_LABEL,
-  ENUM_MODEL_COLUMN_NICK,
-  ENUM_MODEL_N_COLUMNS,
-};
-
-typedef struct {
-  gint        value;
-  const char *label;
-} EnumModelItem;
-
-static GtkTreeModel *
-enum_model_new (GType                enum_type,
-                gsize                n_items,
-                const EnumModelItem *items)
-{
-  GtkListStore *model;
-  GEnumClass *enum_class;
-  gsize i;
-
-  enum_class = g_type_class_ref (enum_type);
-  model = gtk_list_store_new (ENUM_MODEL_N_COLUMNS,
-                              G_TYPE_STRING,
-                              G_TYPE_STRING);
-
-  for (i = 0; i < n_items; i++) {
-    GtkTreeIter iter;
-    const char *nick;
-    guint  j;
-
-    nick = NULL;
-    for (j = 0; j < enum_class->n_values; j++) {
-      if (enum_class->values[j].value == items[i].value) {
-        nick = enum_class->values[j].value_nick;
-        break;
-      }
-    }
-    g_assert (nick != NULL);
+static gchar *
+reader_font_style_get_name (HdyEnumValueObject *value,
+                            gpointer            user_data)
+{
+  g_assert (HDY_IS_ENUM_VALUE_OBJECT (value));
 
-    gtk_list_store_append (model, &iter);
-    gtk_list_store_set (model,
-                        &iter,
-                        ENUM_MODEL_COLUMN_LABEL, _(items[i].label),
-                        ENUM_MODEL_COLUMN_NICK, nick,
-                        -1);
+  switch (hdy_enum_value_object_get_value (value)) {
+  case EPHY_PREFS_READER_FONT_STYLE_SANS:
+    return g_strdup (N_("Sans"));
+  case EPHY_PREFS_READER_FONT_STYLE_SERIF:
+    return g_strdup (N_("Serif"));
+  default:
+    return NULL;
   }
+}
+
+static gboolean
+reader_font_style_get_mapping (GValue   *value,
+                               GVariant *variant,
+                               gpointer  user_data)
+{
+  const char *reader_colors = g_variant_get_string (variant, NULL);
 
-  g_type_class_unref (enum_class);
-  return GTK_TREE_MODEL (model);
+  if (g_strcmp0 (reader_colors, "sans") == 0)
+    g_value_set_int (value, EPHY_PREFS_READER_FONT_STYLE_SANS);
+  else if (g_strcmp0 (reader_colors, "serif") == 0)
+    g_value_set_int (value, EPHY_PREFS_READER_FONT_STYLE_SERIF);
+
+  return TRUE;
 }
 
-static void
-enum_model_attach (GtkTreeModel *model,
-                   GtkComboBox  *combobox,
-                   GSettings    *settings,
-                   const char   *key)
+static GVariant *
+reader_font_style_set_mapping (const GValue       *value,
+                               const GVariantType *expected_type,
+                               gpointer            user_data)
+{
+  switch (g_value_get_int (value)) {
+  case EPHY_PREFS_READER_FONT_STYLE_SANS:
+    return g_variant_new_string ("sans");
+  case EPHY_PREFS_READER_FONT_STYLE_SERIF:
+    return g_variant_new_string ("serif");
+  default:
+    return g_variant_new_string ("crashed");
+  }
+}
+
+static gchar *
+reader_color_scheme_get_name (HdyEnumValueObject *value,
+                              gpointer            user_data)
 {
-  GtkCellRenderer *renderer;
+  g_assert (HDY_IS_ENUM_VALUE_OBJECT (value));
 
-  gtk_cell_layout_clear (GTK_CELL_LAYOUT (combobox));
+  switch (hdy_enum_value_object_get_value (value)) {
+  case EPHY_PREFS_READER_COLORS_LIGHT:
+    return g_strdup (N_("Light"));
+  case EPHY_PREFS_READER_COLORS_DARK:
+    return g_strdup (N_("Dark"));
+  default:
+    return NULL;
+  }
+}
 
-  gtk_combo_box_set_model (combobox, model);
-  gtk_combo_box_set_id_column (combobox,
-                               ENUM_MODEL_COLUMN_NICK);
+static gboolean
+reader_color_scheme_get_mapping (GValue   *value,
+                                 GVariant *variant,
+                                 gpointer  user_data)
+{
+  const char *reader_colors = g_variant_get_string (variant, NULL);
 
-  g_settings_bind (settings,
-                   key,
-                   combobox,
-                   "active-id",
-                   G_SETTINGS_BIND_DEFAULT);
+  if (g_strcmp0 (reader_colors, "light") == 0)
+    g_value_set_int (value, EPHY_PREFS_READER_COLORS_LIGHT);
+  else if (g_strcmp0 (reader_colors, "dark") == 0)
+    g_value_set_int (value, EPHY_PREFS_READER_COLORS_DARK);
 
-  renderer = gtk_cell_renderer_text_new ();
-  gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combobox),
-                              renderer,
-                              FALSE);
-  gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (combobox),
-                                 renderer,
-                                 "text",
-                                 ENUM_MODEL_COLUMN_LABEL);
-}
-
-static const EnumModelItem reader_font_style_items[] = {
-  { EPHY_PREFS_READER_FONT_STYLE_SANS,  N_("Sans")  },
-  { EPHY_PREFS_READER_FONT_STYLE_SERIF, N_("Serif") },
-};
+  return TRUE;
+}
 
-static const EnumModelItem reader_color_scheme_items[] = {
-  { EPHY_PREFS_READER_COLORS_LIGHT, N_("Light") },
-  { EPHY_PREFS_READER_COLORS_DARK,  N_("Dark")  },
-};
+static GVariant *
+reader_color_scheme_set_mapping (const GValue       *value,
+                                 const GVariantType *expected_type,
+                                 gpointer            user_data)
+{
+  switch (g_value_get_int (value)) {
+  case EPHY_PREFS_READER_COLORS_LIGHT:
+    return g_variant_new_string ("light");
+  case EPHY_PREFS_READER_COLORS_DARK:
+    return g_variant_new_string ("dark");
+  default:
+    return g_variant_new_string ("crashed");
+  }
+}
 
 static void
 setup_fonts_page (PrefsDialog *dialog)
 {
   GSettings *web_settings;
   GSettings *reader_settings;
-  GtkTreeModel *model;
 
   web_settings = ephy_settings_get (EPHY_PREFS_WEB_SCHEMA);
   reader_settings = ephy_settings_get (EPHY_PREFS_READER_SCHEMA);
 
-  model = enum_model_new (EPHY_TYPE_PREFS_READER_FONT_STYLE,
-                          G_N_ELEMENTS (reader_font_style_items),
-                          reader_font_style_items);
-  enum_model_attach (model,
-                     GTK_COMBO_BOX (dialog->reader_mode_font_style),
-                     reader_settings,
-                     EPHY_PREFS_READER_FONT_STYLE);
-  g_object_unref (model);
-
-  model = enum_model_new (EPHY_TYPE_PREFS_READER_COLOR_SCHEME,
-                          G_N_ELEMENTS (reader_color_scheme_items),
-                          reader_color_scheme_items);
-  enum_model_attach (model,
-                     GTK_COMBO_BOX (dialog->reader_mode_color_scheme),
-                     reader_settings,
-                     EPHY_PREFS_READER_COLOR_SCHEME);
-  g_object_unref (model);
+  hdy_combo_row_set_for_enum (HDY_COMBO_ROW (dialog->reader_mode_font_style),
+                              EPHY_TYPE_PREFS_READER_FONT_STYLE,
+                              reader_font_style_get_name, NULL, NULL);
+  g_settings_bind_with_mapping (reader_settings,
+                                EPHY_PREFS_READER_FONT_STYLE,
+                                dialog->reader_mode_font_style,
+                                "selected-index",
+                                G_SETTINGS_BIND_DEFAULT,
+                                reader_font_style_get_mapping,
+                                reader_font_style_set_mapping,
+                                NULL, NULL);
+
+  hdy_combo_row_set_for_enum (HDY_COMBO_ROW (dialog->reader_mode_color_scheme),
+                              EPHY_TYPE_PREFS_READER_COLOR_SCHEME,
+                              reader_color_scheme_get_name, NULL, NULL);
+  g_settings_bind_with_mapping (reader_settings,
+                                EPHY_PREFS_READER_COLOR_SCHEME,
+                                dialog->reader_mode_color_scheme,
+                                "selected-index",
+                                G_SETTINGS_BIND_DEFAULT,
+                                reader_color_scheme_get_mapping,
+                                reader_color_scheme_set_mapping,
+                                NULL, NULL);
 
   g_settings_bind (web_settings,
                    EPHY_PREFS_WEB_USE_GNOME_FONTS,
-                   dialog->use_gnome_fonts_checkbutton,
-                   "active",
-                   G_SETTINGS_BIND_DEFAULT);
-  g_settings_bind (web_settings,
-                   EPHY_PREFS_WEB_USE_GNOME_FONTS,
-                   dialog->custom_fonts_table,
-                   "sensitive",
-                   G_SETTINGS_BIND_GET | G_SETTINGS_BIND_INVERT_BOOLEAN);
+                   dialog->use_gnome_fonts_row,
+                   "enable-expansion",
+                   G_SETTINGS_BIND_INVERT_BOOLEAN);
   g_settings_bind (web_settings,
                    EPHY_PREFS_WEB_SANS_SERIF_FONT,
                    dialog->sans_fontbutton,
@@ -2207,7 +2206,7 @@ setup_fonts_page (PrefsDialog *dialog)
 
   g_settings_bind (web_settings,
                    EPHY_PREFS_WEB_ENABLE_USER_CSS,
-                   dialog->css_checkbox,
+                   dialog->css_switch,
                    "active",
                    G_SETTINGS_BIND_DEFAULT);
   g_settings_bind (web_settings,
diff --git a/src/resources/gtk/prefs-dialog.ui b/src/resources/gtk/prefs-dialog.ui
index 7b7af1dd4..ce1902c9e 100644
--- a/src/resources/gtk/prefs-dialog.ui
+++ b/src/resources/gtk/prefs-dialog.ui
@@ -385,112 +385,74 @@
               </packing>
             </child>
             <child>
-              <object class="GtkBox">
+              <object class="HdyPreferencesPage">
+                <property name="icon_name">document-edit-symbolic</property>
+                <property name="title" translatable="yes">Fonts &amp; Style</property>
                 <property name="visible">True</property>
-                <property name="border-width">12</property>
-                <property name="orientation">vertical</property>
-                <property name="spacing">18</property>
                 <child>
-                  <object class="GtkBox">
+                  <object class="HdyPreferencesGroup">
+                    <property name="title" translatable="yes">Fonts</property>
                     <property name="visible">True</property>
-                    <property name="orientation">vertical</property>
-                    <property name="spacing">6</property>
-                    <child>
-                      <object class="GtkLabel">
-                        <property name="visible">True</property>
-                        <property name="halign">start</property>
-                        <property name="label" translatable="yes">Fonts</property>
-                        <attributes>
-                          <attribute name="weight" value="bold"/>
-                        </attributes>
-                      </object>
-                    </child>
                     <child>
-                      <object class="GtkBox">
+                      <object class="HdyExpanderRow" id="use_gnome_fonts_row">
+                        <property name="show_enable_switch">True</property>
+                        <property name="title" translatable="yes">Use custom fonts</property>
                         <property name="visible">True</property>
-                        <property name="orientation">vertical</property>
-                        <property name="spacing">6</property>
-                        <property name="margin-start">12</property>
                         <child>
-                          <object class="GtkCheckButton" id="use_gnome_fonts_checkbutton">
-                            <property name="label" translatable="yes">_Use system fonts</property>
+                          <object class="GtkSeparator">
+                            <property name="margin-start">24</property>
                             <property name="visible">True</property>
-                            <property name="use-underline">True</property>
                           </object>
                         </child>
                         <child>
-                          <object class="GtkGrid" id="custom_fonts_table">
+                          <object class="GtkListBox" id="use_custom_fonts_list">
+                            <property name="margin-start">24</property>
+                            <property name="selection_mode">none</property>
                             <property name="visible">True</property>
-                            <property name="column-spacing">12</property>
-                            <property name="row-spacing">6</property>
-                            <property name="margin-start">12</property>
-                            <child>
-                              <object class="GtkLabel">
-                                <property name="visible">True</property>
-                                <property name="halign">start</property>
-                                <property name="label" translatable="yes">Sans serif font:</property>
-                              </object>
-                              <packing>
-                                <property name="left-attach">0</property>
-                                <property name="top-attach">0</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkFontButton" id="sans_fontbutton">
-                                <property name="visible">True</property>
-                                <property name="font">Sans 12</property>
-                                <property name="use-font">True</property>
-                                <!-- hexpands the grid -->
-                                <property name="hexpand">True</property>
-                              </object>
-                              <packing>
-                                <property name="left-attach">1</property>
-                                <property name="top-attach">0</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkLabel">
-                                <property name="visible">True</property>
-                                <property name="halign">start</property>
-                                <property name="label" translatable="yes">Serif font:</property>
-                              </object>
-                              <packing>
-                                <property name="left-attach">0</property>
-                                <property name="top-attach">1</property>
-                              </packing>
-                            </child>
                             <child>
-                              <object class="GtkFontButton" id="serif_fontbutton">
+                              <object class="HdyActionRow">
+                                <property name="activatable">False</property>
+                                <property name="title" translatable="yes">Sans serif font</property>
                                 <property name="visible">True</property>
-                                <property name="font">Sans 12</property>
-                                <property name="use-font">True</property>
+                                <child type="action">
+                                  <object class="GtkFontButton" id="sans_fontbutton">
+                                    <property name="font">Sans 12</property>
+                                    <property name="use-font">True</property>
+                                    <property name="valign">center</property>
+                                    <property name="visible">True</property>
+                                  </object>
+                                </child>
                               </object>
-                              <packing>
-                                <property name="left-attach">1</property>
-                                <property name="top-attach">1</property>
-                              </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel">
+                              <object class="HdyActionRow">
+                                <property name="activatable">False</property>
+                                <property name="title" translatable="yes">Serif font</property>
                                 <property name="visible">True</property>
-                                <property name="halign">start</property>
-                                <property name="label" translatable="yes">Monospace font:</property>
+                                <child type="action">
+                                  <object class="GtkFontButton" id="serif_fontbutton">
+                                    <property name="font">Sans 12</property>
+                                    <property name="use-font">True</property>
+                                    <property name="valign">center</property>
+                                    <property name="visible">True</property>
+                                  </object>
+                                </child>
                               </object>
-                              <packing>
-                                <property name="left-attach">0</property>
-                                <property name="top-attach">2</property>
-                              </packing>
                             </child>
                             <child>
-                              <object class="GtkFontButton" id="mono_fontbutton">
+                              <object class="HdyActionRow">
+                                <property name="activatable">False</property>
+                                <property name="title" translatable="yes">Monospace font</property>
                                 <property name="visible">True</property>
-                                <property name="font">Sans 12</property>
-                                <property name="use-font">True</property>
+                                <child type="action">
+                                  <object class="GtkFontButton" id="mono_fontbutton">
+                                    <property name="font">Sans 12</property>
+                                    <property name="use-font">True</property>
+                                    <property name="valign">center</property>
+                                    <property name="visible">True</property>
+                                  </object>
+                                </child>
                               </object>
-                              <packing>
-                                <property name="left-attach">1</property>
-                                <property name="top-attach">2</property>
-                              </packing>
                             </child>
                           </object>
                         </child>
@@ -499,166 +461,86 @@
                   </object>
                 </child>
                 <child>
-                  <object class="GtkBox">
+                  <object class="HdyPreferencesGroup" id="reader_mode_box">
+                    <property name="title" translatable="yes">Reader Mode</property>
                     <property name="visible">True</property>
-                    <property name="orientation">vertical</property>
-                    <property name="spacing">6</property>
                     <child>
-                      <object class="GtkLabel">
+                      <object class="HdyComboRow" id="reader_mode_font_style">
+                        <property name="title" translatable="yes">Font style</property>
                         <property name="visible">True</property>
-                        <property name="halign">start</property>
-                        <property name="label" translatable="yes">Style</property>
-                        <attributes>
-                          <attribute name="weight" value="bold"/>
-                        </attributes>
                       </object>
                     </child>
                     <child>
-                      <object class="GtkBox">
+                      <object class="HdyComboRow" id="reader_mode_color_scheme">
+                        <property name="title" translatable="yes">Color scheme</property>
                         <property name="visible">True</property>
-                        <property name="spacing">24</property>
-                        <property name="margin-start">12</property>
-                        <child>
-                          <object class="GtkCheckButton" id="css_checkbox">
-                            <property name="label" translatable="yes">Use custom _stylesheet</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">3</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="HdyPreferencesGroup">
+                    <property name="title" translatable="yes">Style</property>
+                    <property name="visible">True</property>
+                    <child>
+                      <object class="HdyActionRow">
+                        <property name="activatable_widget">css_switch</property>
+                        <property name="title" translatable="yes">Use custom stylesheet</property>
+                        <property name="visible">True</property>
+                        <child type="action">
+                          <object class="GtkButton" id="css_edit_button">
+                            <property name="valign">center</property>
                             <property name="visible">True</property>
-                            <property name="hexpand">True</property>
-                            <property name="use-underline">True</property>
+                            <style>
+                              <class name="image-button"/>
+                            </style>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="icon_name">document-edit-symbolic</property>
+                                <property name="visible">True</property>
+                              </object>
+                            </child>
                           </object>
                         </child>
-                        <child>
-                          <object class="GtkButton" id="css_edit_button">
-                            <property name="label" translatable="yes">_Edit Stylesheet</property>
+                        <child type="action">
+                          <object class="GtkSeparator">
+                            <property name="margin_bottom">8</property>
+                            <property name="margin_top">8</property>
+                            <property name="visible">True</property>
+                          </object>
+                        </child>
+                        <child type="action">
+                          <object class="GtkSwitch" id="css_switch">
+                            <property name="valign">center</property>
                             <property name="visible">True</property>
-                            <property name="use-underline">True</property>
                           </object>
                         </child>
                       </object>
                     </child>
                     <child>
-                      <object class="GtkBox">
+                      <object class="HdyActionRow">
+                        <property name="activatable">False</property>
+                        <property name="title" translatable="yes">Default zoom level</property>
                         <property name="visible">True</property>
-                        <property name="spacing">24</property>
-                        <property name="margin-start">12</property>
-                        <child>
-                          <object class="GtkLabel">
-                            <property name="visible">True</property>
-                            <property name="halign">start</property>
-                            <property name="hexpand">True</property>
-                            <property name="label" translatable="yes">Default zoom level:</property>
-                          </object>
-                        </child>
-                        <child>
+                        <child type="action">
                           <object class="GtkSpinButton" id="default_zoom_spin_button">
-                            <property name="visible">True</property>
+                            <property name="adjustment">zoom_adjustment</property>
                             <property name="can_focus">True</property>
                             <property name="input_purpose">number</property>
-                            <property name="adjustment">zoom_adjustment</property>
                             <property name="max_width_chars">5</property>
+                            <property name="valign">center</property>
                             <property name="value">100</property>
-                            <signal name="value-changed" 
handler="on_default_zoom_spin_button_value_changed"/>
-                            <signal name="output" handler="on_default_zoom_spin_button_output"/>
-                          </object>
-                        </child>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">True</property>
-                        <property name="position">2</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkBox" id="reader_mode_box">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="orientation">vertical</property>
-                        <property name="spacing">6</property>
-                        <property name="margin-top">12</property>
-                        <child>
-                          <object class="GtkLabel">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="halign">start</property>
-                            <property name="label" translatable="yes">Reader Mode</property>
-                            <attributes>
-                              <attribute name="weight" value="bold"/>
-                            </attributes>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">True</property>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkGrid">
                             <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="margin_left">12</property>
-                            <property name="row_spacing">6</property>
-                            <property name="hexpand">True</property>
-                            <property name="column_spacing">12</property>
-                            <child>
-                              <object class="GtkLabel">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="halign">start</property>
-                                <property name="valign">center</property>
-                                <property name="margin_left">12</property>
-                                <property name="label" translatable="yes">Font style:</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">0</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkLabel">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="halign">start</property>
-                                <property name="valign">center</property>
-                                <property name="margin_left">12</property>
-                                <property name="label" translatable="yes">Color scheme:</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkComboBox" id="reader_mode_font_style">
-                                <property name="visible">True</property>
-                                <property name="hexpand">True</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">1</property>
-                                <property name="top_attach">0</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkComboBox" id="reader_mode_color_scheme">
-                                <property name="visible">True</property>
-                                <property name="hexpand">True</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">1</property>
-                                <property name="top_attach">1</property>
-                              </packing>
-                            </child>
+                            <signal name="output" handler="on_default_zoom_spin_button_output"/>
+                            <signal name="value-changed" 
handler="on_default_zoom_spin_button_value_changed"/>
                           </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">True</property>
-                            <property name="position">1</property>
-                          </packing>
                         </child>
                       </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">True</property>
-                        <property name="position">3</property>
-                      </packing>
                     </child>
                   </object>
                 </child>
@@ -1329,6 +1211,14 @@
       </object>
     </child>
   </template>
+  <object class="GtkSizeGroup">
+    <property name="mode">horizontal</property>
+    <widgets>
+      <widget name="sans_fontbutton"/>
+      <widget name="serif_fontbutton"/>
+      <widget name="mono_fontbutton"/>
+    </widgets>
+  </object>
   <object class="GtkSizeGroup">
     <property name="mode">horizontal</property>
     <widgets>
@@ -1346,13 +1236,6 @@
       <widget name="sync_device_name_change_button"/>
     </widgets>
   </object>
-  <object class="GtkSizeGroup">
-    <property name="mode">horizontal</property>
-    <widgets>
-      <widget name="css_edit_button"/>
-      <widget name="default_zoom_spin_button"/>
-    </widgets>
-  </object>
   <object class="GtkAdjustment" id="zoom_adjustment">
     <property name="lower">33</property>
     <property name="upper">300</property>


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