Title: [159707] trunk/Tools
Revision
159707
Author
ander...@apple.com
Date
2013-11-22 12:38:42 -0800 (Fri, 22 Nov 2013)

Log Message

MiniBrowser should use the blocks-based NSOpenPanel API
https://bugs.webkit.org/show_bug.cgi?id=124786

Reviewed by Simon Fraser.

* MiniBrowser/mac/AppDelegate.m:
(-[BrowserAppDelegate frontmostBrowserWindowController]):
Account for windows that don't have a BrowserWindowController.

(-[BrowserAppDelegate openDocument:]):

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (159706 => 159707)


--- trunk/Tools/ChangeLog	2013-11-22 20:31:38 UTC (rev 159706)
+++ trunk/Tools/ChangeLog	2013-11-22 20:38:42 UTC (rev 159707)
@@ -1,3 +1,16 @@
+2013-11-22  Anders Carlsson  <ander...@apple.com>
+
+        MiniBrowser should use the blocks-based NSOpenPanel API
+        https://bugs.webkit.org/show_bug.cgi?id=124786
+
+        Reviewed by Simon Fraser.
+
+        * MiniBrowser/mac/AppDelegate.m:
+        (-[BrowserAppDelegate frontmostBrowserWindowController]):
+        Account for windows that don't have a BrowserWindowController.
+
+        (-[BrowserAppDelegate openDocument:]):
+
 2013-11-22  Commit Queue  <commit-qu...@webkit.org>
 
         Unreviewed, rolling out r159690.

Modified: trunk/Tools/MiniBrowser/mac/AppDelegate.m (159706 => 159707)


--- trunk/Tools/MiniBrowser/mac/AppDelegate.m	2013-11-22 20:31:38 UTC (rev 159706)
+++ trunk/Tools/MiniBrowser/mac/AppDelegate.m	2013-11-22 20:38:42 UTC (rev 159707)
@@ -199,10 +199,12 @@
 
 - (BrowserWindowController *)frontmostBrowserWindowController
 {
-    NSArray* windows = [NSApp windows];
-    for (NSWindow* window in windows) {
+    for (NSWindow* window in [NSApp windows]) {
         id delegate = [window delegate];
-        assert([delegate isKindOfClass:[BrowserWindowController class]]);
+
+        if (![delegate isKindOfClass:[BrowserWindowController class]])
+            continue;
+
         BrowserWindowController *controller = (BrowserWindowController *)delegate;
         assert([_browserWindows containsObject:[controller window]]);
         return controller;
@@ -213,30 +215,32 @@
 
 - (IBAction)openDocument:(id)sender
 {
-    NSOpenPanel *openPanel = [[NSOpenPanel openPanel] retain];
-    [openPanel beginForDirectory:nil
-        file:nil
-        types:nil
-        modelessDelegate:self
-        didEndSelector:@selector(openPanelDidEnd:returnCode:contextInfo:)
-        contextInfo:0];
-}
+    BrowserWindowController *browserWindowController = [self frontmostBrowserWindowController];
 
-- (void)openPanelDidEnd:(NSOpenPanel *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo
-{
-    [sheet autorelease];
-    if (returnCode != NSOKButton || ![[sheet filenames] count])
+    if (browserWindowController) {
+        NSOpenPanel *openPanel = [[NSOpenPanel openPanel] retain];
+        [openPanel beginSheetModalForWindow:browserWindowController.window completionHandler:^(NSInteger result) {
+            if (result != NSModalResponseOK)
+                return;
+
+            NSURL *url = ""
+            [browserWindowController loadURLString:[url absoluteString]];
+        }];
         return;
-    
-    NSString* filePath = [[sheet filenames] objectAtIndex:0];
+    }
 
-    BrowserWindowController *controller = [self frontmostBrowserWindowController];
-    if (!controller) {
-        controller = [[WK2BrowserWindowController alloc] initWithContext:_processContext pageGroup:_pageGroup]; // FIXME: add a way to open in WK1 also.
-        [[controller window] makeKeyAndOrderFront:self];
-    }
-    
-    [controller loadURLString:[[NSURL fileURLWithPath:filePath] absoluteString]];
+    NSOpenPanel *openPanel = [NSOpenPanel openPanel];
+    [openPanel beginWithCompletionHandler:^(NSInteger result) {
+        if (result != NSModalResponseOK)
+            return;
+        
+        // FIXME: add a way to open in WK1 also.
+        BrowserWindowController *newBrowserWindowController = [[WK2BrowserWindowController alloc] initWithContext:_processContext pageGroup:_pageGroup];
+        [newBrowserWindowController.window makeKeyAndOrderFront:self];
+
+        NSURL *url = ""
+        [newBrowserWindowController loadURLString:[url absoluteString]];
+    }];
 }
 
 @end
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to