adium 3097:3a95f339be21: Fixing a regression from changeset 3074...
commits at adium.im
commits at adium.im
Wed Dec 30 18:32:52 UTC 2009
details: http://hg.adium.im/adium/rev/3a95f339be21
revision: 3097:3a95f339be21
author: Stephen Holt <sholt at adium.im>
date: Wed Dec 30 13:32:41 2009 -0500
Fixing a regression from changeset 3074 (c867117688bb): Reordering contacts and groups was broken. Now it's fixed.
diffs (148 lines):
diff -r 456f84709ed2 -r 3a95f339be21 Frameworks/Adium Framework/Source/AIListObject.h
--- a/Frameworks/Adium Framework/Source/AIListObject.h Tue Dec 29 14:30:17 2009 -0500
+++ b/Frameworks/Adium Framework/Source/AIListObject.h Wed Dec 30 13:32:41 2009 -0500
@@ -91,8 +91,8 @@
//Grouping, Manual ordering
NSMutableSet *m_groups; //The AIContainingObjects that this object is in
- CGFloat cachedSmallestOrder;
- CGFloat cachedLargestOrder;
+ float cachedSmallestOrder;
+ float cachedLargestOrder;
}
- (id)initWithUID:(NSString *)inUID service:(AIService *)inService;
@@ -174,10 +174,10 @@
* but are implemented by AIListObject (which does not conform to the protocol) for the convenience
* of subclasses.
*/
- at property (readonly, nonatomic) CGFloat smallestOrder;
- at property (readonly, nonatomic) CGFloat largestOrder;
-- (void)listObject:(AIListObject *)listObject didSetOrderIndex:(CGFloat)inOrderIndex;
-- (CGFloat)orderIndexForObject:(AIListObject *)listObject;
+ at property (readonly, nonatomic) float smallestOrder;
+ at property (readonly, nonatomic) float largestOrder;
+- (void)listObject:(AIListObject *)listObject didSetOrderIndex:(float)inOrderIndex;
+- (float)orderIndexForObject:(AIListObject *)listObject;
- (void) moveContainedObject:(AIListObject *)object toIndex:(NSInteger)index;
@end
diff -r 456f84709ed2 -r 3a95f339be21 Frameworks/Adium Framework/Source/AIListObject.m
--- a/Frameworks/Adium Framework/Source/AIListObject.m Tue Dec 29 14:30:17 2009 -0500
+++ b/Frameworks/Adium Framework/Source/AIListObject.m Wed Dec 30 13:32:41 2009 -0500
@@ -212,18 +212,18 @@
if (idx == 0) {
//Moved to the top of a group. New index is between 0 and the lowest current index
- [container listObject:listObject didSetOrderIndex: self.smallestOrder / 2.0f];
+ [container listObject:listObject didSetOrderIndex: self.smallestOrder / 2];
} else if (idx >= container.visibleCount) {
//Moved to the bottom of a group. New index is one higher than the highest current index
- [container listObject:listObject didSetOrderIndex: self.largestOrder + 1.0f];
+ [container listObject:listObject didSetOrderIndex: self.largestOrder + 1];
} else {
//Moved somewhere in the middle. New index is the average of the next largest and smallest index
AIListObject *previousObject = [container.visibleContainedObjects objectAtIndex:idx-1];
AIListObject *nextObject = [container.visibleContainedObjects objectAtIndex:idx];
- CGFloat nextLowest = [container orderIndexForObject:previousObject];
- CGFloat nextHighest = [container orderIndexForObject:nextObject];
+ float nextLowest = [container orderIndexForObject:previousObject];
+ float nextHighest = [container orderIndexForObject:nextObject];
/* XXX - Fixme as per below
* It's possible that nextLowest > nextHighest if ordering is not strictly based on the ordering indexes themselves.
@@ -240,8 +240,8 @@
*/
AILogWithSignature(@"%@: Moving %@ into %@'s index %i using order index %f (between %@ and %@)",
container, listObject, container.visibleContainedObjects, idx,
- (nextHighest + nextLowest) / 2.0, nextObject, previousObject);
- [container listObject: listObject didSetOrderIndex: (nextHighest + nextLowest) / 2.0f];
+ (nextHighest + nextLowest) / 2, nextObject, previousObject);
+ [container listObject: listObject didSetOrderIndex: (nextHighest + nextLowest) / 2];
}
}
@@ -650,7 +650,7 @@
}
#pragma mark Methods for AIContainingObject-compliant classes to inherit
-- (void)listObject:(AIListObject *)listObject didSetOrderIndex:(CGFloat)orderIndexForObject
+- (void)listObject:(AIListObject *)listObject didSetOrderIndex:(float)orderIndexForObject
{
NSDictionary *dict = [self preferenceForKey:@"OrderIndexDictionary"
group:ObjectStatusCache];
@@ -674,10 +674,10 @@
[self updateOrderCache];
// Assume an index of largest+1
- orderIndexForObject = self.largestOrder + 1.0f;
+ orderIndexForObject = self.largestOrder + 1;
}
- NSNumber *orderIndexForObjectNumber = [NSNumber numberWithDouble:orderIndexForObject];
+ NSNumber *orderIndexForObjectNumber = [NSNumber numberWithFloat:orderIndexForObject];
//Prevent setting an order index which we already have
NSArray *existingKeys = [dict allKeysForObject:orderIndexForObjectNumber];
@@ -687,7 +687,7 @@
listObject, orderIndexForObject, self, orderIndexForObject+1);
orderIndexForObject++;
- orderIndexForObjectNumber = [NSNumber numberWithDouble:orderIndexForObject];
+ orderIndexForObjectNumber = [NSNumber numberWithFloat:orderIndexForObject];
existingKeys = [dict allKeysForObject:orderIndexForObjectNumber];
} else {
@@ -713,13 +713,13 @@
}
//Order index
-- (CGFloat)orderIndexForObject:(AIListObject *)listObject
+- (float)orderIndexForObject:(AIListObject *)listObject
{
NSDictionary *dict = [self preferenceForKey:@"OrderIndexDictionary"
group:ObjectStatusCache
];
NSNumber *orderIndexForObjectNumber = [dict objectForKey:listObject.internalObjectID];
- CGFloat orderIndexForObject = (orderIndexForObjectNumber ? (CGFloat)[orderIndexForObjectNumber doubleValue] : 0);
+ float orderIndexForObject = (orderIndexForObjectNumber ? [orderIndexForObjectNumber floatValue] : 0);
//Evan: I don't know how we got up to infinity.. perhaps pref corruption in a previous version?
//In any case, check against it; if we stored it, reset to a reasonable number.
@@ -727,14 +727,14 @@
if (!(orderIndexForObject < INFINITY)) orderIndexForObject = 0;
if (!orderIndexForObject) {
- orderIndexForObject = self.largestOrder + 1.0f;
+ orderIndexForObject = self.largestOrder + 1;
[(AIListObject<AIContainingObject> *)self listObject:listObject didSetOrderIndex: orderIndexForObject];
}
return orderIndexForObject;
}
-- (CGFloat)smallestOrder
+- (float)smallestOrder
{
if (!cachedSmallestOrder) {
[self updateOrderCache];
@@ -743,7 +743,7 @@
return cachedSmallestOrder;
}
-- (CGFloat)largestOrder
+- (float)largestOrder
{
if (!cachedLargestOrder) {
[self updateOrderCache];
@@ -754,7 +754,7 @@
- (void)updateOrderCache
{
- CGFloat smallest = INFINITY, largest = 0;
+ float smallest = INFINITY, largest = 0;
NSDictionary *orderIndex = [self preferenceForKey:@"OrderIndexDictionary" group:ObjectStatusCache];
More information about the commits
mailing list