Empathy v KTP IRC handling
Diane Trout
diane at ghic.org
Sat Jan 23 07:51:20 UTC 2016
Hi,
I was experimenting a bit with Empathy and noticed a big difference in
how Empathy and KTP handle IRC connections.
Empathy doesn't auto open active telepathy-idle channels, unlike KTP
which does. (If you have many channels open it can get to be hard to
find the right tab)
It appears Empathy's solution was to provide a menu entry in the
contact list to show (at least some) of the IRC channels. (I'm not sure
if a currently invisible but active channel can trigger mention
notifications in Empathy)
Considering KTP currently only has tabs it seems like it'd be nice to
hide or at least prevent auto-opening IRC chats.
For my experiment I did the patch below which just blocked ktp-text-ui
from handling IRC channels. I feel like a better thing would either be
to have an option to hide any group chat unless mentioned or require
the user to open rooms. (While still allowing group chat invites to go
through)
(One of the really annoying things is if you're running Polari [1] and
close IRC tabs in ktp-text-ui, it'll just reopen them a few moments
later.)
Diane
[1] https://wiki.gnome.org/Apps/Polari
[2] Heavy handed ignore IRC channels. (This is a terrible solution I
just wanted to see if I found the right place to put a better solution)
--- a/app/telepathy-chat-ui.cpp
+++ b/app/telepathy-chat-ui.cpp
@@ -197,9 +197,13 @@ void TelepathyChatUi::handleChannels(const
Tp::MethodInvocationContextPtr<> & co
}
}
- //if it's a group chat, we've been invited to. Join it
- if (textChannel->groupLocalPendingContacts().contains(textChannel-
>groupSelfContact())) {
- textChannel->groupAddContacts(QList<Tp::ContactPtr>() <<
textChannel->groupSelfContact());
+ if (textChannel->connection()->cmName() != "idle") {
+ //if it's a group chat, we've been invited to. Join it
+ if (textChannel-
>groupLocalPendingContacts().contains(textChannel->groupSelfContact()))
{
+ textChannel->groupAddContacts(QList<Tp::ContactPtr>() <<
textChannel->groupSelfContact());
+ }
+ } else {
+ tabFound = true;
}
//if there is currently no tab containing the incoming channel.
More information about the KDE-Telepathy
mailing list