Ticket #8473: trac_8473-extcode.patch

File trac_8473-extcode.patch, 79.8 KB (added by iandrus, 10 years ago)
  • sage/ext/mac-app/AppController.h

    # HG changeset patch
    # User Ivan Andrus <darthandrus@gmail.com>
    # Date 1299945778 -3600
    # Node ID e489ca5a54344e670147991bf0cd666b8e7b06a8
    # Parent  91ed19b683e0c1976da6d7778d098d9a7314b18e
    #8473/extcode: Support opening of sws files and urls
    
    diff --git a/sage/ext/mac-app/AppController.h b/sage/ext/mac-app/AppController.h
    a b  
    2525
    2626    NSString *sageBinary;
    2727    NSString *logPath;
     28    NSMutableArray *URLQueue;
    2829
    2930    NSUserDefaults *defaults;
    3031
  • sage/ext/mac-app/AppController.m

    diff --git a/sage/ext/mac-app/AppController.m b/sage/ext/mac-app/AppController.m
    a b  
    5757        [statusItem setEnabled:NO];
    5858    }
    5959
    60     // Our best guess for the port (so that it's always set)
    61     port = 8000;
     60    // indicate that we haven't started the server yet
     61    port = 0;
    6262    neverOpenedFileBrowser = YES;
     63    URLQueue = [[NSMutableArray arrayWithCapacity:3] retain];
    6364
    6465    // Start the sage server, or check if it's running
    6566    if ( [defaults boolForKey:@"startServerOnLaunch"] ) {
     
    8687    [logPath release];
    8788    [theTask release];
    8889    [taskPipe release];
     90    [URLQueue release];
    8991    [super dealloc];
    9092}
    9193
     
    133135-(void)serverStartedWithPort:(int)p{
    134136    if (haveStatusItem)  [statusItem setImage:statusImageBlue];
    135137    port = p;
     138    if ( [URLQueue count] > 0 ) {
     139        NSEnumerator *e = [URLQueue objectEnumerator];
     140        id url;
     141        while (url = [e nextObject]) {
     142            [self browseLocalSageURL:url];
     143        }
     144        [URLQueue removeAllObjects];
     145    }
    136146}
    137147
    138148- (void)taskTerminated:(NSNotification *)aNotification {
     
    175185    }
    176186
    177187    if (haveStatusItem)  [statusItem setImage:statusImageGrey];
     188    port = 0;
    178189}
    179190
    180191// To create an alternate menu, in IB create another menu item, give it a key equivalent of opt/alt and check the alternate box (left most tab of inspector)
     
    302313}
    303314
    304315-(IBAction)showPreferences:(id)sender{
    305         [NSApp activateIgnoringOtherApps:YES];
     316    [NSApp activateIgnoringOtherApps:YES];
    306317    [prefWindow makeKeyAndOrderFront:self];
    307318}
    308319
     
    313324    } else {
    314325        sageURL = [[defaults arrayForKey:@"sageURLs"] objectAtIndex:[sender tag]];
    315326    }
    316     [self sageBrowse:[NSString stringWithFormat:@"http://localhost:%d/%@", port, sageURL]];
     327    // The server is not running
     328    if ( port == 0 && [defaults boolForKey:@"autoStartServer"] ) {
     329        // Queue the URL up for opening and start the server
     330        // Do I need to retain it??
     331        [URLQueue addObject:sageURL];
     332        [self startServer:self];
     333    } else {
     334        // Browse to the url right away
     335        [self sageBrowse:[NSString stringWithFormat:@"http://localhost:%d/%@", port, sageURL]];
     336    }
    317337}
    318338
    319339-(IBAction)browseRemoteURL:(id)sender{
     
    529549    return NO;
    530550}
    531551
    532 // TODO: make installing packages easy
     552// TODO: make installing packages easy -- stringByLaunchingPath:withArguments:error:
    533553// TODO: maybe this should be written in py-objc so that we can call into sage directly (but then we would have to worry about environment etc.)
    534554// TODO: make some services (search for NSSendTypes) -- pack/unpack spkg, extract sws from pdf, crap/fixdoctests/preparse/Test/coverage/pkg/pkg_nc/etc.
    535555
  • sage/ext/mac-app/AppDelegate.m

    diff --git a/sage/ext/mac-app/AppDelegate.m b/sage/ext/mac-app/AppDelegate.m
    a b  
    6565}
    6666
    6767- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    68         // Register that we can open URLs
     68    // Register that we can open URLs
    6969    NSAppleEventManager *em = [NSAppleEventManager sharedAppleEventManager];
    7070    [em setEventHandler:self
    7171            andSelector:@selector(getUrl:withReplyEvent:)
     
    8989        // Run sage and python files in your terminal
    9090        [appController sageTerminalRun:nil withArguments:[NSArray arrayWithObject:filename]];
    9191
    92     } else if ( [extension isEqual:@"sws"] ) {
     92    } else if ( [extension isEqual:@"sws"]
     93                || [extension isEqual:@"txt"]
     94                || [extension isEqual:@"zip"] )
     95    {
    9396
    94         [[NSAlert alertWithMessageText:@"Worksheet upload unimplemented"
    95                          defaultButton:nil
    96                        alternateButton:nil
    97                            otherButton:nil
    98              informativeTextWithFormat:@"I don't know how to open sws files yet.  Please fix trac 8473 and get back to me."]
    99          runModal];
     97        // Browse to a url which will upload the file.
     98        // Perhaps we should have an option to delete the file when done...
     99        NSString* theURL = [NSString stringWithFormat:@"upload_worksheet?url=%@",
     100                           [[NSURL fileURLWithPath: filename] relativeString]];
     101        [appController browseLocalSageURL:theURL];
    100102
    101103    } else if ( [extension isEqual:@"spkg"] ) {
    102104        // Install the spkg
     
    139141    // Activate us
    140142    [[NSApplication sharedApplication] activateIgnoringOtherApps:TRUE];
    141143
    142     // TODO: maybe sws links can be special too (once they work at all)
    143144    if ( [[urlStr pathExtension] isEqual:@"spkg"] ) {
    144145        // We can install spkg's from URLs
    145146        [appController sageTerminalRun:@"i" withArguments:[NSArray arrayWithObject:urlStr]];
     147
     148    } else if ( [[urlStr pathExtension] isEqual:@"sws"]
     149                || [[urlStr pathExtension] isEqual:@"txt"]
     150                || [[urlStr pathExtension] isEqual:@"zip"] )
     151    {
     152
     153        // Browse to a url which will upload the file.
     154        // Perhaps we should have an option to delete the file when done...
     155        NSString* theURL = [NSString stringWithFormat:@"upload_worksheet?url=%@",
     156                            [[NSURL URLWithString: urlStr] relativeString]];
     157        [appController browseLocalSageURL:theURL];
     158
    146159    } else {
    147160
    148161        // Open the url in a new window
     
    157170             loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlStr]]];
    158171        }
    159172
    160     }
    161 
    162     // Check if the server has started
    163     // TODO: This detection will only work if we are SAGE_BROWSER (i.e. we are in the dock)
    164     NSArray *components = [urlStr componentsSeparatedByString:@"/?startup_token="];
    165     if ( [components count] > 1 ) {
    166         urlStr = [components objectAtIndex:0];
    167         components = [urlStr componentsSeparatedByString:@"localhost:"];
     173        // Check if the server has started
     174        // TODO: This detection will only work if we are SAGE_BROWSER (i.e. we are in the dock)
     175        NSArray *components = [urlStr componentsSeparatedByString:@"/?startup_token="];
    168176        if ( [components count] > 1 ) {
    169             const int port = (int)[[components objectAtIndex:1] floatValue];
    170             [appController serverStartedWithPort:port];
     177            urlStr = [components objectAtIndex:0];
     178            components = [urlStr componentsSeparatedByString:@"localhost:"];
     179            if ( [components count] > 1 ) {
     180                const int port = (int)[[components objectAtIndex:1] floatValue];
     181                // We need to give it some time to load before we start loading queued things
     182                // which happens from serverStartedWithPort
     183                if ([[myDocument webView] respondsToSelector: @selector(isLoading)]) {
     184                    // block while the webview loads
     185                    while ([[myDocument webView] isLoading]) {
     186                        [[NSRunLoop currentRunLoop]
     187                         runMode:NSDefaultRunLoopMode
     188                         beforeDate:[NSDate distantFuture]];
     189                    }
     190                } else {
     191                    // Eyeball it...  This should only happen before 10.4.11
     192                    sleep(1);
     193                }
     194                [appController serverStartedWithPort:port];
     195            }
    171196        }
    172197    }
    173198}
  • sage/ext/mac-app/Defaults.plist

    diff --git a/sage/ext/mac-app/Defaults.plist b/sage/ext/mac-app/Defaults.plist
    a b  
    122122        <false/>
    123123        <key>useSystemBrowser</key>
    124124        <true/>
     125        <key>autoStartServer</key>
     126        <true/>
    125127</dict>
    126128</plist>
  • sage/ext/mac-app/English.lproj/MainMenu.nib/designable.nib

    diff --git a/sage/ext/mac-app/English.lproj/MainMenu.nib/designable.nib b/sage/ext/mac-app/English.lproj/MainMenu.nib/designable.nib
    a b  
    22<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
    33        <data>
    44                <int key="IBDocument.SystemTarget">1060</int>
    5                 <string key="IBDocument.SystemVersion">10F569</string>
    6                 <string key="IBDocument.InterfaceBuilderVersion">788</string>
    7                 <string key="IBDocument.AppKitVersion">1038.29</string>
     5                <string key="IBDocument.SystemVersion">10H574</string>
     6                <string key="IBDocument.InterfaceBuilderVersion">823</string>
     7                <string key="IBDocument.AppKitVersion">1038.35</string>
    88                <string key="IBDocument.HIToolboxVersion">461.00</string>
    99                <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
    1010                        <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
    11                         <string key="NS.object.0">788</string>
     11                        <string key="NS.object.0">823</string>
    1212                </object>
    1313                <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
    1414                        <bool key="EncodedWithXMLCoder">YES</bool>
     
    1919                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    2020                </object>
    2121                <object class="NSMutableDictionary" key="IBDocument.Metadata">
    22                         <bool key="EncodedWithXMLCoder">YES</bool>
    23                         <object class="NSArray" key="dict.sortedKeys" id="0">
    24                                 <bool key="EncodedWithXMLCoder">YES</bool>
    25                         </object>
    26                         <object class="NSMutableArray" key="dict.values">
    27                                 <bool key="EncodedWithXMLCoder">YES</bool>
    28                         </object>
     22                        <string key="NS.key.0">PluginDependencyRecalculationVersion</string>
     23                        <integer value="1" key="NS.object.0"/>
    2924                </object>
    3025                <object class="NSMutableArray" key="IBDocument.RootObjects" id="1048">
    3126                        <bool key="EncodedWithXMLCoder">YES</bool>
     
    14411436                                                                                        <object class="NSButton" id="1072956669">
    14421437                                                                                                <reference key="NSNextResponder" ref="427246456"/>
    14431438                                                                                                <int key="NSvFlags">268</int>
    1444                                                                                                 <string key="NSFrame">{{15, 152}, {359, 18}}</string>
     1439                                                                                                <string key="NSFrame">{{15, 132}, {359, 18}}</string>
    14451440                                                                                                <reference key="NSSuperview" ref="427246456"/>
    14461441                                                                                                <bool key="NSEnabled">YES</bool>
    14471442                                                                                                <object class="NSButtonCell" key="NSCell" id="1050452407">
     
    14601455                                                                                                        <int key="NSPeriodicInterval">25</int>
    14611456                                                                                                </object>
    14621457                                                                                        </object>
     1458                                                                                        <object class="NSButton" id="747586225">
     1459                                                                                                <reference key="NSNextResponder" ref="427246456"/>
     1460                                                                                                <int key="NSvFlags">268</int>
     1461                                                                                                <string key="NSFrame">{{15, 152}, {359, 18}}</string>
     1462                                                                                                <reference key="NSSuperview" ref="427246456"/>
     1463                                                                                                <bool key="NSEnabled">YES</bool>
     1464                                                                                                <object class="NSButtonCell" key="NSCell" id="372241284">
     1465                                                                                                        <int key="NSCellFlags">-2080244224</int>
     1466                                                                                                        <int key="NSCellFlags2">0</int>
     1467                                                                                                        <string key="NSContents">Start server when opening sws files</string>
     1468                                                                                                        <reference key="NSSupport" ref="407629005"/>
     1469                                                                                                        <reference key="NSControlView" ref="747586225"/>
     1470                                                                                                        <int key="NSButtonFlags">1211912703</int>
     1471                                                                                                        <int key="NSButtonFlags2">2</int>
     1472                                                                                                        <reference key="NSNormalImage" ref="452110151"/>
     1473                                                                                                        <reference key="NSAlternateImage" ref="638186407"/>
     1474                                                                                                        <string key="NSAlternateContents"/>
     1475                                                                                                        <string key="NSKeyEquivalent"/>
     1476                                                                                                        <int key="NSPeriodicDelay">200</int>
     1477                                                                                                        <int key="NSPeriodicInterval">25</int>
     1478                                                                                                </object>
     1479                                                                                        </object>
    14631480                                                                                        <object class="NSButton" id="1060752532">
    14641481                                                                                                <reference key="NSNextResponder" ref="427246456"/>
    14651482                                                                                                <int key="NSvFlags">268</int>
    1466                                                                                                 <string key="NSFrame">{{15, 132}, {285, 18}}</string>
     1483                                                                                                <string key="NSFrame">{{15, 112}, {285, 18}}</string>
    14671484                                                                                                <reference key="NSSuperview" ref="427246456"/>
    14681485                                                                                                <bool key="NSEnabled">YES</bool>
    14691486                                                                                                <object class="NSButtonCell" key="NSCell" id="242311171">
     
    25152532                                </object>
    25162533                        </object>
    25172534                        <object class="NSUserDefaultsController" id="960624109">
     2535                                <object class="NSMutableArray" key="NSDeclaredKeys">
     2536                                        <bool key="EncodedWithXMLCoder">YES</bool>
     2537                                        <string>autoStartServer</string>
     2538                                </object>
    25182539                                <bool key="NSSharedInstance">YES</bool>
    25192540                        </object>
    25202541                        <object class="NSWindowTemplate" id="218079618">
     
    41984219                                        </object>
    41994220                                        <int key="connectionID">1713</int>
    42004221                                </object>
     4222                                <object class="IBConnectionRecord">
     4223                                        <object class="IBBindingConnection" key="connection">
     4224                                                <string key="label">value: values.autoStartServer</string>
     4225                                                <reference key="source" ref="747586225"/>
     4226                                                <reference key="destination" ref="960624109"/>
     4227                                                <object class="NSNibBindingConnector" key="connector">
     4228                                                        <reference key="NSSource" ref="747586225"/>
     4229                                                        <reference key="NSDestination" ref="960624109"/>
     4230                                                        <string key="NSLabel">value: values.autoStartServer</string>
     4231                                                        <string key="NSBinding">value</string>
     4232                                                        <string key="NSKeyPath">values.autoStartServer</string>
     4233                                                        <int key="NSNibBindingConnectorVersion">2</int>
     4234                                                </object>
     4235                                        </object>
     4236                                        <int key="connectionID">1717</int>
     4237                                </object>
    42014238                        </object>
    42024239                        <object class="IBMutableOrderedSet" key="objectRecords">
    42034240                                <object class="NSArray" key="orderedObjects">
    42044241                                        <bool key="EncodedWithXMLCoder">YES</bool>
    42054242                                        <object class="IBObjectRecord">
    42064243                                                <int key="objectID">0</int>
    4207                                                 <reference key="object" ref="0"/>
     4244                                                <object class="NSArray" key="object" id="0">
     4245                                                        <bool key="EncodedWithXMLCoder">YES</bool>
     4246                                                </object>
    42084247                                                <reference key="children" ref="1048"/>
    42094248                                                <nil key="parent"/>
    42104249                                        </object>
     
    57035742                                                        <reference ref="236267905"/>
    57045743                                                        <reference ref="249613539"/>
    57055744                                                        <reference ref="650158556"/>
     5745                                                        <reference ref="747586225"/>
    57065746                                                </object>
    57075747                                                <reference key="parent" ref="1018932261"/>
    57085748                                        </object>
     
    61256165                                                <reference key="object" ref="66457665"/>
    61266166                                                <reference key="parent" ref="249613539"/>
    61276167                                        </object>
     6168                                        <object class="IBObjectRecord">
     6169                                                <int key="objectID">1714</int>
     6170                                                <reference key="object" ref="747586225"/>
     6171                                                <object class="NSMutableArray" key="children">
     6172                                                        <bool key="EncodedWithXMLCoder">YES</bool>
     6173                                                        <reference ref="372241284"/>
     6174                                                </object>
     6175                                                <reference key="parent" ref="427246456"/>
     6176                                        </object>
     6177                                        <object class="IBObjectRecord">
     6178                                                <int key="objectID">1715</int>
     6179                                                <reference key="object" ref="372241284"/>
     6180                                                <reference key="parent" ref="747586225"/>
     6181                                        </object>
    61286182                                </object>
    61296183                        </object>
    61306184                        <object class="NSMutableDictionary" key="flattenedProperties">
     
    61806234                                        <string>131.IBPluginDependency</string>
    61816235                                        <string>131.ImportedFromIB2</string>
    61826236                                        <string>1315.IBPluginDependency</string>
     6237                                        <string>1315.IBViewBoundsToFrameTransform</string>
    61836238                                        <string>1316.IBPluginDependency</string>
    61846239                                        <string>1320.IBPluginDependency</string>
    61856240                                        <string>1321.IBPluginDependency</string>
     
    63036358                                        <string>1690.IBPluginDependency</string>
    63046359                                        <string>1694.IBPluginDependency</string>
    63056360                                        <string>1695.IBPluginDependency</string>
     6361                                        <string>1714.IBPluginDependency</string>
     6362                                        <string>1714.IBViewBoundsToFrameTransform</string>
     6363                                        <string>1715.IBPluginDependency</string>
    63066364                                        <string>19.IBPluginDependency</string>
    63076365                                        <string>19.ImportedFromIB2</string>
    63086366                                        <string>195.IBPluginDependency</string>
     
    66066664                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    66076665                                        <integer value="1"/>
    66086666                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     6667                                        <object class="NSAffineTransform">
     6668                                                <bytes key="NSTransformStruct">P4AAAL+AAABBcAAAwxUAAA</bytes>
     6669                                        </object>
    66096670                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    66106671                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    66116672                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     
    67306791                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    67316792                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    67326793                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     6794                                        <object class="NSAffineTransform">
     6795                                                <bytes key="NSTransformStruct">P4AAAL+AAABBcAAAwygAAA</bytes>
     6796                                        </object>
     6797                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     6798                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    67336799                                        <integer value="1"/>
    67346800                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    67356801                                        <integer value="1"/>
     
    68216887                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    68226888                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    68236889                                        <integer value="1"/>
    6824                                         <string>{{590, 469}, {448, 387}}</string>
    6825                                         <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    6826                                         <string>{{590, 469}, {448, 387}}</string>
     6890                                        <string>{{693, 298}, {448, 387}}</string>
     6891                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     6892                                        <string>{{693, 298}, {448, 387}}</string>
    68276893                                        <boolean value="NO"/>
    68286894                                        <boolean value="NO"/>
    68296895                                        <boolean value="NO"/>
     
    70587124                                </object>
    70597125                        </object>
    70607126                        <nil key="sourceID"/>
    7061                         <int key="maxID">1713</int>
     7127                        <int key="maxID">1719</int>
    70627128                </object>
    70637129                <object class="IBClassDescriber" key="IBDocument.Classes">
    70647130                        <object class="NSMutableArray" key="referencedPartialClassDescriptions">
  • sage/ext/mac-app/English.lproj/MainMenu.nib/keyedobjects.nib

    diff --git a/sage/ext/mac-app/English.lproj/MainMenu.nib/keyedobjects.nib b/sage/ext/mac-app/English.lproj/MainMenu.nib/keyedobjects.nib
    index e78beb8a6d16c4de77665880abfa233481e13926..9f95b262b030f5d86867fb2b66966673ef154f19
    GIT binary patch
    literal 70100
    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
    M+XYnnKYUUD1MtG$!vFvP
  • sage/ext/mac-app/MyDocument.m

    diff --git a/sage/ext/mac-app/MyDocument.m b/sage/ext/mac-app/MyDocument.m
    a b  
    5959    NSLog(@"well at least I made it there");
    6060
    6161    if ( outError != NULL ) {
    62                 *outError = [NSError errorWithDomain:NSOSStatusErrorDomain code:unimpErr userInfo:NULL];
    63         }
     62        *outError = [NSError errorWithDomain:NSOSStatusErrorDomain code:unimpErr userInfo:NULL];
     63    }
    6464
    65         return nil;
     65    return nil;
    6666}
    6767
    6868
     
    7070
    7171    NSLog(@"well at least I made it to open a url");
    7272    if ( outError != NULL ) {
    73                 *outError = [NSError errorWithDomain:NSOSStatusErrorDomain code:unimpErr userInfo:NULL];
    74         }
     73        *outError = [NSError errorWithDomain:NSOSStatusErrorDomain code:unimpErr userInfo:NULL];
     74    }
    7575    return YES;
    7676}
    7777
     
    8484    // For applications targeted for Panther or earlier systems, you should use the deprecated API -loadDataRepresentation:ofType. In this case you can also choose to override -readFromFile:ofType: or -loadFileWrapperRepresentation:ofType: instead.
    8585    NSLog(@"well at least I made it here");
    8686    if ( outError != NULL ) {
    87                 *outError = [NSError errorWithDomain:NSOSStatusErrorDomain code:unimpErr userInfo:NULL];
    88         }
     87        *outError = [NSError errorWithDomain:NSOSStatusErrorDomain code:unimpErr userInfo:NULL];
     88    }
    8989    return YES;
    9090}
    9191
  • sage/ext/mac-app/Sage-Info.plist

    diff --git a/sage/ext/mac-app/Sage-Info.plist b/sage/ext/mac-app/Sage-Info.plist
    a b  
    3434                        <key>LSItemContentTypes</key>
    3535                        <array>
    3636                                <string>org.sagemath.sage-worksheet</string>
     37                                <string>com.pkware.zip-archive</string>
    3738                        </array>
    3839                        <key>NSDocumentClass</key>
    3940                        <string>MyDocument</string>
     
    169170                <dict>
    170171                        <key>UTTypeConformsTo</key>
    171172                        <array>
     173                                <string>public.source-code</string>
     174                                <string>public.shell-script</string>
     175                                <string>public.python-script</string>
     176                        </array>
     177                        <key>UTTypeDescription</key>
     178                        <string>Cython Source Code</string>
     179                        <key>UTTypeIconFile</key>
     180                        <string>sage-document-cython.icns</string>
     181                        <key>UTTypeIdentifier</key>
     182                        <string>org.cython.cython-source</string>
     183                        <key>UTTypeReferenceURL</key>
     184                        <string>http://cython.org/</string>
     185                        <key>UTTypeTagSpecification</key>
     186                        <dict>
     187                                <key>public.filename-extension</key>
     188                                <array>
     189                                        <string>pyx</string>
     190                                </array>
     191                        </dict>
     192                </dict>
     193                <dict>
     194                        <key>UTTypeConformsTo</key>
     195                        <array>
     196                                <string>public.source-code</string>
     197                                <string>public.shell-script</string>
     198                                <string>public.python-script</string>
     199                        </array>
     200                        <key>UTTypeDescription</key>
     201                        <string>Cython Declaration File</string>
     202                        <key>UTTypeIconFile</key>
     203                        <string>sage-document-cython.icns</string>
     204                        <key>UTTypeIdentifier</key>
     205                        <string>org.cython.cython-header</string>
     206                        <key>UTTypeReferenceURL</key>
     207                        <string>http://cython.org/</string>
     208                        <key>UTTypeTagSpecification</key>
     209                        <dict>
     210                                <key>public.filename-extension</key>
     211                                <array>
     212                                        <string>pxd</string>
     213                                </array>
     214                        </dict>
     215                </dict>
     216                <dict>
     217                        <key>UTTypeConformsTo</key>
     218                        <array>
     219                                <string>public.source-code</string>
     220                                <string>public.shell-script</string>
     221                                <string>public.python-script</string>
     222                        </array>
     223                        <key>UTTypeDescription</key>
     224                        <string>Sage Preparsed Cython Source Code</string>
     225                        <key>UTTypeIconFile</key>
     226                        <string>sage-document-cython.icns</string>
     227                        <key>UTTypeIdentifier</key>
     228                        <string>org.sagemath.sage-cython-source</string>
     229                        <key>UTTypeReferenceURL</key>
     230                        <string>http://cython.org/</string>
     231                        <key>UTTypeTagSpecification</key>
     232                        <dict>
     233                                <key>public.filename-extension</key>
     234                                <array>
     235                                        <string>spyx</string>
     236                                </array>
     237                        </dict>
     238                </dict>
     239                <dict>
     240                        <key>UTTypeConformsTo</key>
     241                        <array>
    172242                                <string>public.data</string>
    173243                        </array>
    174244                        <key>UTTypeDescription</key>
  • sage/ext/mac-app/Sage.xcodeproj/project.pbxproj

    diff --git a/sage/ext/mac-app/Sage.xcodeproj/project.pbxproj b/sage/ext/mac-app/Sage.xcodeproj/project.pbxproj
    a b  
    2929                198C6B7612425E8E002A1494 /* sage-is-running-on-port.sh in Resources */ = {isa = PBXBuildFile; fileRef = 198C6B7512425E8D002A1494 /* sage-is-running-on-port.sh */; };
    3030                19BDCA2411D6C3EA0041A693 /* open-location.sh in Resources */ = {isa = PBXBuildFile; fileRef = 19BDCA2311D6C3EA0041A693 /* open-location.sh */; };
    3131                19D397B212365C2600CE35F5 /* InputPanelController.m in Sources */ = {isa = PBXBuildFile; fileRef = 19D397B012365C2600CE35F5 /* InputPanelController.m */; };
     32                19E3984612E249B300D062D1 /* sage-document-cython.icns in Resources */ = {isa = PBXBuildFile; fileRef = 19E3984512E249B300D062D1 /* sage-document-cython.icns */; };
    3233                8D15AC2C0486D014006FF6A4 /* Credits.html in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B9FDCFA73011CA2CEA /* Credits.html */; };
    3334                8D15AC2F0486D014006FF6A4 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165FFE840EACC02AAC07 /* InfoPlist.strings */; };
    3435                8D15AC310486D014006FF6A4 /* MyDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.m */; settings = {ATTRIBUTES = (); }; };
     
    6667                19BDCA2311D6C3EA0041A693 /* open-location.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = "open-location.sh"; sourceTree = "<group>"; };
    6768                19D397B012365C2600CE35F5 /* InputPanelController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InputPanelController.m; sourceTree = "<group>"; };
    6869                19D397B112365C2600CE35F5 /* InputPanelController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InputPanelController.h; sourceTree = "<group>"; };
     70                19E3984512E249B300D062D1 /* sage-document-cython.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "sage-document-cython.icns"; sourceTree = "<group>"; };
    6971                2564AD2C0F5327BB00F57823 /* Sage_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Sage_Prefix.pch; sourceTree = "<group>"; };
    7072                2A37F4ACFDCFA73011CA2CEA /* MyDocument.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MyDocument.m; sourceTree = "<group>"; };
    7173                2A37F4AEFDCFA73011CA2CEA /* MyDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MyDocument.h; sourceTree = "<group>"; };
     
    134136                2A37F4ABFDCFA73011CA2CEA /* Classes */ = {
    135137                        isa = PBXGroup;
    136138                        children = (
     139                                1967A6B311D6544C00ABC39D /* AppController.h */,
     140                                1967A6B411D6544C00ABC39D /* AppController.m */,
    137141                                1967A9A211D67FBE00ABC39D /* AppDelegate.h */,
    138142                                1967A9A111D67FBE00ABC39D /* AppDelegate.m */,
    139                                 1967A6B311D6544C00ABC39D /* AppController.h */,
    140                                 1967A6B411D6544C00ABC39D /* AppController.m */,
    141143                                19D397B112365C2600CE35F5 /* InputPanelController.h */,
    142144                                19D397B012365C2600CE35F5 /* InputPanelController.m */,
     145                                2A37F4AEFDCFA73011CA2CEA /* MyDocument.h */,
     146                                2A37F4ACFDCFA73011CA2CEA /* MyDocument.m */,
    143147                                1967A85611D6630300ABC39D /* PreferencePanelController.h */,
    144148                                1967A85711D6630300ABC39D /* PreferencePanelController.m */,
    145                                 2A37F4AEFDCFA73011CA2CEA /* MyDocument.h */,
    146                                 2A37F4ACFDCFA73011CA2CEA /* MyDocument.m */,
    147149                        );
    148150                        name = Classes;
    149151                        sourceTree = "<group>";
     
    163165                                1967A69D11D6543A00ABC39D /* appl.icns */,
    164166                                1967A69F11D6543A00ABC39D /* sage-document-py.icns */,
    165167                                1967A6A011D6543A00ABC39D /* sage-document-sage.icns */,
     168                                19E3984512E249B300D062D1 /* sage-document-cython.icns */,
    166169                                1967A6A111D6543A00ABC39D /* sage-document-spkg.icns */,
    167170                                1967A6A211D6543A00ABC39D /* sage-document-sws.icns */,
    168171                                1967A6A311D6543A00ABC39D /* sage-small-blue.png */,
     
    264267                                1943B14412411601007C0641 /* MainMenu.nib in Resources */,
    265268                                1943B14712411613007C0641 /* MyDocument.nib in Resources */,
    266269                                198C6B7612425E8E002A1494 /* sage-is-running-on-port.sh in Resources */,
     270                                19E3984612E249B300D062D1 /* sage-document-cython.icns in Resources */,
    267271                        );
    268272                        runOnlyForDeploymentPostprocessing = 0;
    269273                };