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