Hi! KDE 3.3 introduced a common DCOP interface for IM applications [1] (originally the Kopete DCOP interface) which allows DCOP aware applications to talk to any implementing IM app through a proxy library [2].
Use cases are sending a file to an IM contact directly from Konqueror's context menu, seeing the online status of your IM contacts in other KDE PIM applications, possibly games sending invitations for networked playing. As Licq is my choice for instant messaging I thought I'd give it a try and implement it for Licq's KDE GUI plugin [3] I am not sure I used all this Licq specific code correctly, especially thing along PPIDs. At this state only part of the interface API is fully implemented and I implemented the methods that involve sending something to a user contact (message, file transfer, chat request) non-automatically, i.e. the appropriate Licq send window is filled with the data from the DCOP call, but the user has still to send it manually. The patch consists of three new files, one being a copy of the KDE interface header so the compilation does not depend on it being present (e.g. KDE < 3.3) and a diff of some qt-gui plugin files against your anonymous CVS. All new code should be properly in side #ifdef USE_KDE blocks, the part for the KDE addressbook interaction is additionally guarded for a specific KDE version. The address book integration is needed to associate a Licq user with a KDE addressbook entry, because the DCOP interface uses addressbook IDs for addressing the target contact. The mapping of Licq identifiers (ICQUser::IdString()) to KABC IDs is saved in a separate file, stored in the directory a KDE application named licq would use (usually .kde/share/apps/licq/) The DCOP interface itself works independend of the KDE version running, the integration requires 3.3 or newer and an application .desktop file with two additional lines (find my version of it attached) Compilation requires to set to env variables before make DCOPIDL (pointing to the dcopidl executable) and DCOPIDL2CPP (pointing to the dcopidl2cpp executable), I guess someone with knowledge of auto* magic could automate that. You can contact me on- or offlist if you have any questions/comments. Thank you for your great work on Licq! Cheers, Kevin [1] http://developer.kde.org/documentation/library/3.3-api/interfaces/html/classKIMIface.html [2] http://developer.kde.org/documentation/library/3.3-api/interfaces/html/classKIMProxy.html [3] http://www.sbox.tugraz.at/home/v/voyager/kdegui-dcop.tar.gz -- Kevin Krammer <[EMAIL PROTECTED]> Qt/KDE Developer, Debian User Moderator: www.mrunix.de (German), www.qtforum.org
licq.desktop
Description: application/desktop
pgpTrg8jNHOGv.pgp
Description: PGP signature