Source/AIContactController.m
2009-10-28 Include bookmarks in the contact controller's contactDict, so that a -contactEnumerator also contains them. By way of updating properly, fixes #13221.
2009-05-29 Don't move into the meta contact's groups, since this can be done automatically. Will revisit this later.
2009-05-25 When adding a contact to a meta contact, also move (not copy) them to the meta contact's groups. I think this is the expected behavior, when dragging into a meta contact, possible cross-group.
2009-05-23 Avoid infinite looping if the offlineGroup is called during updateListObject.
2009-05-16 AIContactLists shouldn't move their contents around directly. Move this logic to the contact controller.
2009-05-10 Make sure that bookmarks really end up in the right group on creation; fixes groups appearing when creating bookmarks with groups turned off
2009-05-11 Remove group contents serverside when removing the group, as a group delete in libpurple doesn't actually remove contents.
2009-05-10 Contact list support for moving contacts in multiple groups.
2009-05-07 `#define` cleanup
2009-04-24 Store list bookmarks in a dictionary instead of an array, keyed on their internal object ID.
2009-04-23 Contact Controller: Sort the group menu using the active sort controller. Also separate groups by contact list (main or detatched) that they're on.
2009-04-22 AIPreferenceControllerProtocol.h is commonly imported (>120 imports) and almost never changes (5 changes in the two years since it was created). Stick it in the prefix header
2009-04-04 Pesky little NSLog() that slipped in.
2009-04-04 Add an advanced status preference to "only count number of unread mentions for group chats", which causes the chat controller to only count group chats' mentions for the overall unread counts (status item, dock badger). Fixes #11850.
2009-03-29 Store flags and aliases for chats in the appropriate chats. Creates a new AIListContact cell for displaying in group chats, which prefixes the user with the character representing their status. As of yet, they aren't sorted by this order.
2009-03-28 Avoid passing nil here...
2009-03-28 Remove gratuitous assignment-as-boolean-expression use
2009-03-28 Assorted remote grouping related changes. .remoteGroupNames is now *actually* a copy property rather than just claiming to be, and various other things are (I think) more correct.
2009-03-18 Revert [23254]'s hatred of the {{{-setState}}} on NSMenuItems. The view menu is a mess this way; the checkmarks make it a lot easier to see what's going on (or explain to somebody what needs to occur). Refs #4740.
2009-03-16 Having a separate notification center for Adium leads to the possibility of accidentally using the wrong one, which has tripped me up on more than one occasion. This switches us over to using the default center.
2009-03-15 Restore the grouping of AIListBookmarks when toggling "Show Groups".
2009-03-15 Don't throw an exception if the bookmark doesn't initialize (its account is gone, etc).
2009-03-15 Another in the don't-return-mutable-storage-to-callers drive. This one is the `groups` property, nominated by David.
2009-03-15 Bookmarks are all autoreleased, whoops.
2009-03-15 Allow a list contact to be removed.
2009-03-15 Remove the old methods for iterating bookmarks, add an array to keep track of them. We were duplicating bookmarks like crazy trying to iterate improperly. Fixes bookmarks not getting properly set to a group and thus getting lost, since the method name when a group is set was changed recently.
2009-03-15 Objects should never ever EVER hand their private mutable arrays to other objects. Make an immutable copy and return that.
2009-03-14 {{{bookmarkDict}}} was completely pointless.
2009-03-14 Not sure why I duplicated code in [26251]. Look up existing list bookmarks properly.
2009-03-14 Correctly look up existing bookmarks by their name/account/creationdict not their internal ID (which can vary).
2009-03-14 This really does not look safe... fix it.
2009-03-14 Use API instead of duplicating code
2009-03-14 Improved assert
2009-03-14 Inspired by Zac fixing hasPrefix: use, fix it elsewhere in Adium
2009-03-14 Replace two isKindOfClass: calls with more appropriate ones
2009-03-14 Unnecessary typecheck
2009-03-14 Wheeeee :D
2009-03-14 Simplify offline group handling a lot by powering up restoreGrouping even more
2009-03-14 [AIListContact restoreGrouping] leveled up a bunch. No need for all this extra logic now
2009-03-09 Delete dead method
2009-03-09 Remove -addObject: and -removeObject: from AIContainingObject. They are not safe to use on most implementors of that protocol
2009-03-09 err. Right, this is what I meant
2009-03-09 Merge -removeAllContactsMatching:fromMetaContact: into its only callsite, and expand the associated notification delay a bit
2009-03-09 We already call -restoreGrouping here, that will do
2009-03-09 -restoreGrouping already does what we need, and avoids mutating metaContact.groups while enumerating it. Also delay notifications while we're removing things
2009-03-07 Spam update notifications less
2009-03-07 Synthesize useOfflineGroup and use the property to access it
2009-03-07 Use a temporary to avoid casting so much
2009-03-07 Remove weird comment spam from somewhere. AIContactController is now 1600 lines long :)
2009-03-07 Simplify
2009-03-07 Simplify, reduce API size
2009-03-07 Simplify
2009-03-07 I think this fixes a lot of groups stuff. Also simplifies a good bit of AIContactController
2009-03-05 Add a -removeFromList method to AIListObject, and use it to break up a long if/else if/else chain in AIContactController. The fallout from this is pretty significant, so feedback is requested on whether this is a good direction to go.
2009-03-05 My new refactoring goal is to target places in AIContactController where we branch based on -isKindOfClass:. This simplification/encapsulation is the first result of that. Thanks Zac, Colin, and Peter for reviewing :)
2009-03-05 Add two {{{-existingBookmarkFor…}}} methods to the contact controller. Use one for Twitter when deciding to create a Timeline bookmark or not.
2009-03-05 Save the contact list after creating an {{{AIListBookmark}}}.
2009-03-04 Assorted cleanup. Trying to get this simple enough that I can understand it to fix it
2009-03-04 Dot syntax. Lots of it.
2009-03-03 Fix a crash I saw just as I was about to go to bed. AIChat removes the object from its internal array, then tries to fire a 'signed off' event using that object, which is now deallocated. Why this is so difficult to trigger I have no idea. The remaining stuff in the patch is just some cleanup that happened while I was investigating