Hello. I am currently subclassing McdAccountManagerSso, and want to override the _get method; my new method wants to chain up to the original one, having stuffed in an extra entry into the keyfile. But I can't chain up, because McpAccountStorageIface is hidden, and the vtable is filled in using _implement_foo functions. This seems completely pointless to me. The main rationale for this pattern in tp-glib's generated interfaces is to avoid reorderings in the spec affecting ABI; this does not apply to a hand-written interface in Mission Control. This wouldn't take all that long, but I don't have time right now.
I'm told adding pointers to the end of a GInterface (i.e. increasing the size) is considered to be a compatible change (unlike the corresponding change to a class!), so none of these GInterfaces really need to be hidden (or have ABI padding, for that matter).
I have started to make this change in this branch: http://git.collabora.co.uk/?p=user/wjt/telepathy-mission-control-wjt.git;a=shortlog;h=refs/heads/fd.o-32914-unhide-McpAccountStorageIface It is on top of some other branches mainly because I am lazy.
A belated r+ for your branch, except that commit 3/3 should be amended to say McpAccountStorageIface, not McpAccountManagerIface. (For the record: it's correct that McpAccountManagerIface is in implementation.h, and likewise for DispatchOperation and Request, because they're meant to only ever be implemented by MC itself.) I have a branch to do the same with the remaining interfaces, and also improve documentation; I'll clone a bug.
Released in 5.7.11
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.