Instead of hardcoding one server, let the connection manager try doing
SRV resolution and if the resolution fails, let it try a list of fallback
servers. Note that talkx.l.google.com is now used instead of
talk.google.com. This is the DNS used in the Windows client, this DNS
returns a list of IPs instead of 1. This also enable usage of HTTPS
proxy when falling back to port 443 with old_ssl.
Philip Withnall [Tue, 7 Sep 2010 09:46:12 +0000 (10:46 +0100)]
Remove calls to gtk_dialog_set_has_separator() if building against GTK+ 3
gtk_dialog_set_has_separator() has been removed in GTK+ 3, but can't be
removed (or the property's default value changed) in GTK+ 2 without breaking
API. This adds a wrapper macro to keep the calls when building against GTK+ 2,
and remove them when building against GTK+ 3.
Philip Withnall [Wed, 1 Sep 2010 10:05:20 +0000 (11:05 +0100)]
Add a confirmation dialogue to the unlink process
This makes it harder to accidentally remove a linked Individual now that the
“Unlink” button is easier to find, and also makes it more obvious that
Empathy hasn't just crashed when unlinking. Helps: bgo#628377
Philip Withnall [Thu, 2 Sep 2010 17:29:50 +0000 (18:29 +0100)]
Update the Edit dialogue on contact linking or unlinking
Ensure any open Edit dialogues are:
• closed, if they're editing the details for a meta-contact which is then
unlinked; or
• reloaded to show the details of the new meta-contact, if they're editing
the details for a contact which is then linked.
Philip Withnall [Thu, 2 Sep 2010 16:29:50 +0000 (17:29 +0100)]
Update the Information dialogue on contact linking or unlinking
Ensure any open Information dialogues are:
• closed, if they're showing the details for a meta-contact which is then
unlinked; or
• reloaded to show the details of the new meta-contact, if they're showing
the details for a contact which is then linked.
Philip Withnall [Thu, 2 Sep 2010 16:28:38 +0000 (17:28 +0100)]
Handle the EmpathyIndividualWidget disappearing during an async details call
The EmpathyIndividualWidget may be destroyed between starting and finishing
an async call to get contact details. This patch prevents the finishing
callback from accessing private data which may have been freed.
Philip Withnall [Thu, 2 Sep 2010 15:39:09 +0000 (16:39 +0100)]
Listen to FolksIndividual::removed in EmpathyIndividualWidget
In certain cases, a tooltip will be updated on the contact list when unlinking
a meta-contact (reproducable with a meta-contact of meta-contacts). In order
to prevent an individual table from getting stuck in the
EmpathyIndividualWidget in the tooltip, EmpathyIndividualWidget needs to
connect to FolksIndividual::removed to be updated when the Individual is
removed or replaced.
Philip Withnall [Thu, 2 Sep 2010 15:02:01 +0000 (16:02 +0100)]
Add a heuristic to prefer audio- and video-capable Personas when calling
When choosing which Persona out of an Individual to start an audio or video
call to, given a choice between two Personas of equal presence, choose the
one which is capable of both audio and video calls over the one which is
capable of only one of the two. This is because clients which can do both
types of call are generally more featureful than those which can only do one
type. Helps: bgo#628338
Philip Withnall [Thu, 2 Sep 2010 12:26:31 +0000 (13:26 +0100)]
Add empathy_contact_dup_best_for_action()
This takes a FolksIndividual and returns an EmpathyContact corresponding to
the FolksPersona in the Individual which is most suited to having a given
action performed on it. Helps: bgo#628338
Philip Withnall [Thu, 2 Sep 2010 09:58:41 +0000 (10:58 +0100)]
Ensure we disconnect from signals on Individuals' Personas as they're removed
EmpathyIndividualStore connects to some signals on all of the (Telepathy)
Personas in each Individual it stores. If an Individual changes its set of
Personas, some of those signals might end up never getting disconnected. This
fixes that by listening to FolksIndividual::personas-changed and disconnecting
signals as appropriate. Closes: bgo#628153
Philip Withnall [Wed, 1 Sep 2010 13:59:03 +0000 (14:59 +0100)]
Don't unnecessarily remove Individuals if Individual IDs have been reused
When linking and unlinking, it's possible for the linked Individual to have
the same ID as one of its component Individuals (before linked or once
unlinked). If two such Individuals with the same ID are added and removed at
the same time (as could [only] happen during linking or unlinking),
EmpathyIndividualManager should do the Individual removals before the
additions, in order to prevent one of the Individuals getting clobbered. Closes: bgo#627819
Philip Withnall [Wed, 1 Sep 2010 17:30:08 +0000 (18:30 +0100)]
Bug 628133 — Linking dialog's live search should copy the one from the roster
When launching a linking dialogue from EmpathyIndividualView, copy the view's
live search text to the EmpathyIndividualView in the linking dialogue. Closes: bgo#628133
Felix Kaser [Wed, 1 Sep 2010 16:19:18 +0000 (17:19 +0100)]
do not set the overridden flag when creating
when we are creating a new account we should not set the
display-name-overridden flag, since then changes in
the account details wont update the name in the accounts tree.
Philip Withnall [Wed, 1 Sep 2010 13:32:08 +0000 (14:32 +0100)]
Remove the expand groups idle handler when destroying an EmpathyIndividualView
This prevents the idle handler from being run after destruction and crashing
due to referencing the EmpathyIndividualView's private memory which has
already been freed.
Philip Withnall [Wed, 1 Sep 2010 13:13:07 +0000 (14:13 +0100)]
Bug 628106 — Groups are not expanded when reconnecting
Ensure that the list of groups to expand is cleared when going offline, so
that it can be freshly created when we come back online again. Closes: bgo#628106
Philip Withnall [Wed, 1 Sep 2010 11:59:03 +0000 (12:59 +0100)]
Ensure all persona tables are removed from EmpathyIndividualWidget
In the case that EmpathyIndividualWidget is going from showing Personas to
showing an Individual table, ensure that all persona tables are removed from
the widget, including those for Personas who're being removed from the
Individual. Closes: bgo#628481
contact: get info from the tp-contact in constructed (#628315)
Doing it in set_property is racy:
- The tp-contact property is set. We use the contact to set the capabilities
of the contact
- The "capabilities" property has not be defined so GLib sets its default
value (unknown) and so override the real capabilities of the contact.
Mike Ruprecht [Wed, 1 Sep 2010 02:35:11 +0000 (21:35 -0500)]
Fix crash in log_manager_got_chats_cb.
When the log window is opened through the contact list with the previous
conversations menu item, Empathy crashes due to there not being a currently
selected account when log_manager_got_chats_cb is called. This patch
adds a condition to check if there is a selected account before using it.