Changeset 3512
- Timestamp:
- 12/31/06 15:08:41 (2 years ago)
- Files:
-
- trunk/Chat Core.exp (modified) (1 diff)
- trunk/Chat Core/MVChatUser.h (modified) (1 diff)
- trunk/Chat Core/MVChatUser.m (modified) (1 diff)
- trunk/Chat Core/MVIRCChatUser.m (modified) (3 diffs)
- trunk/Chat Core/MVSILCChatUser.m (modified) (1 diff)
- trunk/Inspectors/JVChatUserInspector.h (modified) (1 diff)
- trunk/Inspectors/JVChatUserInspector.m (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/Chat Core.exp
r3498 r3512 53 53 _MVChatUserPictureAttribute 54 54 _MVChatUserPingAttribute 55 _MVChatUserLocalTime DifferenceAttribute55 _MVChatUserLocalTimeAttribute 56 56 _MVChatUserClientInfoAttribute 57 57 _MVChatUserVCardAttribute trunk/Chat Core/MVChatUser.h
r3498 r3512 21 21 extern NSString *MVChatUserPictureAttribute; 22 22 extern NSString *MVChatUserPingAttribute; 23 extern NSString *MVChatUserLocalTime DifferenceAttribute;23 extern NSString *MVChatUserLocalTimeAttribute; 24 24 extern NSString *MVChatUserClientInfoAttribute; 25 25 extern NSString *MVChatUserVCardAttribute; trunk/Chat Core/MVChatUser.m
r3498 r3512 8 8 NSString *MVChatUserPictureAttribute = @"MVChatUserPictureAttribute"; 9 9 NSString *MVChatUserPingAttribute = @"MVChatUserPingAttribute"; 10 NSString *MVChatUserLocalTime DifferenceAttribute = @"MVChatUserLocalTimeDifferenceAttribute";10 NSString *MVChatUserLocalTimeAttribute = @"MVChatUserLocalTimeAttribute"; 11 11 NSString *MVChatUserClientInfoAttribute = @"MVChatUserClientInfoAttribute"; 12 12 NSString *MVChatUserVCardAttribute = @"MVChatUserVCardAttribute"; trunk/Chat Core/MVIRCChatUser.m
r3420 r3512 36 36 37 37 - (NSSet *) supportedAttributes { 38 return [NSSet setWithObjects:MVChatUserPingAttribute, MVChatUserKnownRoomsAttribute, MVChatUserLocalTime DifferenceAttribute, MVChatUserClientInfoAttribute, nil];38 return [NSSet setWithObjects:MVChatUserPingAttribute, MVChatUserKnownRoomsAttribute, MVChatUserLocalTimeAttribute, MVChatUserClientInfoAttribute, nil]; 39 39 } 40 40 … … 96 96 [self setAttribute:[NSDate date] forKey:@"MVChatUserPingSendDateAttribute"]; 97 97 [self sendSubcodeRequest:@"PING" withArguments:nil]; 98 } else if( [key isEqualToString:MVChatUserLocalTime DifferenceAttribute] ) {98 } else if( [key isEqualToString:MVChatUserLocalTimeAttribute] ) { 99 99 [self sendSubcodeRequest:@"TIME" withArguments:nil]; 100 100 } else if( [key isEqualToString:MVChatUserClientInfoAttribute] ) { … … 120 120 } else if( [command caseInsensitiveCompare:@"TIME"] == NSOrderedSame ) { 121 121 NSString *date = [[NSString allocWithZone:nil] initWithData:arguments encoding:[[self connection] encoding]]; 122 NSDate *localThere = [NSDate dateWithNaturalLanguageString:date]; 123 if( localThere ) { 124 NSTimeInterval diff = [localThere timeIntervalSinceDate:[NSDate date]]; 125 [self setAttribute:[NSNumber numberWithDouble:diff] forKey:MVChatUserLocalTimeDifferenceAttribute]; 126 } else [self setAttribute:nil forKey:MVChatUserLocalTimeDifferenceAttribute]; 122 NSCalendarDate *localThere = [NSCalendarDate dateWithNaturalLanguageString:date]; 123 [self setAttribute:localThere forKey:MVChatUserLocalTimeAttribute]; 127 124 [date release]; 128 125 } trunk/Chat Core/MVSILCChatUser.m
r3420 r3512 100 100 101 101 - (NSSet *) supportedAttributes { 102 return [NSSet setWithObjects:MVChatUserKnownRoomsAttribute, MVChatUserPictureAttribute, MVChatUserLocalTime DifferenceAttribute, MVChatUserClientInfoAttribute, MVChatUserVCardAttribute, MVChatUserServiceAttribute, MVChatUserMoodAttribute, MVChatUserStatusMessageAttribute, MVChatUserPreferredLanguageAttribute, MVChatUserPreferredContactMethodsAttribute, MVChatUserTimezoneAttribute, MVChatUserGeoLocationAttribute, MVChatUserDeviceInfoAttribute, MVChatUserExtensionAttribute, MVChatUserPublicKeyAttribute, MVChatUserServerPublicKeyAttribute, MVChatUserDigitalSignatureAttribute, MVChatUserServerDigitalSignatureAttribute, nil];102 return [NSSet setWithObjects:MVChatUserKnownRoomsAttribute, MVChatUserPictureAttribute, MVChatUserLocalTimeAttribute, MVChatUserClientInfoAttribute, MVChatUserVCardAttribute, MVChatUserServiceAttribute, MVChatUserMoodAttribute, MVChatUserStatusMessageAttribute, MVChatUserPreferredLanguageAttribute, MVChatUserPreferredContactMethodsAttribute, MVChatUserTimezoneAttribute, MVChatUserGeoLocationAttribute, MVChatUserDeviceInfoAttribute, MVChatUserExtensionAttribute, MVChatUserPublicKeyAttribute, MVChatUserServerPublicKeyAttribute, MVChatUserDigitalSignatureAttribute, MVChatUserServerDigitalSignatureAttribute, nil]; 103 103 } 104 104 trunk/Inspectors/JVChatUserInspector.h
r3404 r3512 37 37 IBOutlet NSButton *requestInfo; 38 38 MVChatUser *_user; 39 NSDate *_localTimeUpdated; 39 40 NSTimer *_localTimeUpdateTimer; 40 41 NSTimer *_updateTimer; trunk/Inspectors/JVChatUserInspector.m
r3419 r3512 38 38 [[NSNotificationCenter defaultCenter] removeObserver:self]; 39 39 40 [_localTimeUpdated release]; 40 41 [_localTimeUpdateTimer release]; 41 42 [_updateTimer release]; 42 43 [_user release]; 43 44 45 _localTimeUpdated = nil; 44 46 _localTimeUpdateTimer = nil; 45 47 _updateTimer = nil; … … 92 94 93 95 - (void) didUnload { 96 [_localTimeUpdated release]; 97 _localTimeUpdated = nil; 98 94 99 [_localTimeUpdateTimer invalidate]; 95 100 [_localTimeUpdateTimer release]; … … 179 184 [ping setObjectValue:pingString]; 180 185 [ping setToolTip:pingString]; 181 } else if( [key isEqualToString:MVChatUserLocalTimeDifferenceAttribute] ) { 186 } else if( [key isEqualToString:MVChatUserLocalTimeAttribute] ) { 187 [_localTimeUpdated release]; 188 _localTimeUpdated = [[NSDate date] retain]; 189 182 190 [self updateLocalTime]; 183 191 if( ! _localTimeUpdateTimer ) … … 203 211 204 212 - (void) updateLocalTime { 213 NSCalendarDate *current = [_user attributeForKey:MVChatUserLocalTimeAttribute]; 214 NSTimeInterval diff = ABS( [_localTimeUpdated timeIntervalSinceNow] ); 215 216 NSCalendarDate *adjusted = [[NSCalendarDate alloc] initWithTimeInterval:diff sinceDate:current]; 205 217 NSString *format = [[NSUserDefaults standardUserDefaults] objectForKey:NSShortTimeDateFormatString]; 206 NSDate *current = [[NSDate dateWithTimeIntervalSinceNow:[[_user attributeForKey:MVChatUserLocalTimeDifferenceAttribute] doubleValue]] dateWithCalendarFormat:format timeZone:nil]; 207 [localTime setObjectValue:current]; 208 [localTime setToolTip:[current description]]; 218 NSCalendarDate *formatedDate = [adjusted dateWithCalendarFormat:format timeZone:[current timeZone]]; 219 [adjusted release]; 220 221 [localTime setObjectValue:formatedDate]; 222 [localTime setToolTip:[formatedDate description]]; 209 223 } 210 224 … … 214 228 215 229 - (IBAction) requestLocalTime:(id) sender { 216 [_user refreshAttributeForKey:MVChatUserLocalTime DifferenceAttribute];230 [_user refreshAttributeForKey:MVChatUserLocalTimeAttribute]; 217 231 } 218 232
