Title: [186604] trunk/Tools
Revision
186604
Author
timothy_hor...@apple.com
Date
2015-07-09 12:31:09 -0700 (Thu, 09 Jul 2015)

Log Message

Add a way to set the default URL from Minibrowser UI
https://bugs.webkit.org/show_bug.cgi?id=146780

Reviewed by Simon Fraser.

* MiniBrowser/mac/AppDelegate.m:
(-[BrowserAppDelegate didChangeSettings]):
* MiniBrowser/mac/BrowserWindowController.h:
* MiniBrowser/mac/BrowserWindowController.m:
(-[BrowserWindowController fetch:]):
(-[BrowserWindowController reload:]):
(-[BrowserWindowController forceRepaint:]):
(-[BrowserWindowController goBack:]):
(-[BrowserWindowController goForward:]):
(-[BrowserWindowController showHideWebView:]):
(-[BrowserWindowController removeReinsertWebView:]):
(-[BrowserWindowController zoomIn:]):
(-[BrowserWindowController zoomOut:]):
(-[BrowserWindowController resetZoom:]):
(-[BrowserWindowController canZoomIn]):
(-[BrowserWindowController canZoomOut]):
(-[BrowserWindowController canResetZoom]):
(-[BrowserWindowController toggleZoomMode:]):
(-[BrowserWindowController setScale:]):
(-[BrowserWindowController toggleShrinkToFit:]):
(-[BrowserWindowController dumpSourceToConsole:]):
(-[BrowserWindowController find:]):
(-[BrowserWindowController didChangeSettings]):
(-[BrowserWindowController currentURL]):
Get rid of the BrowserController protocol. It was a bad idea and confused
Interface Builder more than I thought possible.

* MiniBrowser/mac/SettingsController.m:
(-[SettingsController _populateMenu]):
(-[SettingsController setDefaultURLToCurrentURL:]):
If we have a BrowserWindowController, grab its URL and set the relevant default.

* MiniBrowser/mac/WK1BrowserWindowController.h:
* MiniBrowser/mac/WK1BrowserWindowController.m:
(-[WK1BrowserWindowController currentURL]):
* MiniBrowser/mac/WK2BrowserWindowController.h:
* MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController currentURL]):
Retrieve the current URL from the WKView/WebView.

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (186603 => 186604)


--- trunk/Tools/ChangeLog	2015-07-09 19:30:25 UTC (rev 186603)
+++ trunk/Tools/ChangeLog	2015-07-09 19:31:09 UTC (rev 186604)
@@ -1,5 +1,52 @@
 2015-07-09  Timothy Horton  <timothy_hor...@apple.com>
 
+        Add a way to set the default URL from Minibrowser UI
+        https://bugs.webkit.org/show_bug.cgi?id=146780
+
+        Reviewed by Simon Fraser.
+
+        * MiniBrowser/mac/AppDelegate.m:
+        (-[BrowserAppDelegate didChangeSettings]):
+        * MiniBrowser/mac/BrowserWindowController.h:
+        * MiniBrowser/mac/BrowserWindowController.m:
+        (-[BrowserWindowController fetch:]):
+        (-[BrowserWindowController reload:]):
+        (-[BrowserWindowController forceRepaint:]):
+        (-[BrowserWindowController goBack:]):
+        (-[BrowserWindowController goForward:]):
+        (-[BrowserWindowController showHideWebView:]):
+        (-[BrowserWindowController removeReinsertWebView:]):
+        (-[BrowserWindowController zoomIn:]):
+        (-[BrowserWindowController zoomOut:]):
+        (-[BrowserWindowController resetZoom:]):
+        (-[BrowserWindowController canZoomIn]):
+        (-[BrowserWindowController canZoomOut]):
+        (-[BrowserWindowController canResetZoom]):
+        (-[BrowserWindowController toggleZoomMode:]):
+        (-[BrowserWindowController setScale:]):
+        (-[BrowserWindowController toggleShrinkToFit:]):
+        (-[BrowserWindowController dumpSourceToConsole:]):
+        (-[BrowserWindowController find:]):
+        (-[BrowserWindowController didChangeSettings]):
+        (-[BrowserWindowController currentURL]):
+        Get rid of the BrowserController protocol. It was a bad idea and confused
+        Interface Builder more than I thought possible.
+
+        * MiniBrowser/mac/SettingsController.m:
+        (-[SettingsController _populateMenu]):
+        (-[SettingsController setDefaultURLToCurrentURL:]):
+        If we have a BrowserWindowController, grab its URL and set the relevant default.
+
+        * MiniBrowser/mac/WK1BrowserWindowController.h:
+        * MiniBrowser/mac/WK1BrowserWindowController.m:
+        (-[WK1BrowserWindowController currentURL]):
+        * MiniBrowser/mac/WK2BrowserWindowController.h:
+        * MiniBrowser/mac/WK2BrowserWindowController.m:
+        (-[WK2BrowserWindowController currentURL]):
+        Retrieve the current URL from the WKView/WebView.
+
+2015-07-09  Timothy Horton  <timothy_hor...@apple.com>
+
         Increase MiniBrowser location bar maximum width
         https://bugs.webkit.org/show_bug.cgi?id=146779
 

Modified: trunk/Tools/MiniBrowser/mac/AppDelegate.m (186603 => 186604)


--- trunk/Tools/MiniBrowser/mac/AppDelegate.m	2015-07-09 19:30:25 UTC (rev 186603)
+++ trunk/Tools/MiniBrowser/mac/AppDelegate.m	2015-07-09 19:31:09 UTC (rev 186604)
@@ -202,7 +202,7 @@
     [self _updateNewWindowKeyEquivalents];
 
     // Let all of the BrowserWindowControllers know that a setting changed, so they can attempt to dynamically update.
-    for (BrowserWindowController<BrowserController> *browserWindowController in _browserWindowControllers)
+    for (BrowserWindowController *browserWindowController in _browserWindowControllers)
         [browserWindowController didChangeSettings];
 }
 

Modified: trunk/Tools/MiniBrowser/mac/BrowserWindowController.h (186603 => 186604)


--- trunk/Tools/MiniBrowser/mac/BrowserWindowController.h	2015-07-09 19:30:25 UTC (rev 186603)
+++ trunk/Tools/MiniBrowser/mac/BrowserWindowController.h	2015-07-09 19:31:09 UTC (rev 186604)
@@ -25,8 +25,28 @@
 
 #import <Cocoa/Cocoa.h>
 
-@protocol BrowserController
+@interface BrowserWindowController : NSWindowController {
+    IBOutlet NSProgressIndicator *progressIndicator;
+    IBOutlet NSButton *reloadButton;
+    IBOutlet NSButton *backButton;
+    IBOutlet NSButton *forwardButton;
+    IBOutlet NSToolbar *toolbar;
+    IBOutlet NSTextField *urlText;
+    IBOutlet NSView *containerView;
+    IBOutlet NSButton *toggleUseShrinkToFitButton;
+    
+    IBOutlet NSWindow *findPanelWindow;
 
+    BOOL _zoomTextOnly;
+}
+
+- (void)loadURLString:(NSString *)urlString;
+- (NSString *)addProtocolIfNecessary:(NSString *)address;
+
+- (void)applicationTerminating;
+
+- (IBAction)openLocation:(id)sender;
+
 - (IBAction)fetch:(id)sender;
 - (IBAction)reload:(id)sender;
 - (IBAction)forceRepaint:(id)sender;
@@ -54,29 +74,7 @@
 
 - (void)didChangeSettings;
 
-@end
+- (NSURL *)currentURL;
 
-@interface BrowserWindowController : NSWindowController {
-    IBOutlet NSProgressIndicator *progressIndicator;
-    IBOutlet NSButton *reloadButton;
-    IBOutlet NSButton *backButton;
-    IBOutlet NSButton *forwardButton;
-    IBOutlet NSToolbar *toolbar;
-    IBOutlet NSTextField *urlText;
-    IBOutlet NSView *containerView;
-    IBOutlet NSButton *toggleUseShrinkToFitButton;
-    
-    IBOutlet NSWindow *findPanelWindow;
-
-    BOOL _zoomTextOnly;
-}
-
-- (void)loadURLString:(NSString *)urlString;
-- (NSString *)addProtocolIfNecessary:(NSString *)address;
-
-- (void)applicationTerminating;
-
-- (IBAction)openLocation:(id)sender;
-
 @end
 

Modified: trunk/Tools/MiniBrowser/mac/BrowserWindowController.m (186603 => 186604)


--- trunk/Tools/MiniBrowser/mac/BrowserWindowController.m	2015-07-09 19:30:25 UTC (rev 186603)
+++ trunk/Tools/MiniBrowser/mac/BrowserWindowController.m	2015-07-09 19:31:09 UTC (rev 186604)
@@ -70,4 +70,108 @@
     return [@"http://" stringByAppendingString:address];
 }
 
+- (IBAction)fetch:(id)sender
+{
+    [self doesNotRecognizeSelector:_cmd];
+}
+
+- (IBAction)reload:(id)sender
+{
+    [self doesNotRecognizeSelector:_cmd];
+}
+
+- (IBAction)forceRepaint:(id)sender
+{
+    [self doesNotRecognizeSelector:_cmd];
+}
+
+- (IBAction)goBack:(id)sender
+{
+    [self doesNotRecognizeSelector:_cmd];
+}
+
+- (IBAction)goForward:(id)sender
+{
+    [self doesNotRecognizeSelector:_cmd];
+}
+
+- (IBAction)showHideWebView:(id)sender
+{
+    [self doesNotRecognizeSelector:_cmd];
+}
+
+- (IBAction)removeReinsertWebView:(id)sender
+{
+    [self doesNotRecognizeSelector:_cmd];
+}
+
+- (IBAction)zoomIn:(id)sender
+{
+    [self doesNotRecognizeSelector:_cmd];
+}
+
+- (IBAction)zoomOut:(id)sender
+{
+    [self doesNotRecognizeSelector:_cmd];
+}
+
+- (IBAction)resetZoom:(id)sender
+{
+    [self doesNotRecognizeSelector:_cmd];
+}
+
+- (BOOL)canZoomIn
+{
+    [self doesNotRecognizeSelector:_cmd];
+    return NO;
+}
+
+- (BOOL)canZoomOut
+{
+    [self doesNotRecognizeSelector:_cmd];
+    return NO;
+}
+
+- (BOOL)canResetZoom
+{
+    [self doesNotRecognizeSelector:_cmd];
+    return NO;
+}
+
+- (IBAction)toggleZoomMode:(id)sender
+{
+    [self doesNotRecognizeSelector:_cmd];
+}
+
+- (IBAction)setScale:(id)sender
+{
+    [self doesNotRecognizeSelector:_cmd];
+}
+
+- (IBAction)toggleShrinkToFit:(id)sender
+{
+    [self doesNotRecognizeSelector:_cmd];
+}
+
+- (IBAction)dumpSourceToConsole:(id)sender
+{
+    [self doesNotRecognizeSelector:_cmd];
+}
+
+- (IBAction)find:(id)sender
+{
+    [self doesNotRecognizeSelector:_cmd];
+}
+
+- (void)didChangeSettings
+{
+    [self doesNotRecognizeSelector:_cmd];
+}
+
+- (NSURL *)currentURL
+{
+    [self doesNotRecognizeSelector:_cmd];
+    return nil;
+}
+
 @end

Modified: trunk/Tools/MiniBrowser/mac/SettingsController.m (186603 => 186604)


--- trunk/Tools/MiniBrowser/mac/SettingsController.m	2015-07-09 19:30:25 UTC (rev 186603)
+++ trunk/Tools/MiniBrowser/mac/SettingsController.m	2015-07-09 19:31:09 UTC (rev 186604)
@@ -98,6 +98,7 @@
     _menu = [[NSMenu alloc] initWithTitle:@"Settings"];
 
     [self _addItemWithTitle:@"Use WebKit2 By Default" action:@selector(toggleUseWebKit2ByDefault:) indented:NO];
+    [self _addItemWithTitle:@"Set Default URL to Current URL" action:@selector(setDefaultURLToCurrentURL:) indented:NO];
 
     [_menu addItem:[NSMenuItem separatorItem]];
 
@@ -329,4 +330,16 @@
     return defaultURL;
 }
 
+- (void)setDefaultURLToCurrentURL:(id)sender
+{
+    NSWindowController *windowController = [[NSApp keyWindow] windowController];
+    NSString *customDefaultURL = nil;
+
+    if ([windowController isKindOfClass:[BrowserWindowController class]])
+        customDefaultURL = [[(BrowserWindowController *)windowController currentURL] absoluteString];
+
+    if (customDefaultURL)
+        [[NSUserDefaults standardUserDefaults] setObject:customDefaultURL forKey:DefaultURLPreferenceKey];
+}
+
 @end

Modified: trunk/Tools/MiniBrowser/mac/WK1BrowserWindowController.h (186603 => 186604)


--- trunk/Tools/MiniBrowser/mac/WK1BrowserWindowController.h	2015-07-09 19:30:25 UTC (rev 186603)
+++ trunk/Tools/MiniBrowser/mac/WK1BrowserWindowController.h	2015-07-09 19:31:09 UTC (rev 186604)
@@ -27,7 +27,7 @@
 
 @class WebView;
 
-@interface WK1BrowserWindowController : BrowserWindowController<BrowserController> {
+@interface WK1BrowserWindowController : BrowserWindowController {
     WebView *_webView;
 }
 

Modified: trunk/Tools/MiniBrowser/mac/WK1BrowserWindowController.m (186603 => 186604)


--- trunk/Tools/MiniBrowser/mac/WK1BrowserWindowController.m	2015-07-09 19:30:25 UTC (rev 186603)
+++ trunk/Tools/MiniBrowser/mac/WK1BrowserWindowController.m	2015-07-09 19:31:09 UTC (rev 186604)
@@ -244,6 +244,11 @@
 {
 }
 
+- (NSURL *)currentURL
+{
+    return _webView.mainFrame.dataSource.request.URL;
+}
+
 - (void)didChangeSettings
 {
     SettingsController *settings = [SettingsController shared];

Modified: trunk/Tools/MiniBrowser/mac/WK2BrowserWindowController.h (186603 => 186604)


--- trunk/Tools/MiniBrowser/mac/WK2BrowserWindowController.h	2015-07-09 19:30:25 UTC (rev 186603)
+++ trunk/Tools/MiniBrowser/mac/WK2BrowserWindowController.h	2015-07-09 19:31:09 UTC (rev 186604)
@@ -27,7 +27,7 @@
 
 #if WK_API_ENABLED
 
-@interface WK2BrowserWindowController : BrowserWindowController <BrowserController>
+@interface WK2BrowserWindowController : BrowserWindowController
 
 - (instancetype)initWithConfiguration:(WKWebViewConfiguration *)configuration;
 

Modified: trunk/Tools/MiniBrowser/mac/WK2BrowserWindowController.m (186603 => 186604)


--- trunk/Tools/MiniBrowser/mac/WK2BrowserWindowController.m	2015-07-09 19:30:25 UTC (rev 186603)
+++ trunk/Tools/MiniBrowser/mac/WK2BrowserWindowController.m	2015-07-09 19:31:09 UTC (rev 186604)
@@ -254,6 +254,11 @@
 {
 }
 
+- (NSURL *)currentURL
+{
+    return _webView.URL;
+}
+
 - (BOOL)validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)item
 {
     SEL action = ""
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to