aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk/empathy-individual-store.c
Commit message (Collapse)AuthorAgeFilesLines
* tpaw-utils: move EMP_STR_EMPTY to tp-aw and rename itMarco Barisione2013-08-201-1/+2
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=699492
* Make individual_store_find_contact and free_iters protectedChandni Verma2013-08-141-10/+11
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=703487
* Reorder header inclusions accordingly to the Telepathy coding styleEmanuele Aina2013-04-021-3/+3
| | | | | | | | | | | | Sort by: • "config.h" • API declarations, if any • public libraries • internal headers, alphabetically sorted (mostly) http://telepathy.freedesktop.org/wiki/Style#A.23includes https://bugzilla.gnome.org/show_bug.cgi?id=697076
* Use a flat namespace for internal includesEmanuele Aina2013-04-011-2/+2
| | | | | | | | Directly add the libempathy, libempathy-gtk and extensions directories to the include search path. This decouples header inclusions from their location and helps when reorganizing the source files layout. https://bugzilla.gnome.org/show_bug.cgi?id=696950
* Use double quotes for all internal headersEmanuele Aina2013-04-011-2/+2
| | | | | | | This makes a bit more obvious which headers come from public libraries and which ones come from uninstalled utility libraries. https://bugzilla.gnome.org/show_bug.cgi?id=696950
* Drop unused/redundant header inclusionsEmanuele Aina2013-03-281-10/+0
| | | | | | | With the help of the script posted at http://stackoverflow.com/a/7135530 and some manual fixes, drop the unused or redundant #include directives. https://bugzilla.gnome.org/show_bug.cgi?id=696718
* include telepathy-glib.hGuillaume Desmottes2012-09-171-1/+1
| | | | | tp-glib 1.0 will enforce to only include telepathy-glib.h so best doing it to reduce the delta with the future stable branch.
* Use new tp_account_* gettersGuillaume Desmottes2012-07-161-2/+2
|
* factor out empathy_individual_get_client_types()Guillaume Desmottes2012-05-251-44/+2
|
* individual_personas_changed_cb: remove debug messageGuillaume Desmottes2012-03-091-3/+0
| | | | The individual manager already sends the exact same debugging message.
* Don't flood logs when individials don't have avatarsGuillaume Desmottes2012-03-091-3/+9
|
* Remove flooding debug messagesGuillaume Desmottes2012-03-091-25/+0
| | | | Those messages flood the debug window and never helped me finding any bug.
* individual-store: contacts in Favourite People are not UngroupedDanielle Madeley2012-01-271-47/+53
| | | | | | | Rearrange the code that puts people into groups a bit in a way I think makes more sense. Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=668796
* add initial_loading() as a virtual methodGuillaume Desmottes2011-11-241-8/+5
| | | | | | This allows us to remove setup_idle_id as a protected variable. https://bugzilla.gnome.org/show_bug.cgi?id=663387
* add empathy_individual_store_refresh_individual() as a protected methodGuillaume Desmottes2011-11-241-4/+18
| | | | | | This allows us to remove show_active as a protected variable. https://bugzilla.gnome.org/show_bug.cgi?id=663387
* Abstract the individual storeGuillaume Desmottes2011-11-241-167/+4
| | | | | | | We now have EmpathyIndividualStoreManager which implements the store using EmpathyIndividualManager as its contact source. https://bugzilla.gnome.org/show_bug.cgi?id=663387
* individual-store: expose some attributes and methods as 'protected'Guillaume Desmottes2011-11-241-30/+28
| | | | | | This will be needed when abstracting EmpathyIndividualStore. https://bugzilla.gnome.org/show_bug.cgi?id=663387
* Use _unref instead of _free _destroy when possible.unrefXavier Claessens2011-11-161-3/+3
| | | | | | | | | | | Replace g_(ptr_)array_free (foo, TRUE) and g_hash_table_destroy with respectively g_(ptr_)array_unref (foo) and g_hash_table_unref. I used this command to generate this patch: for f in `find -name "*.c"`; do sed -i $f -re 's/g_ptr_array_free \(([^ ,]+), TRUE\)/g_ptr_array_unref \(\1\)/'; done See Danielle's blog for explanation of possible bug _free can do: http://blogs.gnome.org/danni/2011/11/16/mistakes-with-g_value_set_boxed/
* empathy_individual_store_remove_individual: use ↵Guillaume Desmottes2011-11-141-1/+1
| | | | | | | | EMPATHY_INDIVIDUAL_STORE_COL_NAME https://bugzilla.gnome.org/show_bug.cgi?id=663387 https://bugzilla.gnome.org/show_bug.cgi?id=663763
* individual-store: use self->priv patternGuillaume Desmottes2011-11-141-168/+97
| | | | | | https://bugzilla.gnome.org/show_bug.cgi?id=663387 https://bugzilla.gnome.org/show_bug.cgi?id=663763
* factor out empathy_individual_can_audio_video_call()Guillaume Desmottes2011-10-181-53/+4
| | | | | | Also allow caller to get a ref on the EmpathyContact supporting audio/video. https://bugzilla.gnome.org/show_bug.cgi?id=661981
* Remove unused variables [-Werror=unused-but-set-variable]Alban Crequy2011-09-151-2/+0
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=658650
* individual-store: store GtkTreeIter rather than GtkTreeRowReference in the cacheGuillaume Desmottes2011-09-151-64/+21
| | | | | | GtkTreeRowReference keeps a ref on the store introducing a ref cycle. https://bugzilla.gnome.org/show_bug.cgi?id=658650
* individual_store_remove_individual: ensure that the store stays alive during ↵Guillaume Desmottes2011-09-091-0/+7
| | | | | | the process https://bugzilla.gnome.org/show_bug.cgi?id=658644
* individual-store: use Folks directly to watch is-favourite changesGuillaume Desmottes2011-09-071-20/+18
| | | | | We already use it to check if a contact is in favourite or not. The contact manager should probably be killed at some point any way.
* Fixes a segfault in empathy-individual-store.cCosimo Alfarano2011-09-021-0/+8
| | | | | | | | | | | When a contact cannot be obtained from an individual, icon_name and contact will be NULL, leading to g_hash_table_lookup for a NULL-value, segfaulting. Although there's probably an underlying error somewhere, the NULL case should be handled, being a valid return value for the method; https://bugzilla.gnome.org/show_bug.cgi?id=657914
* coding style fixEMPATHY_3_1_90Guillaume Desmottes2011-08-291-2/+2
|
* contact list: optimize loading contactsAlban Crequy2011-08-291-90/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous algorithm was O(n^2) with the number of contacts. Each contact can be in several groups, so when a contact is added or updated, we iterated over all the contact list to find the rows representing the contact. When connecting to an account and getting all the contacts, this was too slow. The groups are stored in the GtkTreeStore and suffer from the same problem: to look for a group, it needed to iterate on all contacts. The new algorithm maintains a hash from the contact to the list of rows representing it, and another hash from the group to the row representing it. On Empathy 2.30.2 when tested on MeeGo with 300 contacts, loading the contacts is faster: roughly 9 seconds before the patch, 3 seconds after. On Empathy 3.1.5, it seems to load in background so I don't know how to measure the time lost in GtkTreeStore. But before the patch, GProf says 23% is lost in individual_store_find_contact_foreach(), and after the patch it is not visible anymore. And "time" says we win 5s of CPU when starting+quitting Empathy: Before the patch: After the patch: real 0m23.485s real 0m23.460s user 0m13.805s user 0m8.305s sys 0m0.308s sys 0m0.316s https://bugzilla.gnome.org/show_bug.cgi?id=657086
* Don't assume that all FolksIndividuals have a corresponding EmpathyContact.Travis Reitter2011-08-221-16/+23
| | | | | | | Closes: bgo#653599 - Empathy shouldn't assume all TpfPersonas contain a valid TpContact Signed-off-by: Jonny Lamb <jonnylamb@gnome.org>
* Don't assume that all TpfPersonas contain valid TpContactsTravis Reitter2011-08-221-23/+34
| | | | | | | Helps: bgo#653599 - Empathy shouldn't assume all TpfPersonas contain a valid TpContact Signed-off-by: Jonny Lamb <jonnylamb@gnome.org>
* individual-store: keep track of the number of events associated with each rowGuillaume Desmottes2011-06-081-0/+1
|
* Only retrieve server-stored groups for Individuals with TpContacts.Travis Reitter2011-06-071-12/+13
| | | | Helps: bgo#648822 - Port Empathy to Folks 0.5.1
* Adapt to API change in folks_group_details_get_groups().Travis Reitter2011-06-071-7/+14
| | | | Helps: bgo#648822 - Port Empathy to Folks 0.5.1
* Adapt to API break in folks_individual_get_personas.Travis Reitter2011-06-071-42/+79
| | | | Helps: bgo#648822 - Port Empathy to Folks 0.5.1
* Don't conflate TpfPersona and FolksPersona.Travis Reitter2011-06-071-2/+2
|
* export individual_store_add_individual_and_connect and ↵Guillaume Desmottes2011-06-011-2/+2
| | | | individual_store_remove_individual_and_disconnect
* individual_store_get_individual_status_icon_with_icon_name: look in the ↵Guillaume Desmottes2011-05-021-1/+6
| | | | cache before creating new pixbuf
* Fix warnings from GCC 4.6 about variables that are set but not used.Kjartan Maraas2011-03-171-23/+0
|
* Adjust for Folks PresenceOwner -> PresenceDetails renameTravis Reitter2011-03-151-17/+17
| | | | | Fixes bgo#644470 - Empathy needs to catch up with Folks interface name change (API/ABI breaks)
* Adjust for Folks Groupable -> GroupDetails renameTravis Reitter2011-03-151-1/+2
| | | | | Helps bgo#644470 - Empathy needs to catch up with Folks interface name change (API/ABI breaks)
* Adjust for Folks Favouritable -> FavouriteDetails renameTravis Reitter2011-03-151-1/+2
| | | | | Helps bgo#644470 - Empathy needs to catch up with Folks interface name change (API/ABI breaks)
* Adjust for Folks Aliasable -> AliasDetails renameTravis Reitter2011-03-151-12/+14
| | | | | Helps bgo#644470 - Empathy needs to catch up with Folks interface name change (API/ABI breaks)
* Bug 637151 — Hide the user Individual from the contact listPhilip Withnall2011-02-181-2/+2
| | | | | | | | | | Generalise the mechanism used to determine whether a persona is to be displayed by Empathy to also take into account whether the persona is the user and, if so, whether they're in the contact list. This bumps the libfolks dependency to 0.3.5. Closes: bgo#637151
* Adjust for FolksHasPresence -> FolksPresenceOwnerTravis Reitter2011-02-011-14/+17
| | | | Fixes bgo#637847.
* Bug 637097 — Port to latest folks API changesPhilip Withnall2010-12-141-12/+15
| | | | | Catch up with three interface renamings which have happened in folks master. This bumps Empathy's folks dependency to 0.3.3. Closes: bgo#637097
* properly manage the reference of the pixbuf returned by ↵Guillaume Desmottes2010-11-241-0/+1
| | | | empathy_pixbuf_avatar_from_individual_scaled_finish
* individual_avatar_pixbuf_received_cb: don't leak the itersGuillaume Desmottes2010-11-181-0/+2
|
* factor out free_itersGuillaume Desmottes2010-11-181-7/+10
|
* individual_store_name_sort_func: don't leak namesGuillaume Desmottes2010-11-181-0/+2
|
* empathy-individual-store: only check for presence in presence-enabled personasJonny Lamb2010-11-161-1/+7
| | | | Signed-off-by: Jonny Lamb <jonnylamb@gnome.org>
* contact: enable showing a phone next to contacts who are on phonesJonny Lamb2010-11-161-0/+38
| | | | | | The future! Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
* individual_store_contact_sort: account is not supposed to be NULLGuillaume Desmottes2010-11-151-0/+3
|
* Stop using removed Individual convenience methods from folksPhilip Withnall2010-11-131-20/+22
| | | | | | | They were removed from folks with commit def47dffa31a95ec6bd333f43c69822416098283. This doesn't require a dependency bump, since they're being replaced with calls to methods which exist in folks 0.3.1. See: bgo#629078. Closes: bgo#634754
* Allow to drop contacts on the group names (#619961)Vitaly Minko2010-10-281-1/+1
|
* Use Folks to check the ability to remove Individuals in the store & view.Travis Reitter2010-10-161-10/+4
| | | | Helps bgo#625969.
* Add individuals to the EmpathyIndividualStore before updating themPhilip Withnall2010-09-151-1/+2
| | | | | | | When adding a new contact _with_ an alias set, the code in EmpathyIndividualStore was listening to (and acting on) property notifications (such as alias changes) for the individual before adding the individual to the store, resulting in duplicate contact listings. Closes: bgo#629380
* Ensure we disconnect from signals on Individuals' Personas as they're removedPhilip Withnall2010-09-021-34/+48
| | | | | | | | 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
* Fix the audio/video icon in the contact listPhilip Withnall2010-09-011-31/+51
| | | | Closes: bgo#628421
* Fix the "Show Protocols" option with linked contactsPhilip Withnall2010-08-261-1/+1
|
* Ensure we disconnect signals from all Personas in an IndividualPhilip Withnall2010-08-191-19/+58
|
* Allow cancellation of avatar load operationsPhilip Withnall2010-08-191-9/+48
| | | | | | | Automatically cancel all pending avatar load operations when disposing of an EmpathyIndividualStore. This prevents crashes when linking individuals in the case that the EmpathyIndividualStore in the linking dialogue gets notified of the new linked individual just before it's destroyed.
* Minor coding style fixes in EmpathyIndividual[Store|View]Philip Withnall2010-08-091-2/+2
|
* Fix capability change notification in the EmpathyIndividualStorePhilip Withnall2010-08-091-6/+35
| | | | Closes: bgo#626162
* Fix constness of various variables and parametersPhilip Withnall2010-08-051-2/+2
|
* Fix missing entries in switch statementsPhilip Withnall2010-08-051-0/+3
| | | | Added missing default cases and missing enum cases.
* Fix memory corruption introduced by not removing a weak pointerPhilip Withnall2010-08-051-17/+39
| | | | | | | This rewrites the weak pointer code for active individuals in EmpathyIndividualStore to use weak references, which has the added benefit of meaning we can remove the timeout if the individual disappears, rather than executing it anyway and just bailing out. Closes: bgo#625641
* refactored show_offline property to the viewFelix Kaser2010-08-031-103/+3
| | | | | | the show offline property was moved from the individual store to the individual view. this allows to easily and automatically search through offline contacts as well.
* fixing a method name typoFelix Kaser2010-08-031-2/+2
|
* Merge remote branch 'pwith/folks-integ-rebase1-fixes-rebase1' into folks-fixesTravis Reitter2010-07-221-8/+19
|
* Re-add support for the "People Nearby" groupPhilip Withnall2010-07-211-4/+12
|
* Calculate contact capabilities ourselves.Travis Reitter2010-07-211-12/+33
| | | | | The libfolks Capabilities interface will be removed temporarily, so we can't rely upon it for now.
* Enclose a non-trivial expression in () in an assignment.Travis Reitter2010-07-211-1/+1
|
* Also sort the IndividualStore by underlying protocol and account ID.Travis Reitter2010-07-211-3/+24
|
* Don't enclose trivial blocks in {}.Travis Reitter2010-07-211-33/+11
|
* Use explicit '!= NULL' for pointer boolean expressions.Travis Reitter2010-07-211-2/+2
|
* Don't leak references to the contacts returned from ↵Travis Reitter2010-07-211-0/+4
| | | | empathy_contact_dup_from_folks_individual().
* Add 'dup' to the names of empathy_contact_from_folks_individual() and ↵Travis Reitter2010-07-211-2/+2
| | | | folks_individual_from_empathy_contact() to make it clear that the return value has been referenced.
* Use the gio async pattern for fetching Individuals' avatarsTravis Reitter2010-07-211-10/+27
|
* Take advantage of the tp_clear_* utility functions.Travis Reitter2010-07-211-23/+5
|
* Use explicit boolean expressions for if-conditionals, according to Telepathy ↵Travis Reitter2010-07-211-1/+1
| | | | style.
* Add some more validation when sorting the contact list.Travis Reitter2010-07-211-8/+10
|
* Allow changing of individuals' aliasesPhilip Withnall2010-07-211-3/+1
|
* Fix some referencing bugs with the IndividualStore and IndividualViewPhilip Withnall2010-07-211-5/+2
|
* Follow the new tree store insertion convention used by the contact list ↵Travis Reitter2010-07-211-7/+8
| | | | store in the individual store.
* Finish adding favourites supportPhilip Withnall2010-07-211-20/+21
|
* Support contact removalTravis Reitter2010-07-211-2/+8
|
* Use the new FolksFavourite interface for favourites supportPhilip Withnall2010-07-211-3/+1
|
* Avoid potential segfaults if there are no contacts on the first pass.Travis Reitter2010-07-211-5/+8
|
* Re-implement the context menu for IndividualsTravis Reitter2010-07-211-23/+18
|
* Implement avatar support.Travis Reitter2010-07-211-10/+23
|
* Base the contact list around libfolks metacontacts. Not yet to feature-parityTravis Reitter2010-07-211-0/+1830
with mainline Empathy.