Sun, 10 Aug 2025 23:44:08 +0800
Add Purple.Conversation.find_message_by_id
The method was added so that a protocol or plugin could easily lookup
for the reference for a message. This will be especially useful when a
protocol received a quoted message but only with an id.
<?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> <requires lib="gtk" version="4.0"/> <requires lib="Adw" version="1.0"/> <requires lib="pidgin" version="3.0"/> <!-- interface-license-type gplv2 --> <!-- interface-name Pidgin --> <!-- interface-description Internet Messenger --> <!-- interface-copyright Pidgin Developers <devel@pidgin.im> --> <menu id="conversation_menu"> <section> <item> <attribute name="label" translatable="yes">Leave</attribute> <attribute name="action">conversation.leave</attribute> <attribute name="dynamic-target">id</attribute> </item> </section> </menu> <object class="GListStore" id="base_model"> <property name="item-type">PidginDisplayItem</property> <child> <object class="PidginDisplayItem"> <property name="icon-name">system-users-symbolic</property> <property name="id">__contacts__</property> <property name="title" translatable="yes">Contacts</property> <property name="widget"> <object class="GtkScrolledWindow"> <child> <object class="PidginContactList" id="contact_list"/> </child> </object> </property> </object> </child> <child> <object class="PidginDisplayItem"> <property name="icon-name">emblem-important-symbolic</property> <property name="id">__notifications__</property> <property name="title" translatable="yes">Notifications</property> <property name="widget"> <object class="GtkScrolledWindow"> <child> <object class="PidginNotificationList" id="notification_list"> <property name="orientation">vertical</property> </object> </child> </object> </property> <binding name="needs-attention"> <lookup name="needs-attention">notification_list</lookup> </binding> <binding name="badge-number"> <lookup name="notification-count">notification_list</lookup> </binding> </object> </child> <child> <object class="PidginDisplayItem"> <property name="icon-name">application-x-addon-symbolic</property> <property name="id">__plugins__</property> <property name="title" translatable="yes">Plugins</property> <property name="menu"> <object class="PidginPluginsMenu"/> </property> <property name="widget"> <object class="GtkBox"> <property name="orientation">vertical</property> <child> <object class="PidginInfoPane"> <property name="title" translatable="yes">Plugins</property> <child> <object class="GtkBox"> <property name="margin-end">6</property> <property name="orientation">horizontal</property> <property name="spacing">6</property> <property name="valign">center</property> <child> <object class="GtkButton"> <property name="tooltip-text" translatable="yes">Refresh</property> <!-- we can't actually refresh the gplugin pluging list right now, so we just show an insensitive button to remind us to fix it later. --> <property name="sensitive">false</property> <child> <object class="GtkImage"> <property name="icon-name">view-refresh-symbolic</property> </object> </child> </object> </child> </object> </child> </object> </child> <child> <object class="GPluginGtkView" id="plugin_list"> <property name="orientation">vertical</property> </object> </child> </object> </property> </object> </child> <child> <object class="PidginDisplayItem" id="conversations_item"> <property name="icon-name">user-available-symbolic</property> <property name="id">__conversations__</property> <property name="title" translatable="yes">Conversations</property> <property name="widget"> <object class="AdwStatusPage"> <property name="icon-name">mail-send-symbolic</property> <property name="title" translatable="yes">Conversations</property> <property name="description" translatable="yes">When you send a message to a friend or join a chat it will show up here!</property> </object> </property> <property name="children"> <object class="GListStore" id="conversation_model"> <property name="item-type">PidginDisplayItem</property> </object> </property> </object> </child> </object> <template class="PidginDisplayWindow" parent="GtkApplicationWindow"> <property name="show-menubar">1</property> <property name="default-height">450</property> <property name="default-width">950</property> <child> <object class="GtkEventControllerKey"> <property name="propagation-phase">capture</property> <signal name="key-pressed" handler="pidgin_display_window_key_pressed_cb"/> </object> </child> <child> <object class="GtkBox" id="vbox"> <property name="orientation">vertical</property> <child> <object class="GtkPaned" id="paned"> <property name="vexpand">1</property> <property name="focusable">1</property> <property name="position">220</property> <child> <object class="GtkBox"> <property name="margin-top">6</property> <property name="margin-start">6</property> <property name="margin-end">6</property> <property name="margin-bottom">6</property> <property name="orientation">vertical</property> <property name="spacing">6</property> <child> <object class="GtkScrolledWindow"> <property name="vexpand">1</property> <property name="focusable">1</property> <property name="propagate-natural-width">1</property> <style> <class name="sidebar"/> </style> <child> <object class="GtkListView" id="view"> <property name="model"> <object class="GtkSingleSelection" id="selection_model"> <property name="autoselect">1</property> <property name="can-unselect">0</property> <signal name="notify::selected-item" handler="pidgin_display_window_selected_item_changed_cb"/> </object> </property> <property name="factory"> <object class="GtkBuilderListItemFactory"> <property name="resource">/im/pidgin/Pidgin3/display-item.ui</property> </object> </property> </object> </child> </object> </child> </object> </child> <child> <object class="AdwBin" id="bin"> <property name="vexpand">1</property> <property name="hexpand">1</property> </object> </child> </object> </child> </object> </child> </template> </interface>