Annotate Pidgin constructors that return base types

Review Request #3838 — Created Feb. 14, 2025 and submitted

Information

pidgin/pidgin
default

Reviewers

In that case, annotating the actual type will help bindings use the correct type.

Compared the gir before and after, and types were more specific:

--- Pidgin-3.0.gir  2025-02-14 01:13:40.813791641 -0500
+++ build/pidgin/Pidgin-3.0.gir 2025-02-14 03:05:58.968098262 -0500
@@ -54,8 +54,8 @@
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="pidgin/pidginabout.h"
-               line="58">A new instance of the about dialog.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+               line="58">The new about dialog.</doc>
+          <type name="AboutDialog" c:type="GtkWidget*"/>
         </return-value>
         <parameters>
           <parameter name="application"
@@ -100,12 +100,13 @@
         <doc xml:space="preserve"
              filename="pidgin/pidginaccountchooser.h"
              line="52">Creates a combo box filled with accounts.</doc>
-        <source-position filename="pidgin/pidginaccountchooser.h" line="62"/>
+        <source-position filename="pidgin/pidginaccountchooser.h" line="63"/>
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="pidgin/pidginaccountchooser.h"
-               line="57">The account chooser combo box.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+               line="57">The new account
+         chooser combo box.</doc>
+          <type name="AccountChooser" c:type="GtkWidget*"/>
         </return-value>
       </constructor>
       <method name="get_filter"
@@ -258,12 +259,13 @@
         <doc xml:space="preserve"
              filename="pidgin/pidginaccountdisplay.h"
              line="52">Creates a display for an account.</doc>
-        <source-position filename="pidgin/pidginaccountdisplay.h" line="63"/>
+        <source-position filename="pidgin/pidginaccountdisplay.h" line="64"/>
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="pidgin/pidginaccountdisplay.h"
-               line="58">The account display.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+               line="58">The new account
+         display.</doc>
+          <type name="AccountDisplay" c:type="GtkWidget*"/>
         </return-value>
         <parameters>
           <parameter name="account" transfer-ownership="none">
@@ -371,8 +373,8 @@
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="pidgin/pidginaccounteditor.h"
-               line="61">The new instance.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+               line="61">The new account editor.</doc>
+          <type name="AccountEditor" c:type="GtkWidget*"/>
         </return-value>
         <parameters>
           <parameter name="account"
@@ -542,8 +544,8 @@
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="pidgin/pidginaccountfilterconnected.h"
-               line="60">The new #PidginAccountFilterConnected instance.</doc>
-          <type name="Gtk.Filter" c:type="GtkFilter*"/>
+               line="60">The new filter.</doc>
+          <type name="AccountFilterConnected" c:type="GtkFilter*"/>
         </return-value>
       </constructor>
     </class>
@@ -585,8 +587,8 @@
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="pidgin/pidginaccountfilterprotocol.h"
-               line="61">The new #PidginAccountFilterProtocol instance.</doc>
-          <type name="Gtk.Filter" c:type="GtkFilter*"/>
+               line="61">The new filter.</doc>
+          <type name="AccountFilterProtocol" c:type="GtkFilter*"/>
         </return-value>
         <parameters>
           <parameter name="protocol_id" transfer-ownership="none">
@@ -673,7 +675,7 @@
           <doc xml:space="preserve"
                filename="pidgin/pidginaccountmanager.h"
                line="58">The dialog.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+          <type name="AccountManager" c:type="GtkWidget*"/>
         </return-value>
         <parameters>
           <parameter name="application"
@@ -770,7 +772,7 @@
           <doc xml:space="preserve"
                filename="pidgin/pidginaccountmanagerrow.h"
                line="58">The new account row.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+          <type name="AccountManagerRow" c:type="GtkWidget*"/>
         </return-value>
         <parameters>
           <parameter name="account"
@@ -887,7 +889,7 @@
           <doc xml:space="preserve"
                filename="pidgin/pidginaccountrow.h"
                line="62">The new instance.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+          <type name="AccountRow" c:type="GtkWidget*"/>
         </return-value>
       </constructor>
       <method name="get_account"
@@ -1056,8 +1058,8 @@
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="pidgin/pidginaccountsdisabledmenu.h"
-               line="60">The new menu instance.</doc>
-          <type name="Gio.MenuModel" c:type="GMenuModel*"/>
+               line="60">The new instance.</doc>
+          <type name="AccountsDisabledMenu" c:type="GMenuModel*"/>
         </return-value>
       </constructor>
     </class>
@@ -1097,8 +1099,8 @@
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="pidgin/pidginaccountsenabledmenu.h"
-               line="60">The new menu instance.</doc>
-          <type name="Gio.MenuModel" c:type="GMenuModel*"/>
+               line="60">The new instance.</doc>
+          <type name="AccountsEnabledMenu" c:type="GMenuModel*"/>
         </return-value>
       </constructor>
     </class>
@@ -1137,8 +1139,8 @@
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="pidgin/pidginapplication.h"
-               line="59">The new #PidginApplication instance.</doc>
-          <type name="Gio.Application" c:type="GApplication*"/>
+               line="59">The new instance.</doc>
+          <type name="Application" c:type="GApplication*"/>
         </return-value>
       </constructor>
       <method name="add_action_group"
@@ -1237,8 +1239,8 @@
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="pidgin/pidginautoadjustment.h"
-               line="61">The new #PidginAutoAdjustment instance.</doc>
-          <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
+               line="61">The new instance.</doc>
+          <type name="AutoAdjustment" c:type="GtkAdjustment*"/>
         </return-value>
       </constructor>
       <method name="decrement"
@@ -1314,8 +1316,8 @@
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="pidgin/pidginavatar.h"
-               line="59">The new #PidginAvatar instance.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+               line="59">The new instance.</doc>
+          <type name="Avatar" c:type="GtkWidget*"/>
         </return-value>
       </constructor>
       <method name="get_animate"
@@ -1544,8 +1546,8 @@
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="pidgin/prefs/pidginawayprefs.h"
-               line="58">The new #PidginAwayPrefs instance.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+               line="58">The new instance.</doc>
+          <type name="AwayPrefs" c:type="GtkWidget*"/>
         </return-value>
       </constructor>
     </class>
@@ -1583,7 +1585,7 @@
           <doc xml:space="preserve"
                filename="pidgin/pidginbadges.h"
                line="59">The new widget.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+          <type name="Badges" c:type="GtkWidget*"/>
         </return-value>
         <parameters>
           <parameter name="badges" transfer-ownership="none">
@@ -1696,8 +1698,8 @@
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="pidgin/pidginchanneljoindialog.h"
-               line="56">The widget.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+               line="56">The new widget.</doc>
+          <type name="ChannelJoinDialog" c:type="GtkWidget*"/>
         </return-value>
         <parameters>
           <parameter name="application"
@@ -1750,8 +1752,8 @@
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="pidgin/pidgincontactlist.h"
-               line="62">The new #PidginContactList instance.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+               line="62">The new instance.</doc>
+          <type name="ContactList" c:type="GtkWidget*"/>
         </return-value>
       </constructor>
     </class>
@@ -1791,7 +1793,7 @@
           <doc xml:space="preserve"
                filename="pidgin/pidginconversation.h"
                line="62">The new widget.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+          <type name="Conversation" c:type="GtkWidget*"/>
         </return-value>
         <parameters>
           <parameter name="conversation" transfer-ownership="none">
@@ -1914,12 +1916,13 @@
              filename="pidgin/pidginconversationmember.h"
              line="52">Creates a display for a conversation member.</doc>
         <source-position filename="pidgin/pidginconversationmember.h"
-                         line="63"/>
+                         line="64"/>
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="pidgin/pidginconversationmember.h"
-               line="58">The conversation member display.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+               line="58">The conversation
+         member display.</doc>
+          <type name="ConversationMember" c:type="GtkWidget*"/>
         </return-value>
         <parameters>
           <parameter name="conversation_member" transfer-ownership="none">
@@ -2033,8 +2036,8 @@
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="pidgin/prefs/pidginconversationprefs.h"
-               line="58">The new #PidginConversationPrefs instance.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+               line="58">The new instance.</doc>
+          <type name="ConversationPrefs" c:type="GtkWidget*"/>
         </return-value>
       </constructor>
     </class>
@@ -2077,8 +2080,8 @@
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="pidgin/prefs/pidgincredentialprefs.h"
-               line="66">The new #PidginCredentialPrefs instance.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+               line="66">The new instance.</doc>
+          <type name="CredentialPrefs" c:type="GtkWidget*"/>
         </return-value>
       </constructor>
     </class>
@@ -2116,20 +2119,21 @@
                    version="3.0">
         <doc xml:space="preserve"
              filename="pidgin/prefs/pidgincredentialproviderrow.h"
-             line="63">Creates a new #PidginCredentialProviderRow instance.</doc>
+             line="65">Creates a new #PidginCredentialProviderRow instance.</doc>
         <source-position filename="pidgin/prefs/pidgincredentialproviderrow.h"
-                         line="74"/>
+                         line="77"/>
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="pidgin/prefs/pidgincredentialproviderrow.h"
-               line="69">The new #PidginCredentialProviderRow instance.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+               line="71">The new
+         instance.</doc>
+          <type name="CredentialProviderRow" c:type="GtkWidget*"/>
         </return-value>
@@ -2835,8 +2839,8 @@
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="pidgin/pidgindisplaywindow.h"
-               line="60">The new #PidginDisplayWindow instance.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+               line="60">The new instance.</doc>
+          <type name="DisplayWindow" c:type="GtkWidget*"/>
         </return-value>
         <parameters>
           <parameter name="application"
@@ -3163,8 +3167,8 @@
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="pidgin/pidgininfopane.h"
-               line="60">The new #PidginInfoPane instance.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+               line="60">The new instance.</doc>
+          <type name="InfoPane" c:type="GtkWidget*"/>
         </return-value>
       </constructor>
       <method name="get_child"
@@ -3395,7 +3399,7 @@
           <doc xml:space="preserve"
                filename="pidgin/pidginkeypad.h"
                line="57">The new instance.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+          <type name="Keypad" c:type="GtkWidget*"/>
         </return-value>
       </constructor>
       <method name="set_key_capture_widget"
@@ -3478,7 +3482,7 @@
           <doc xml:space="preserve"
                filename="pidgin/pidginmessage.h"
                line="59">The new instance.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+          <type name="Message" c:type="GtkWidget*"/>
         </return-value>
         <parameters>
           <parameter name="message"
@@ -3586,8 +3590,8 @@
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="pidgin/prefs/pidginnetworkprefs.h"
-               line="58">The new #PidginNetworkPrefs instance.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+               line="58">The new instance.</doc>
+          <type name="NetworkPrefs" c:type="GtkWidget*"/>
         </return-value>
       </constructor>
     </class>
@@ -3735,7 +3739,7 @@
           <doc xml:space="preserve"
                filename="pidgin/pidginnotification.h"
                line="74">The new instance.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+          <type name="Notification" c:type="GtkWidget*"/>
         </return-value>
         <parameters>
           <parameter name="notification" transfer-ownership="none">
@@ -3885,9 +3889,9 @@
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="pidgin/pidginnotificationaddcontact.h"
-               line="66">The new #PidginNotificationAddContact
+               line="66">The new
          instance.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+          <type name="NotificationAddContact" c:type="GtkWidget*"/>
         </return-value>
         <parameters>
           <parameter name="notification" transfer-ownership="none">
@@ -3941,9 +3945,9 @@
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="pidgin/pidginnotificationauthorizationrequest.h"
-               line="66">The new #PidginNotificationAuthorizationRequest
-         instance.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+               line="66">The
+         new instance.</doc>
+          <type name="NotificationAuthorizationRequest" c:type="GtkWidget*"/>
         </return-value>
         <parameters>
           <parameter name="notification" transfer-ownership="none">
@@ -4006,12 +4010,13 @@
              line="60">Creates a new #PidginNotificationConnectionError instance that will display
 @notification.</doc>
         <source-position filename="pidgin/pidginnotificationconnectionerror.h"
-                         line="72"/>
+                         line="73"/>
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="pidgin/pidginnotificationconnectionerror.h"
-               line="67">The new instance.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+               line="67">The new
+         instance.</doc>
+          <type name="NotificationConnectionError" c:type="GtkWidget*"/>
         </return-value>
         <parameters>
           <parameter name="notification" transfer-ownership="none">
@@ -4063,8 +4068,8 @@
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="pidgin/pidginnotificationlink.h"
-               line="64">The new #PidginNotificationLink instance.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+               line="64">The new instance.</doc>
+          <type name="NotificationLink" c:type="GtkWidget*"/>
         </return-value>
         <parameters>
           <parameter name="notification" transfer-ownership="none">
@@ -4114,8 +4119,8 @@
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="pidgin/pidginnotificationlist.h"
-               line="59">The new #PidginNotificationList instance.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+               line="59">The new instance.</doc>
+          <type name="NotificationList" c:type="GtkWidget*"/>
         </return-value>
       </constructor>
     </class>
@@ -4161,8 +4166,8 @@
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="pidgin/pidginpluginsmenu.h"
-               line="56">The new #PidginPluginsMenu instance.</doc>
-          <type name="Gio.MenuModel" c:type="GMenuModel*"/>
+               line="56">The new instance.</doc>
+          <type name="PluginsMenu" c:type="GMenuModel*"/>
         </return-value>
       </constructor>
     </class>
@@ -4232,7 +4237,7 @@
           <doc xml:space="preserve"
                filename="pidgin/pidginpresenceicon.h"
                line="61">The new presence icon.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+          <type name="PresenceIcon" c:type="GtkWidget*"/>
         </return-value>
         <parameters>
           <parameter name="presence"
@@ -4475,12 +4480,13 @@
         <doc xml:space="preserve"
              filename="pidgin/pidginprotocolchooser.h"
              line="54">Creates a drop down for a user to select a protocol from.</doc>
-        <source-position filename="pidgin/pidginprotocolchooser.h" line="64"/>
+        <source-position filename="pidgin/pidginprotocolchooser.h" line="65"/>
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="pidgin/pidginprotocolchooser.h"
-               line="59">The protocol chooser drop down.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+               line="59">The protocol chooser
+         drop down.</doc>
+          <type name="ProtocolChooser" c:type="GtkWidget*"/>
         </return-value>
       </constructor>
       <method name="get_protocol"
@@ -4581,8 +4587,8 @@
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="pidgin/prefs/pidginproxyprefs.h"
-               line="58">The new #PidginProxyPrefs instance.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+               line="58">The new instance.</doc>
+          <type name="ProxyPrefs" c:type="GtkWidget*"/>
         </return-value>
       </constructor>
     </class>
@@ -4624,7 +4630,7 @@
           <doc xml:space="preserve"
                filename="pidgin/pidgintypinglabel.h"
                line="60">The new widget.</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+          <type name="TypingLabel" c:type="GtkWidget*"/>
         </return-value>
         <parameters>
           <parameter name="conversation" transfer-ownership="none">
@@ -4745,7 +4751,7 @@
           <doc xml:space="preserve"
                filename="pidgin/pidginui.h"
                line="60">The new instance.</doc>
-          <type name="Purple.Ui" c:type="PurpleUi*"/>
+          <type name="Ui" c:type="PurpleUi*"/>
         </return-value>
       </constructor>
     </class>
Summary ID
Annotate Pidgin constructors that return base types
In that case, annotating the actual type will help bindings use the correct type.
11bb1a8d28d63bd1ec7e8603a01032019ec47f4b
grim
  1. Great work, thanks!!

  2. 
      
grim
Review request changed
Status:
Completed