adium/adium

Merged adium-1.6 into default.

2013-02-19, Thijs Alkemade
1f92dea9382b
Merged adium-1.6 into default.
--- a/Plugins/Purple Service/ESPurpleJabberAccountViewController.m Tue Feb 19 20:57:27 2013 +0100
+++ b/Plugins/Purple Service/ESPurpleJabberAccountViewController.m Tue Feb 19 21:52:40 2013 +0100
@@ -195,101 +195,113 @@
#pragma mark account creation
-static NSComparisonResult compareByDistance(id one, id two, void*context) {
- NSNumber *dist1obj = [one objectForKey:@"distance"];
- NSNumber *dist2obj = [two objectForKey:@"distance"];
-
- if((id)dist2obj == [NSNull null]) {
- if((id)dist1obj == [NSNull null])
- return NSOrderedSame;
- return NSOrderedAscending;
- }
- if((id)dist1obj == [NSNull null])
- return NSOrderedDescending;
-
- CGFloat dist1 = (CGFloat)[dist1obj doubleValue];
- CGFloat dist2 = (CGFloat)[dist2obj doubleValue];
-
- if(fabs(dist1 - dist2) < 0.000001)
- return NSOrderedSame;
-
- if(dist1 > dist2)
- return NSOrderedDescending;
- return NSOrderedAscending;
-}
-
- (IBAction)findServer:(id)sender {
if(!servers) {
- NSError *err = NULL;
-#warning Should not be synchronous. Bad.
- NSXMLDocument *serverfeed = [[NSXMLDocument alloc] initWithContentsOfURL:[NSURL URLWithString:SERVERFEEDRSSURL]
- options:0
- error:&err];
- if(err) {
- [[NSAlert alertWithError:err] runModal];
- } else {
- NSXMLElement *root = [serverfeed rootElement];
- NSArray *items = [root elementsForName:@"item"];
-
- if(!root || !items || ![[root name] isEqualToString:@"query"]) {
-
- [[NSAlert alertWithMessageText:AILocalizedString(@"Parse Error.",nil)
- defaultButton:AILocalizedString(@"OK",nil)
- alternateButton:nil
- otherButton:nil
- informativeTextWithFormat:AILocalizedString(@"Unable to parse the server list at %@. Please try again later.",nil), SERVERFEEDRSSURL] runModal];
- } else {
- MachineLocation loc;
- ReadLocation(&loc);
-
- CGFloat latitude = (CGFloat)(FractToFloat(loc.latitude)*(M_PI/2.0));
- CGFloat longitude = (CGFloat)(FractToFloat(loc.longitude)*(M_PI/2.0));
-
- servers = [[NSMutableArray alloc] init];
-
- for (NSXMLElement *item in items) {
- NSXMLElement *title = [[item elementsForName:@"domain"] lastObject];
- if(!title)
- continue;
- NSXMLElement *description = [[item elementsForName:@"description"] lastObject];
- NSXMLElement *latitudeNode = [[item elementsForName:@"latitude"] lastObject];
- NSXMLElement *longitudeNode = [[item elementsForName:@"longitude"] lastObject];
- NSString *domain = [[item attributeForName:@"jid"] stringValue];
- NSString *homepageStr = [[[item elementsForName:@"homepage"] lastObject] stringValue];
- NSURL *homepage = homepageStr?[NSURL URLWithString:homepageStr]:nil;
-
- id distance = [NSNull null];
- if (latitudeNode && longitudeNode) {
- /* Calculate the distance between the computer and the xmpp server in km
- * Note that this assumes that the earth is a perfect sphere
- * If it turns out to be flat or doughnut-shaped, this will not work!
- */
-
- CGFloat latitude2 = (CGFloat)([[latitudeNode stringValue] doubleValue] * (M_PI/180.0));
- CGFloat longitude2 = (CGFloat)([[longitudeNode stringValue] doubleValue] * (M_PI/180.0));
-
- CGFloat d_lat = AIsin((latitude2 - latitude)/2.0f);
- CGFloat d_long = AIsin((longitude2 - longitude)/2.0f);
- CGFloat a = d_lat*d_lat + AIcos(latitude)*AIcos(latitude2)*d_long*d_long;
- CGFloat c = 2*AIatan2(AIsqrt(a),AIsqrt(1.0f-a));
- CGFloat d = 6372.797f*c; // mean earth radius
-
- distance = [NSNumber numberWithDouble:d];
- }
-
- [(NSMutableArray*)servers addObject:
- @{ @"servername" : [title stringValue],
- @"description" : (description ? (id)[description stringValue] : (id)[NSNull null]),
- @"distance" : distance,
- @"domain" : domain,
- @"homepage" : (homepage ?: (id)[NSNull null]) }];
- }
-
- [(NSMutableArray*)servers sortUsingFunction:compareByDistance context:nil];
-
- [tableview_servers reloadData];
- }
- }
+ NSURLRequest *serversRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:SERVERFEEDRSSURL]
+ cachePolicy:NSURLRequestUseProtocolCachePolicy
+ timeoutInterval:30];
+
+
+ [NSURLConnection sendAsynchronousRequest:serversRequest
+ queue:[NSOperationQueue mainQueue]
+ completionHandler:^(NSURLResponse *response, NSData *serverfeedData, NSError *err) {
+
+ if(err) {
+ [[NSAlert alertWithError:err] runModal];
+ return;
+ }
+
+ NSXMLDocument *serverfeed = [[NSXMLDocument alloc] initWithData:serverfeedData
+ options:0
+ error:&err];
+ if (err) {
+ [[NSAlert alertWithError:err] runModal];
+ return;
+ }
+
+ NSXMLElement *root = [serverfeed rootElement];
+ NSArray *items = [root elementsForName:@"item"];
+
+ if(!root || !items || ![[root name] isEqualToString:@"query"]) {
+ [[NSAlert alertWithMessageText:AILocalizedString(@"Parse Error.",nil)
+ defaultButton:AILocalizedString(@"OK",nil)
+ alternateButton:nil
+ otherButton:nil
+ informativeTextWithFormat:AILocalizedString(@"Unable to parse the server list at %@. Please try again later.",nil), SERVERFEEDRSSURL] runModal];
+ } else {
+ MachineLocation loc;
+
+ ReadLocation(&loc);
+
+ CGFloat latitude = (CGFloat)(FractToFloat(loc.latitude)*(M_PI/2.0));
+ CGFloat longitude = (CGFloat)(FractToFloat(loc.longitude)*(M_PI/2.0));
+
+ servers = [[NSMutableArray alloc] init];
+
+ for (NSXMLElement *item in items) {
+ NSXMLElement *title = [[item elementsForName:@"domain"] lastObject];
+ if(!title)
+ continue;
+ NSXMLElement *description = [[item elementsForName:@"description"] lastObject];
+ NSXMLElement *latitudeNode = [[item elementsForName:@"latitude"] lastObject];
+ NSXMLElement *longitudeNode = [[item elementsForName:@"longitude"] lastObject];
+ NSString *domain = [[item attributeForName:@"jid"] stringValue];
+ NSString *homepageStr = [[[item elementsForName:@"homepage"] lastObject] stringValue];
+ NSURL *homepage = homepageStr?[NSURL URLWithString:homepageStr]:nil;
+
+ id distance = [NSNull null];
+ if (latitudeNode && longitudeNode) {
+ /* Calculate the distance between the computer and the xmpp server in km
+ * Note that this assumes that the earth is a perfect sphere
+ * If it turns out to be flat or doughnut-shaped, this will not work!
+ */
+
+ CGFloat latitude2 = (CGFloat)([[latitudeNode stringValue] doubleValue] * (M_PI/180.0));
+ CGFloat longitude2 = (CGFloat)([[longitudeNode stringValue] doubleValue] * (M_PI/180.0));
+
+ CGFloat d_lat = AIsin((latitude2 - latitude)/2.0f);
+ CGFloat d_long = AIsin((longitude2 - longitude)/2.0f);
+ CGFloat a = d_lat*d_lat + AIcos(latitude)*AIcos(latitude2)*d_long*d_long;
+ CGFloat c = 2*AIatan2(AIsqrt(a),AIsqrt(1.0f-a));
+ CGFloat d = 6372.797f*c; // mean earth radius
+
+ distance = @(d);
+ }
+
+ [(NSMutableArray*)servers addObject:
+ @{ @"servername" : [title stringValue],
+ @"description" : (description ? (id)[description stringValue] : (id)[NSNull null]),
+ @"distance" : distance,
+ @"domain" : domain,
+ @"homepage" : (homepage ?: (id)[NSNull null]) }];
+ }
+
+ [(NSMutableArray*)servers sortUsingComparator:^NSComparisonResult(id one, id two) {
+ NSNumber *dist1obj = [one objectForKey:@"distance"];
+ NSNumber *dist2obj = [two objectForKey:@"distance"];
+
+ if((id)dist2obj == [NSNull null]) {
+ if((id)dist1obj == [NSNull null])
+ return NSOrderedSame;
+ return NSOrderedAscending;
+ }
+ if((id)dist1obj == [NSNull null])
+ return NSOrderedDescending;
+
+ CGFloat dist1 = (CGFloat)[dist1obj doubleValue];
+ CGFloat dist2 = (CGFloat)[dist2obj doubleValue];
+
+ if(fabs(dist1 - dist2) < 0.000001)
+ return NSOrderedSame;
+
+ if(dist1 > dist2)
+ return NSOrderedDescending;
+ return NSOrderedAscending;
+ }];
+
+ [tableview_servers reloadData];
+ }
+ }];
}
[NSApp beginSheet:window_registerServer
--- a/Plugins/Purple Service/Resources/en.lproj/ESPurpleJabberAccountView.xib Tue Feb 19 20:57:27 2013 +0100
+++ b/Plugins/Purple Service/Resources/en.lproj/ESPurpleJabberAccountView.xib Tue Feb 19 21:52:40 2013 +0100
@@ -3,12 +3,12 @@
<data>
<int key="IBDocument.SystemTarget">1060</int>
<string key="IBDocument.SystemVersion">12C60</string>
- <string key="IBDocument.InterfaceBuilderVersion">2844</string>
+ <string key="IBDocument.InterfaceBuilderVersion">3084</string>
<string key="IBDocument.AppKitVersion">1187.34</string>
<string key="IBDocument.HIToolboxVersion">625.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
- <string key="NS.object.0">2844</string>
+ <string key="NS.object.0">3084</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
<string>NSButton</string>
@@ -58,7 +58,6 @@
<string key="NSFrame">{{152, 24}, {153, 32}}</string>
<reference key="NSSuperview" ref="837853317"/>
<reference key="NSWindow"/>
- <reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="123148848">
@@ -1037,7 +1036,6 @@
<string key="NSFrame">{{90, -1}, {312, 18}}</string>
<reference key="NSSuperview" ref="809544060"/>
<reference key="NSWindow"/>
- <reference key="NSNextKeyView"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="490598706">
<int key="NSCellFlags">67108864</int>
@@ -1115,7 +1113,7 @@
<string key="NSFrameSize">{243, 212}</string>
<reference key="NSSuperview" ref="514102083"/>
<reference key="NSWindow"/>
- <reference key="NSNextKeyView" ref="77982398"/>
+ <reference key="NSNextKeyView" ref="1065021731"/>
<bool key="NSEnabled">YES</bool>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
<bool key="NSControlAllowsExpansionToolTips">YES</bool>
@@ -1217,7 +1215,7 @@
<string key="NSFrame">{{20, 85}, {219, 214}}</string>
<reference key="NSSuperview" ref="76601519"/>
<reference key="NSWindow"/>
- <reference key="NSNextKeyView" ref="1065021731"/>
+ <reference key="NSNextKeyView" ref="514102083"/>
<int key="NSsFlags">133266</int>
<reference key="NSVScroller" ref="77982398"/>
<reference key="NSHScroller" ref="1065021731"/>
@@ -1233,7 +1231,6 @@
<string key="NSFrame">{{382, 13}, {59, 32}}</string>
<reference key="NSSuperview" ref="76601519"/>
<reference key="NSWindow"/>
- <reference key="NSNextKeyView"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="396158839">
<int key="NSCellFlags">67108864</int>
@@ -1305,172 +1302,15 @@
<string>WebURLsWithTitlesPboardType</string>
<string>public.url</string>
</set>
- <string key="NSFrameSize">{175, 240}</string>
+ <string key="NSFrameSize">{186, 212}</string>
<reference key="NSSuperview" ref="913185530"/>
<reference key="NSWindow"/>
- <reference key="NSNextKeyView" ref="53572490"/>
+ <reference key="NSNextKeyView" ref="136865453"/>
<object class="NSTextContainer" key="NSTextContainer" id="47426621">
<object class="NSLayoutManager" key="NSLayoutManager">
<object class="NSTextStorage" key="NSTextStorage">
<object class="NSMutableString" key="NSString">
- <characters key="NS.bytes">Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum Et harumd und lookum like Greek to me, dereud facilis est er expedit distinct. Nam liber te conscient to factor tum poen legum odioque civiuda</characters>
- </object>
- <array class="NSMutableArray" key="NSAttributes">
- <dictionary>
- <object class="NSFont" key="NSFont">
- <string key="NSName">LucidaGrande</string>
- <double key="NSSize">10</double>
- <int key="NSfFlags">2843</int>
- </object>
- <object class="NSParagraphStyle" key="NSParagraphStyle">
- <int key="NSAlignment">3</int>
- <array key="NSTabStops">
- <object class="NSTextTab" id="385235870">
- <double key="NSLocation">0.0</double>
- </object>
- <object class="NSTextTab" id="917949263">
- <double key="NSLocation">56</double>
- </object>
- <object class="NSTextTab" id="361982289">
- <double key="NSLocation">112</double>
- </object>
- <object class="NSTextTab" id="345963891">
- <double key="NSLocation">168</double>
- </object>
- <object class="NSTextTab" id="89441830">
- <double key="NSLocation">224</double>
- </object>
- <object class="NSTextTab" id="971318553">
- <double key="NSLocation">280</double>
- </object>
- <object class="NSTextTab" id="808703836">
- <double key="NSLocation">336</double>
- </object>
- <object class="NSTextTab" id="1021493546">
- <double key="NSLocation">392</double>
- </object>
- <object class="NSTextTab" id="1021545614">
- <double key="NSLocation">448</double>
- </object>
- <object class="NSTextTab" id="885304355">
- <double key="NSLocation">504</double>
- </object>
- <object class="NSTextTab" id="765396852">
- <double key="NSLocation">560</double>
- </object>
- <object class="NSTextTab" id="127086756">
- <double key="NSLocation">616</double>
- </object>
- <object class="NSTextTab" id="408397794">
- <double key="NSLocation">672</double>
- </object>
- <object class="NSTextTab" id="580353335">
- <double key="NSLocation">728</double>
- </object>
- <object class="NSTextTab" id="242932780">
- <double key="NSLocation">784</double>
- </object>
- <object class="NSTextTab" id="1063650833">
- <double key="NSLocation">840</double>
- </object>
- <object class="NSTextTab" id="462442275">
- <double key="NSLocation">896</double>
- </object>
- <object class="NSTextTab" id="930158054">
- <double key="NSLocation">952</double>
- </object>
- <object class="NSTextTab" id="713880478">
- <double key="NSLocation">1008</double>
- </object>
- <object class="NSTextTab" id="105793417">
- <double key="NSLocation">1064</double>
- </object>
- <object class="NSTextTab" id="65229733">
- <double key="NSLocation">1120</double>
- </object>
- <object class="NSTextTab" id="154238738">
- <double key="NSLocation">1176</double>
- </object>
- <object class="NSTextTab" id="504356517">
- <double key="NSLocation">1232</double>
- </object>
- <object class="NSTextTab" id="212177170">
- <double key="NSLocation">1288</double>
- </object>
- <object class="NSTextTab" id="681492166">
- <double key="NSLocation">1344</double>
- </object>
- <object class="NSTextTab" id="582335917">
- <double key="NSLocation">1400</double>
- </object>
- <object class="NSTextTab" id="203455078">
- <double key="NSLocation">1456</double>
- </object>
- <object class="NSTextTab" id="346661422">
- <double key="NSLocation">1512</double>
- </object>
- <object class="NSTextTab" id="396117552">
- <double key="NSLocation">1568</double>
- </object>
- <object class="NSTextTab" id="203219183">
- <double key="NSLocation">1624</double>
- </object>
- <object class="NSTextTab" id="186103130">
- <double key="NSLocation">1680</double>
- </object>
- <object class="NSTextTab" id="781350424">
- <double key="NSLocation">1736</double>
- </object>
- </array>
- </object>
- </dictionary>
- <dictionary>
- <object class="NSFont" key="NSFont">
- <string key="NSName">LucidaGrande-Bold</string>
- <double key="NSSize">10</double>
- <int key="NSfFlags">16</int>
- </object>
- <object class="NSParagraphStyle" key="NSParagraphStyle">
- <int key="NSAlignment">3</int>
- <array key="NSTabStops">
- <reference ref="385235870"/>
- <reference ref="917949263"/>
- <reference ref="361982289"/>
- <reference ref="345963891"/>
- <reference ref="89441830"/>
- <reference ref="971318553"/>
- <reference ref="808703836"/>
- <reference ref="1021493546"/>
- <reference ref="1021545614"/>
- <reference ref="885304355"/>
- <reference ref="765396852"/>
- <reference ref="127086756"/>
- <reference ref="408397794"/>
- <reference ref="580353335"/>
- <reference ref="242932780"/>
- <reference ref="1063650833"/>
- <reference ref="462442275"/>
- <reference ref="930158054"/>
- <reference ref="713880478"/>
- <reference ref="105793417"/>
- <reference ref="65229733"/>
- <reference ref="154238738"/>
- <reference ref="504356517"/>
- <reference ref="212177170"/>
- <reference ref="681492166"/>
- <reference ref="582335917"/>
- <reference ref="203455078"/>
- <reference ref="346661422"/>
- <reference ref="396117552"/>
- <reference ref="203219183"/>
- <reference ref="186103130"/>
- <reference ref="781350424"/>
- </array>
- </object>
- </dictionary>
- </array>
- <object class="NSMutableData" key="NSAttributeInfo">
- <bytes key="NS.bytes">GQAEAQgADAEiAAcBhAQAA</bytes>
+ <characters key="NS.bytes"/>
</object>
<nil key="NSDelegate"/>
</object>
@@ -1481,7 +1321,7 @@
<nil key="NSDelegate"/>
</object>
<reference key="NSTextView" ref="548084419"/>
- <double key="NSWidth">175</double>
+ <double key="NSWidth">186</double>
<int key="NSTCFlags">1</int>
</object>
<object class="NSTextViewSharedData" key="NSSharedData">
@@ -1517,11 +1357,10 @@
</object>
<int key="NSTVFlags">6</int>
<string key="NSMaxSize">{463, 10000000}</string>
- <string key="NSMinize">{175, 212}</string>
<nil key="NSDelegate"/>
</object>
</array>
- <string key="NSFrame">{{1, 1}, {175, 212}}</string>
+ <string key="NSFrame">{{1, 1}, {186, 212}}</string>
<reference key="NSSuperview" ref="1073507928"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="548084419"/>
@@ -1555,12 +1394,11 @@
</object>
<object class="NSScroller" id="53572490">
<reference key="NSNextResponder" ref="1073507928"/>
- <int key="NSvFlags">256</int>
+ <int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{176, 1}, {11, 212}}</string>
<reference key="NSSuperview" ref="1073507928"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="862273329"/>
- <bool key="NSEnabled">YES</bool>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
<int key="NSsFlags">256</int>
<reference key="NSTarget" ref="1073507928"/>
@@ -1585,8 +1423,8 @@
<string key="NSFrame">{{247, 85}, {188, 214}}</string>
<reference key="NSSuperview" ref="76601519"/>
<reference key="NSWindow"/>
- <reference key="NSNextKeyView" ref="136865453"/>
- <int key="NSsFlags">133714</int>
+ <reference key="NSNextKeyView" ref="913185530"/>
+ <int key="NSsFlags">133650</int>
<reference key="NSVScroller" ref="53572490"/>
<reference key="NSHScroller" ref="136865453"/>
<reference key="NSContentView" ref="913185530"/>
@@ -1623,7 +1461,7 @@
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="717094965"/>
</object>
- <string key="NSScreenRect">{{0, 0}, {1920, 1080}}</string>
+ <string key="NSScreenRect">{{0, 0}, {1920, 1058}}</string>
<string key="NSMinSize">{213, 129}</string>
<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
<bool key="NSWindowIsRestorable">YES</bool>