Sun, 19 Nov 2023 01:06:07 -0600
Move the contact list item to its own ui file
This makes it easier to read instead of having an embedded ui file.
Testing Done:
Connected the demo account and verified the contacts were still displayed.
Reviewed at https://reviews.imfreedom.org/r/2836/
--- a/pidgin/resources/ContactList/widget.ui Sun Nov 19 01:04:06 2023 -0600 +++ b/pidgin/resources/ContactList/widget.ui Sun Nov 19 01:06:07 2023 -0600 @@ -43,107 +43,7 @@ <property name="vexpand">1</property> <property name="factory"> <object class="GtkBuilderListItemFactory"> - <property name="bytes"> -<![CDATA[ -<?xml version="1.0" encoding="UTF-8"?> -<interface> - <template class="GtkListItem"> - <property name="child"> - <object class="GtkBox"> - <property name="orientation">horizontal</property> - <property name="spacing">6</property> - <child> - <object class="GtkGestureClick"> - <property name="button">3</property> - <!-- this has to turn off swapped otherwise we get the contact list or something. --> - <signal name="released" handler="pidgin_contact_list_context_cb" object="GtkListItem" swapped="no"/> - </object> - </child> - <child> - <!-- switch to a PidginAvatar when that can take a PurpleAvatar --> - <object class="GtkImage" id="avatar"> - <property name="icon-size">large</property> - <binding name="paintable"> - <closure type="GdkTexture" function="pidgin_contact_list_avatar_cb"> - <lookup name="item">GtkListItem</lookup> - </closure> - </binding> - </object> - </child> - <child> - <object class="GtkBox"> - <property name="hexpand">1</property> - <property name="orientation">vertical</property> - <property name="vexpand">1</property> - <property name="valign">center</property> - <child> - <object class="GtkBox"> - <property name="orientation">horizontal</property> - - <child> - <object class="GtkLabel"> - <property name="xalign">0</property> - <property name="use-markup">1</property> - <binding name="label"> - <lookup name="name-for-display" type="PurplePerson"> - <lookup name="item">GtkListItem</lookup> - </lookup> - </binding> - </object> - </child> - <child> - <object class="GtkLabel"> - <property name="xalign">0</property> - <binding name="label"> - <closure type="gchararray" function="pidgin_contact_list_get_primitive_as_string"> - <lookup name="presence" type="PurpleContactInfo"> - <lookup name="priority-contact-info" type="PurplePerson"> - <lookup name="item">GtkListItem</lookup> - </lookup> - </lookup> - </closure> - </binding> - </object> - </child> - </object> - </child> - <child> - <object class="GtkLabel" id="status_message"> - <style> - <class name="dim-label"/> - </style> - <property name="xalign">0</property> - <property name="ellipsize">end</property> - <binding name="label"> - <lookup name="message" type="PurplePresence"> - <lookup name="presence" type="PurpleContactInfo"> - <lookup name="priority-contact-info" type="PurplePerson"> - <lookup name="item">GtkListItem</lookup> - </lookup> - </lookup> - </lookup> - </binding> - <binding name="visible"> - <closure type="gboolean" function="pidgin_contact_list_message_visible_cb"> - <lookup name="message" type="PurplePresence"> - <lookup name="presence" type="PurpleContactInfo"> - <lookup name="priority-contact-info" type="PurplePerson"> - <lookup name="item">GtkListItem</lookup> - </lookup> - </lookup> - </lookup> - </closure> - </binding> - </object> - </child> - </object> - </child> - </object> - </property> - </template> -</interface> -]]> - </property> + <property name="resource">/im/pidgin/Pidgin3/contactlistitem.ui</property> </object> </property> <property name="model">
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin/resources/contactlistitem.ui Sun Nov 19 01:06:07 2023 -0600 @@ -0,0 +1,112 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Pidgin - Internet Messenger +Copyright (C) Pidgin Developers <devel@pidgin.im> + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this library; if not, see <https://www.gnu.org/licenses/>. +--> +<interface> + <template class="GtkListItem"> + <property name="child"> + <object class="GtkBox"> + <property name="orientation">horizontal</property> + <property name="spacing">6</property> + <child> + <object class="GtkGestureClick"> + <property name="button">3</property> + <signal name="released" handler="pidgin_contact_list_context_cb"/> + </object> + </child> + <child> + <!-- switch to a PidginAvatar when that can take a PurpleAvatar --> + <object class="GtkImage" id="avatar"> + <property name="icon-size">large</property> + <binding name="paintable"> + <closure type="GdkTexture" function="pidgin_contact_list_avatar_cb"> + <lookup name="item">GtkListItem</lookup> + </closure> + </binding> + </object> + </child> + <child> + <object class="GtkBox"> + <property name="hexpand">1</property> + <property name="orientation">vertical</property> + <property name="vexpand">1</property> + <property name="valign">center</property> + <child> + <object class="GtkBox"> + <property name="orientation">horizontal</property> + <child> + <object class="GtkLabel"> + <property name="xalign">0</property> + <property name="use-markup">1</property> + <binding name="label"> + <lookup name="name-for-display" type="PurplePerson"> + <lookup name="item">GtkListItem</lookup> + </lookup> + </binding> + </object> + </child> + <child> + <object class="GtkLabel"> + <property name="xalign">0</property> + <binding name="label"> + <closure type="gchararray" function="pidgin_contact_list_get_primitive_as_string"> + <lookup name="presence" type="PurpleContactInfo"> + <lookup name="priority-contact-info" type="PurplePerson"> + <lookup name="item">GtkListItem</lookup> + </lookup> + </lookup> + </closure> + </binding> + </object> + </child> + </object> + </child> + <child> + <object class="GtkLabel" id="status_message"> + <style> + <class name="dim-label"/> + </style> + <property name="xalign">0</property> + <property name="ellipsize">end</property> + <binding name="label"> + <lookup name="message" type="PurplePresence"> + <lookup name="presence" type="PurpleContactInfo"> + <lookup name="priority-contact-info" type="PurplePerson"> + <lookup name="item">GtkListItem</lookup> + </lookup> + </lookup> + </lookup> + </binding> + <binding name="visible"> + <closure type="gboolean" function="pidgin_contact_list_message_visible_cb"> + <lookup name="message" type="PurplePresence"> + <lookup name="presence" type="PurpleContactInfo"> + <lookup name="priority-contact-info" type="PurplePerson"> + <lookup name="item">GtkListItem</lookup> + </lookup> + </lookup> + </lookup> + </closure> + </binding> + </object> + </child> + </object> + </child> + </object> + </property> + </template> +</interface>
--- a/pidgin/resources/pidgin.gresource.xml Sun Nov 19 01:04:06 2023 -0600 +++ b/pidgin/resources/pidgin.gresource.xml Sun Nov 19 01:06:07 2023 -0600 @@ -46,6 +46,7 @@ <file compressed="true" preprocess="xml-stripblanks">gtk/menus.ui</file> <file compressed="true" preprocess="xml-stripblanks">account-row.ui</file> <file compressed="true" preprocess="xml-stripblanks">channeljoindialog.ui</file> + <file compressed="true" preprocess="xml-stripblanks">contactlistitem.ui</file> <file compressed="true" preprocess="xml-stripblanks">presenceicon.ui</file> <file compressed="true" preprocess="xml-stripblanks">statusprimitivechooser.ui</file> <file>icons/16x16/status/pidgin-user-available.png</file>
--- a/po/POTFILES.in Sun Nov 19 01:04:06 2023 -0600 +++ b/po/POTFILES.in Sun Nov 19 01:06:07 2023 -0600 @@ -329,6 +329,7 @@ pidgin/resources/Xfer/xfer.ui pidgin/resources/gtk/menus.ui pidgin/resources/account-row.ui +pidgin/resources/contactlistitem.ui pidgin/win32/gtkwin32dep.c pidgin/win32/winpidgin.c purple-history/purplehistorycore.c