Version: 0.12.2 (using KDE KDE 3.5.4) Installed from: Gentoo Packages When entering a Jabber groupchat the history for the past few dozen lines or so that the server provides seems to be filtered so that it only shows the lines from people who are in the room at the time of joining it. This makes the history nearly useless as significant portions of it may be missing depending on who is currently in the room. It should show the entire history that is given, regardless of who may or may not be in the room at the time of joining it. It had this behaviour in previous versions but it seems to have been changed in one of the 0.12.x releases.
This issue is still occurring in 0.12.3 and I just happened to look at .xsession-errors recently and noticed that whenever I enter a jabber groupchat there is a large number of warnings printed like the following: kopete (jabber): WARNING: [virtual void JabberGroupContact::handleIncomingMessage(const XMPP::Message&)] the contact is not in the list : lounge@rooms.jabber.org.au/Clax kopete (jabber): WARNING: [virtual void JabberGroupContact::handleIncomingMessage(const XMPP::Message&)] the contact is not in the list : lounge@rooms.jabber.org.au/Aleksiss These messages come from the jabber groupchat history and are being ignored by kopete because the users are not currently in the room.
After some investigation I discovered that all the code to do want I want is there and works, however somehow an erroneous 'return' was placed directly before that code so the messages were never seen. Perhaps there was a reason to skip the code, a memory leak or other issues, I don't know. Removing the return statement brings back the old behaviour and jabber groupchat history is once again working as it should. I will attach a patch.
Created attachment 18872 [details] Fixes jabber groupchat history
SVN commit 667758 by mattr: commit patch from bug 135211 to fix that bug. Show all contacts history for jabber groupchats. Thanks for the patch! BUG: 135211 M +1 -1 jabbergroupcontact.cpp --- branches/KDE/3.5/kdenetwork/kopete/protocols/jabber/jabbergroupcontact.cpp #667757:667758 @@ -181,7 +181,7 @@ if ( !subContact ) { kdWarning (JABBER_DEBUG_GLOBAL) << k_funcinfo << "the contact is not in the list : " << message.from().full()<< endl; - return; + /** * We couldn't find the contact for this message. That most likely means * that it originated from a history backlog or something similar and