Changeset 210483 in webkit
- Timestamp:
- Jan 7, 2017, 1:10:21 PM (8 years ago)
- Location:
- trunk/Tools
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r210482 r210483 1 2017-01-07 Tim Horton <timothy_horton@apple.com> 2 3 Add the ability to create empty contentEditable windows in MiniBrowser 4 https://bugs.webkit.org/show_bug.cgi?id=166801 5 6 Reviewed by Wenson Hsieh. 7 8 * MiniBrowser/mac/AppDelegate.h: 9 * MiniBrowser/mac/AppDelegate.m: 10 (-[BrowserAppDelegate createBrowserWindowController:]): 11 (-[BrowserAppDelegate newWindow:]): 12 (-[BrowserAppDelegate newEditorWindow:]): 13 (-[BrowserAppDelegate openDocument:]): 14 (-[BrowserAppDelegate _updateNewWindowKeyEquivalents]): 15 * MiniBrowser/mac/BrowserWindowController.h: 16 * MiniBrowser/mac/BrowserWindowController.m: 17 (-[BrowserWindowController loadHTMLString:]): 18 (-[BrowserWindowController toggleEditable:]): 19 * MiniBrowser/mac/MainMenu.xib: 20 * MiniBrowser/mac/WK1BrowserWindowController.m: 21 (-[WK1BrowserWindowController awakeFromNib]): 22 (-[WK1BrowserWindowController loadHTMLString:]): 23 (-[WK1BrowserWindowController validateMenuItem:]): 24 (-[WK1BrowserWindowController setEditable:]): 25 (-[WK1BrowserWindowController updateTitle:]): 26 * MiniBrowser/mac/WK2BrowserWindowController.m: 27 (-[WK2BrowserWindowController awakeFromNib]): 28 (-[WK2BrowserWindowController validateMenuItem:]): 29 (-[WK2BrowserWindowController setEditable:]): 30 (-[WK2BrowserWindowController updateTitle:]): 31 (-[WK2BrowserWindowController loadHTMLString:]): 32 Merge more functionality from WebEditingTester. 33 Add two menu items for creating empty editable WebKit1/2 windows. 34 Add a menu item to the Edit menu to toggle editability on any window. 35 1 36 2017-01-07 Tim Horton <timothy_horton@apple.com> 2 37 -
trunk/Tools/MiniBrowser/mac/AppDelegate.h
r204397 r210483 34 34 IBOutlet NSMenuItem *_newWebKit1WindowItem; 35 35 IBOutlet NSMenuItem *_newWebKit2WindowItem; 36 IBOutlet NSMenuItem *_newWebKit1EditorItem; 37 IBOutlet NSMenuItem *_newWebKit2EditorItem; 36 38 } 37 39 -
trunk/Tools/MiniBrowser/mac/AppDelegate.m
r209717 r210483 45 45 enum { 46 46 WebKit1NewWindowTag = 1, 47 WebKit2NewWindowTag = 2 47 WebKit2NewWindowTag = 2, 48 WebKit1NewEditorTag = 3, 49 WebKit2NewEditorTag = 4 48 50 }; 49 51 … … 121 123 #endif 122 124 123 124 - (IBAction)newWindow:(id)sender 125 - (BrowserWindowController *)createBrowserWindowController:(id)sender 125 126 { 126 127 BrowserWindowController *controller = nil; 127 128 128 BOOL useWebKit2 = NO; 129 BOOL makeEditable = NO; 129 130 130 131 if (![sender respondsToSelector:@selector(tag)]) 131 132 useWebKit2 = [SettingsController shared].useWebKit2ByDefault; 132 else 133 useWebKit2 = [sender tag] == WebKit2NewWindowTag; 134 133 else { 134 useWebKit2 = [sender tag] == WebKit2NewWindowTag || [sender tag] == WebKit2NewEditorTag; 135 makeEditable = [sender tag] == WebKit1NewEditorTag || [sender tag] == WebKit2NewEditorTag; 136 } 137 135 138 if (!useWebKit2) 136 139 controller = [[WK1BrowserWindowController alloc] initWithWindowNibName:@"BrowserWindow"]; … … 139 142 controller = [[WK2BrowserWindowController alloc] initWithConfiguration:defaultConfiguration()]; 140 143 #endif 144 145 if (makeEditable) 146 controller.editable = YES; 147 148 if (!controller) 149 return nil; 150 151 [_browserWindowControllers addObject:controller]; 152 153 return controller; 154 } 155 156 - (IBAction)newWindow:(id)sender 157 { 158 BrowserWindowController *controller = [self createBrowserWindowController:sender]; 141 159 if (!controller) 142 160 return; 143 161 144 162 [[controller window] makeKeyAndOrderFront:sender]; 145 [_browserWindowControllers addObject:controller];146 147 163 [controller loadURLString:[SettingsController shared].defaultURL]; 148 164 } … … 162 178 [controller loadURLString:[SettingsController shared].defaultURL]; 163 179 #endif 180 } 181 182 - (IBAction)newEditorWindow:(id)sender 183 { 184 BrowserWindowController *controller = [self createBrowserWindowController:sender]; 185 if (!controller) 186 return; 187 188 [[controller window] makeKeyAndOrderFront:sender]; 189 [controller loadHTMLString:@"<html><body></body></html>"]; 164 190 } 165 191 … … 223 249 return; 224 250 225 BrowserWindowController * newBrowserWindowController = [[WK1BrowserWindowController alloc] initWithWindowNibName:@"BrowserWindow"];226 [ newBrowserWindowController.window makeKeyAndOrderFront:self];251 BrowserWindowController *controller = [self createBrowserWindowController:nil]; 252 [controller.window makeKeyAndOrderFront:self]; 227 253 228 254 NSURL *url = [openPanel.URLs objectAtIndex:0]; 229 [ newBrowserWindowController loadURLString:[url absoluteString]];255 [controller loadURLString:[url absoluteString]]; 230 256 }]; 231 257 } … … 242 268 - (void)_updateNewWindowKeyEquivalents 243 269 { 244 if ([[SettingsController shared] useWebKit2ByDefault]) {245 [_newWebKit1WindowItem setKeyEquivalentModifierMask:NSEventModifierFlagCommand | NSEventModifierFlagOption];246 [_newWebKit2WindowItem setKeyEquivalentModifierMask:NSEventModifierFlagCommand]; 247 } else {248 [_newWebKit1WindowItem setKeyEquivalentModifierMask:NSEventModifierFlagCommand];249 [_newWebKit2WindowItem setKeyEquivalentModifierMask:NSEventModifierFlagCommand | NSEventModifierFlagOption];250 }270 NSEventModifierFlags webKit1Flags = [SettingsController shared].useWebKit2ByDefault ? NSEventModifierFlagOption : 0; 271 NSEventModifierFlags webKit2Flags = [SettingsController shared].useWebKit2ByDefault ? 0 : NSEventModifierFlagOption; 272 273 _newWebKit1WindowItem.keyEquivalentModifierMask = NSEventModifierFlagCommand | webKit1Flags; 274 _newWebKit2WindowItem.keyEquivalentModifierMask = NSEventModifierFlagCommand | webKit2Flags; 275 _newWebKit1EditorItem.keyEquivalentModifierMask = NSEventModifierFlagCommand | webKit1Flags; 276 _newWebKit2EditorItem.keyEquivalentModifierMask = NSEventModifierFlagCommand | webKit2Flags; 251 277 } 252 278 -
trunk/Tools/MiniBrowser/mac/BrowserWindowController.h
r210482 r210483 41 41 42 42 - (void)loadURLString:(NSString *)urlString; 43 - (void)loadHTMLString:(NSString *)HTMLString; 43 44 - (NSString *)addProtocolIfNecessary:(NSString *)address; 44 45 … … 80 81 - (CGFloat)pageScaleForMenuItemTag:(NSInteger)tag; 81 82 83 @property (nonatomic, assign, getter=isEditable) BOOL editable; 84 - (IBAction)toggleEditable:(id)sender; 85 82 86 @end 83 87 -
trunk/Tools/MiniBrowser/mac/BrowserWindowController.m
r210482 r210483 59 59 } 60 60 61 - (void)loadHTMLString:(NSString *)HTMLString 62 { 63 } 64 61 65 - (void)applicationTerminating 62 66 { … … 212 216 } 213 217 218 - (IBAction)toggleEditable:(id)sender 219 { 220 self.editable = !self.isEditable; 221 } 222 214 223 #pragma mark - 215 224 #pragma mark NSSharingServicePickerDelegate -
trunk/Tools/MiniBrowser/mac/MainMenu.xib
r210482 r210483 89 89 </connections> 90 90 </menuItem> 91 <menuItem title="New WebKit1 Editor" tag="3" keyEquivalent="N" id="jNR-Z3-YWi" userLabel="New WebKit1 Editor"> 92 <connections> 93 <action selector="newEditorWindow:" target="-1" id="Nv5-c0-KRP"/> 94 </connections> 95 </menuItem> 96 <menuItem title="New WebKit2 Editor" tag="4" keyEquivalent="N" id="IdI-wb-1JD" userLabel="New WebKit2 Editor"> 97 <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/> 98 <connections> 99 <action selector="newEditorWindow:" target="-1" id="kk6-R4-iec"/> 100 </connections> 101 </menuItem> 91 102 <menuItem title="Openβ¦" keyEquivalent="o" id="72"> 92 103 <connections> … … 159 170 <connections> 160 171 <action selector="redo:" target="-1" id="231"/> 172 </connections> 173 </menuItem> 174 <menuItem isSeparatorItem="YES" id="fUL-7k-Dqg"> 175 <modifierMask key="keyEquivalentModifierMask" command="YES"/> 176 </menuItem> 177 <menuItem title="Editable" id="kG4-hS-JbX"> 178 <modifierMask key="keyEquivalentModifierMask"/> 179 <connections> 180 <action selector="toggleEditable:" target="-1" id="6my-b2-eff"/> 161 181 </connections> 162 182 </menuItem> … … 567 587 <customObject id="494" customClass="BrowserAppDelegate"> 568 588 <connections> 589 <outlet property="_newWebKit1EditorItem" destination="jNR-Z3-YWi" id="6wB-Aa-CK7"/> 569 590 <outlet property="_newWebKit1WindowItem" destination="573" id="ZCj-u2-PU7"/> 591 <outlet property="_newWebKit2EditorItem" destination="IdI-wb-1JD" id="DIr-pe-XI8"/> 570 592 <outlet property="_newWebKit2WindowItem" destination="571" id="1Gv-mK-aul"/> 571 593 </connections> -
trunk/Tools/MiniBrowser/mac/WK1BrowserWindowController.m
r210482 r210483 45 45 [_webView setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)]; 46 46 47 _webView.editable = self.isEditable; 48 47 49 [_webView setFrameLoadDelegate:self]; 48 50 [_webView setUIDelegate:self]; … … 78 80 [urlText setStringValue:urlString]; 79 81 [self fetch:nil]; 82 } 83 84 - (void)loadHTMLString:(NSString *)HTMLString 85 { 86 [_webView.mainFrame loadHTMLString:HTMLString baseURL:nil]; 80 87 } 81 88 … … 140 147 else if (action == @selector(toggleZoomMode:)) 141 148 [menuItem setState:_zoomTextOnly ? NSOnState : NSOffState]; 149 else if (action == @selector(toggleEditable:)) 150 [menuItem setState:self.isEditable ? NSOnState : NSOffState]; 142 151 143 152 if (action == @selector(setPageScale:)) … … 246 255 { 247 256 return _webView; 257 } 258 259 - (void)setEditable:(BOOL)editable 260 { 261 [super setEditable:editable]; 262 _webView.editable = editable; 248 263 } 249 264 … … 318 333 title = url.lastPathComponent ?: url._web_userVisibleString; 319 334 } 320 321 [self.window setTitle:[title stringByAppending String:@" [WK1]"]];335 336 [self.window setTitle:[title stringByAppendingFormat:@" [WK1]%@", _webView.editable ? @" [Editable]" : @""]]; 322 337 } 323 338 -
trunk/Tools/MiniBrowser/mac/WK2BrowserWindowController.m
r210482 r210483 70 70 _webView.allowsMagnification = YES; 71 71 _webView.allowsBackForwardNavigationGestures = YES; 72 _webView._editable = self.isEditable; 72 73 73 74 [_webView setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)]; … … 202 203 else if (action == @selector(toggleZoomMode:)) 203 204 [menuItem setState:_zoomTextOnly ? NSOnState : NSOffState]; 205 else if (action == @selector(toggleEditable:)) 206 [menuItem setState:self.isEditable ? NSOnState : NSOffState]; 204 207 205 208 if (action == @selector(setPageScale:)) … … 285 288 } 286 289 290 - (void)setEditable:(BOOL)editable 291 { 292 [super setEditable:editable]; 293 _webView._editable = editable; 294 } 295 287 296 - (BOOL)validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)item 288 297 { … … 416 425 } 417 426 418 self.window.title = [NSString stringWithFormat:@"%@%@ [WK2 %d] ", _isPrivateBrowsingWindow ? @"π " : @"", title, _webView._webProcessIdentifier];427 self.window.title = [NSString stringWithFormat:@"%@%@ [WK2 %d]%@", _isPrivateBrowsingWindow ? @"π " : @"", title, _webView._webProcessIdentifier, _webView._editable ? @" [Editable]" : @""]; 419 428 } 420 429 … … 524 533 [urlText setStringValue:urlString]; 525 534 [self fetch:nil]; 535 } 536 537 - (void)loadHTMLString:(NSString *)HTMLString 538 { 539 [_webView loadHTMLString:HTMLString baseURL:nil]; 526 540 } 527 541
Note:
See TracChangeset
for help on using the changeset viewer.