Wed, 20 Jun 2018 02:21:34 -0400
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>