prefs: Convert Logging page to glade.

Wed, 20 Jun 2018 02:21:34 -0400

author
Elliott Sales de Andrade <qulogic@pidgin.im>
date
Wed, 20 Jun 2018 02:21:34 -0400
changeset 39182
a7a028be4bcd
parent 39181
f0cd633d86d4
child 39183
94e46ed81701

prefs: Convert Logging page to glade.

pidgin/gtkprefs.c file | annotate | diff | comparison | revisions
pidgin/resources/Prefs/prefs.ui file | annotate | diff | comparison | revisions
--- a/pidgin/gtkprefs.c	Wed Jun 20 02:13:44 2018 -0400
+++ b/pidgin/gtkprefs.c	Wed Jun 20 02:21:34 2018 -0400
@@ -110,6 +110,14 @@
 
 	/* Notebook */
 	GtkWidget *notebook;
+
+	/* Logging page */
+	struct {
+		PidginPrefCombo format;
+		GtkWidget *log_ims;
+		GtkWidget *log_chats;
+		GtkWidget *log_system;
+	} logging;
 };
 
 /* Main dialog */
@@ -2827,35 +2835,23 @@
 	return ret;
 }
 
-static GtkWidget *
-logging_page(void)
+static void
+bind_logging_page(PidginPrefsWindow *win)
 {
-	GtkWidget *ret;
-	GtkWidget *vbox;
 	GList *names;
 
-	ret = gtk_box_new(GTK_ORIENTATION_VERTICAL, PIDGIN_HIG_CAT_SPACE);
-	gtk_container_set_border_width (GTK_CONTAINER (ret), PIDGIN_HIG_BORDER);
-
-
-	vbox = pidgin_make_frame (ret, _("Logging"));
+	win->logging.format.type = PURPLE_PREF_STRING;
+	win->logging.format.key = "/purple/logging/format";
 	names = purple_log_logger_get_options();
-
-	pidgin_prefs_dropdown_from_list(vbox, _("Log _format:"), PURPLE_PREF_STRING,
-				 "/purple/logging/format", names);
-
+	pidgin_prefs_bind_dropdown_from_list(&win->logging.format, names);
 	g_list_free(names);
 
-	pidgin_prefs_checkbox(_("Log all _instant messages"),
-				  "/purple/logging/log_ims", vbox);
-	pidgin_prefs_checkbox(_("Log all c_hats"),
-				  "/purple/logging/log_chats", vbox);
-	pidgin_prefs_checkbox(_("Log all _status changes to system log"),
-				  "/purple/logging/log_system", vbox);
-
-	gtk_widget_show_all(ret);
-
-	return ret;
+	pidgin_prefs_bind_checkbox("/purple/logging/log_ims",
+			win->logging.log_ims);
+	pidgin_prefs_bind_checkbox("/purple/logging/log_chats",
+			win->logging.log_chats);
+	pidgin_prefs_bind_checkbox("/purple/logging/log_system",
+			win->logging.log_system);
 }
 
 /*** keyring page *******************************************************/
@@ -4155,7 +4151,7 @@
 prefs_notebook_add_page(GtkNotebook *notebook, const char *text,
 		GtkWidget *page, int ind)
 {
-	return gtk_notebook_append_page(notebook, page, gtk_label_new(text));
+	return gtk_notebook_insert_page(notebook, page, gtk_label_new(text), ind);
 }
 
 static void
@@ -4174,7 +4170,8 @@
 #endif
 
 	prefs_notebook_add_page(notebook, _("Conversations"), conv_page(), notebook_page++);
-	prefs_notebook_add_page(notebook, _("Logging"), logging_page(), notebook_page++);
+	bind_logging_page(win);
+	notebook_page++;
 	prefs_notebook_add_page(notebook, _("Network"), network_page(), notebook_page++);
 	prefs_notebook_add_page(notebook, _("Proxy"), proxy_page(), notebook_page++);
 	prefs_notebook_add_page(notebook, _("Password Storage"), keyring_page(), notebook_page++);
@@ -4197,9 +4194,20 @@
 		"/im/pidgin/Pidgin/Prefs/prefs.ui"
 	);
 
+	/* Main window */
 	gtk_widget_class_bind_template_child(
 			widget_class, PidginPrefsWindow, notebook);
 	gtk_widget_class_bind_template_callback(widget_class, delete_prefs);
+
+	/* Logging page */
+	gtk_widget_class_bind_template_child(
+			widget_class, PidginPrefsWindow, logging.format.combo);
+	gtk_widget_class_bind_template_child(
+			widget_class, PidginPrefsWindow, logging.log_ims);
+	gtk_widget_class_bind_template_child(
+			widget_class, PidginPrefsWindow, logging.log_chats);
+	gtk_widget_class_bind_template_child(
+			widget_class, PidginPrefsWindow, logging.log_system);
 }
 
 static void
--- a/pidgin/resources/Prefs/prefs.ui	Wed Jun 20 02:13:44 2018 -0400
+++ b/pidgin/resources/Prefs/prefs.ui	Wed Jun 20 02:21:34 2018 -0400
@@ -2,6 +2,14 @@
 <!-- Generated with glade 3.22.1 -->
 <interface>
   <requires lib="gtk+" version="3.10"/>
+  <object class="GtkListStore" id="logging.format.store">
+    <columns>
+      <!-- column-name text -->
+      <column type="gchararray"/>
+      <!-- column-name value -->
+      <column type="gchararray"/>
+    </columns>
+  </object>
   <template class="PidginPrefsWindow" parent="GtkDialog">
     <property name="can_focus">False</property>
     <property name="title" translatable="yes">Preferences</property>
@@ -47,7 +55,153 @@
             <property name="can_focus">True</property>
             <property name="tab_pos">left</property>
             <child>
-              <placeholder/>
+              <object class="GtkBox" id="logging.page">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="margin_left">12</property>
+                <property name="margin_right">12</property>
+                <property name="margin_top">12</property>
+                <property name="margin_bottom">12</property>
+                <property name="orientation">vertical</property>
+                <property name="spacing">18</property>
+                <child>
+                  <object class="GtkFrame">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label_xalign">0</property>
+                    <property name="shadow_type">none</property>
+                    <child>
+                      <object class="GtkAlignment">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="left_padding">12</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="orientation">vertical</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <object class="GtkBox">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="spacing">6</property>
+                                <child>
+                                  <object class="GtkLabel">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="label" translatable="yes">Log _format:</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="mnemonic_widget">logging.format.combo</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkComboBox" id="logging.format.combo">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="model">logging.format.store</property>
+                                    <child>
+                                      <object class="GtkCellRendererText"/>
+                                      <attributes>
+                                        <attribute name="text">0</attribute>
+                                      </attributes>
+                                    </child>
+                                  </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">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkCheckButton" id="logging.log_ims">
+                                <property name="label" translatable="yes">Log all _instant messages</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="draw_indicator">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkCheckButton" id="logging.log_chats">
+                                <property name="label" translatable="yes">Log all c_hats</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="draw_indicator">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">2</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkCheckButton" id="logging.log_system">
+                                <property name="label" translatable="yes">Log all _status changes to system log</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="draw_indicator">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">3</property>
+                              </packing>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child type="label">
+                      <object class="GtkLabel">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label" translatable="yes">Logging</property>
+                        <attributes>
+                          <attribute name="weight" value="bold"/>
+                        </attributes>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Logging</property>
+              </object>
+              <packing>
+                <property name="tab_fill">False</property>
+              </packing>
             </child>
           </object>
           <packing>

mercurial