Title: [177474] branches/safari-600.3-branch/Source/WebKit2

Diff

Modified: branches/safari-600.3-branch/Source/WebKit2/ChangeLog (177473 => 177474)


--- branches/safari-600.3-branch/Source/WebKit2/ChangeLog	2014-12-18 00:15:19 UTC (rev 177473)
+++ branches/safari-600.3-branch/Source/WebKit2/ChangeLog	2014-12-18 00:25:14 UTC (rev 177474)
@@ -1,3 +1,35 @@
+2014-12-17  Matthew Hanson  <[email protected]>
+
+        Merge r177402. rdar://problem/19266297
+
+    2014-12-16  Conrad Shultz  <[email protected]>
+
+            Add a progress indicator to the preview popover
+            https://bugs.webkit.org/show_bug.cgi?id=139699
+
+            Reviewed by Tim Horton.
+
+            * UIProcess/API/Cocoa/WKViewPrivate.h:
+            * UIProcess/API/mac/WKView.mm:
+            (-[WKView _setPreviewLoading:]):
+            Wrap -[WKImmediateActionController setPreviewLoading:].
+
+            * UIProcess/mac/WKImmediateActionController.h:
+            * UIProcess/mac/WKImmediateActionController.mm:
+            (-[WKImmediateActionController _createPreviewPopoverIfNeededForURL:]):
+            Flag the preview view controller as loading before beginning the load.
+            (-[WKImmediateActionController setPreviewLoading:]):
+            Wrap -[WKPagePreviewViewController setLoading:].
+
+            * UIProcess/mac/WKPagePreviewViewController.h:
+            * UIProcess/mac/WKPagePreviewViewController.mm:
+            (-[WKPagePreviewViewController setLoading:]):
+            Toggle the progress indicator animation state.
+            (-[WKPagePreviewViewController isLoading]):
+            Accessor.
+            (-[WKPagePreviewViewController loadView]):
+            Create and center an indeterminate progress indicator that won't scale with the preview content.
+
 2014-12-16  Matthew Hanson  <[email protected]>
 
         Merge r177406. rdar://problem/19270279

Modified: branches/safari-600.3-branch/Source/WebKit2/UIProcess/API/Cocoa/WKViewPrivate.h (177473 => 177474)


--- branches/safari-600.3-branch/Source/WebKit2/UIProcess/API/Cocoa/WKViewPrivate.h	2014-12-18 00:15:19 UTC (rev 177473)
+++ branches/safari-600.3-branch/Source/WebKit2/UIProcess/API/Cocoa/WKViewPrivate.h	2014-12-18 00:25:14 UTC (rev 177474)
@@ -131,6 +131,7 @@
 - (NSView *)_viewForPreviewingURL:(NSURL *)url initialFrameSize:(NSSize)initialFrameSize;
 - (NSString *)_titleForPreviewOfURL:(NSURL *)url;
 - (void)_setPreviewTitle:(NSString *)previewTitle;
+- (void)_setPreviewLoading:(BOOL)loading;
 - (void)_finishPreviewingURL:(NSURL *)url withPreviewView:(NSView *)previewView;
 - (void)_handleClickInPreviewView:(NSView *)previewView URL:(NSURL *)url;
 - (BOOL)_shouldUseStandardQuickLookPreview;

Modified: branches/safari-600.3-branch/Source/WebKit2/UIProcess/API/mac/WKView.mm (177473 => 177474)


--- branches/safari-600.3-branch/Source/WebKit2/UIProcess/API/mac/WKView.mm	2014-12-18 00:15:19 UTC (rev 177473)
+++ branches/safari-600.3-branch/Source/WebKit2/UIProcess/API/mac/WKView.mm	2014-12-18 00:25:14 UTC (rev 177474)
@@ -4349,6 +4349,13 @@
 #endif
 }
 
+- (void)_setPreviewLoading:(BOOL)loading
+{
+#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000 && WK_API_ENABLED
+    [_data->_immediateActionController setPreviewLoading:loading];
+#endif
+}
+
 - (void)_finishPreviewingURL:(NSURL *)url withPreviewView:(NSView *)previewView
 {
 }

Modified: branches/safari-600.3-branch/Source/WebKit2/UIProcess/mac/WKImmediateActionController.h (177473 => 177474)


--- branches/safari-600.3-branch/Source/WebKit2/UIProcess/mac/WKImmediateActionController.h	2014-12-18 00:15:19 UTC (rev 177473)
+++ branches/safari-600.3-branch/Source/WebKit2/UIProcess/mac/WKImmediateActionController.h	2014-12-18 00:25:14 UTC (rev 177474)
@@ -80,6 +80,7 @@
 #if WK_API_ENABLED
 - (void)hidePreview;
 - (void)setPreviewTitle:(NSString *)previewTitle;
+- (void)setPreviewLoading:(BOOL)loading;
 #endif // WK_API_ENABLED
 
 @end

Modified: branches/safari-600.3-branch/Source/WebKit2/UIProcess/mac/WKImmediateActionController.mm (177473 => 177474)


--- branches/safari-600.3-branch/Source/WebKit2/UIProcess/mac/WKImmediateActionController.mm	2014-12-18 00:15:19 UTC (rev 177473)
+++ branches/safari-600.3-branch/Source/WebKit2/UIProcess/mac/WKImmediateActionController.mm	2014-12-18 00:25:14 UTC (rev 177474)
@@ -287,6 +287,7 @@
 
     _previewViewController = adoptNS([[WKPagePreviewViewController alloc] initWithPageURL:url mainViewSize:_wkView.bounds.size popoverToViewScale:actualPopoverToViewScale]);
     _previewViewController->_delegate = self;
+    [_previewViewController setLoading:YES];
     [_previewViewController loadView];
 
     _previewPopover = adoptNS([[NSPopover alloc] init]);
@@ -315,6 +316,11 @@
     [_previewViewController setPreviewTitle:previewTitle];
 }
 
+- (void)setPreviewLoading:(BOOL)loading
+{
+    [_previewViewController setLoading:loading];
+}
+
 - (void)popoverWillClose:(NSNotification *)notification
 {
     [self hidePreview];

Modified: branches/safari-600.3-branch/Source/WebKit2/UIProcess/mac/WKPagePreviewViewController.h (177473 => 177474)


--- branches/safari-600.3-branch/Source/WebKit2/UIProcess/mac/WKPagePreviewViewController.h	2014-12-18 00:15:19 UTC (rev 177473)
+++ branches/safari-600.3-branch/Source/WebKit2/UIProcess/mac/WKPagePreviewViewController.h	2014-12-18 00:25:14 UTC (rev 177474)
@@ -49,11 +49,14 @@
     RetainPtr<NSView> _previewView;
     RetainPtr<NSTextField> _titleTextField;
     RetainPtr<NSString> _previewTitle;
+    RetainPtr<NSProgressIndicator> _spinner;
+    BOOL _loading;
     id <WKPagePreviewViewControllerDelegate> _delegate;
     CGFloat _popoverToViewScale;
 }
 
 @property (nonatomic, copy) NSString *previewTitle;
+@property (nonatomic, getter=isLoading) BOOL loading;
 
 - (instancetype)initWithPageURL:(NSURL *)URL mainViewSize:(NSSize)size popoverToViewScale:(CGFloat)scale;
 

Modified: branches/safari-600.3-branch/Source/WebKit2/UIProcess/mac/WKPagePreviewViewController.mm (177473 => 177474)


--- branches/safari-600.3-branch/Source/WebKit2/UIProcess/mac/WKPagePreviewViewController.mm	2014-12-18 00:15:19 UTC (rev 177473)
+++ branches/safari-600.3-branch/Source/WebKit2/UIProcess/mac/WKPagePreviewViewController.mm	2014-12-18 00:25:14 UTC (rev 177474)
@@ -67,6 +67,24 @@
     return NSMakeSize(2 * previewViewInset, previewViewTitleHeight + 2 * previewViewInset);
 }
 
+- (void)setLoading:(BOOL)loading
+{
+    if (_loading == loading)
+        return;
+
+    _loading = loading;
+
+    if (_loading)
+        [_spinner startAnimation:nil];
+    else
+        [_spinner stopAnimation:nil];
+}
+
+- (BOOL)isLoading
+{
+    return _loading;
+}
+
 - (void)loadView
 {
     NSRect defaultFrame = NSMakeRect(0, 0, _mainViewSize.width, _mainViewSize.height);
@@ -126,6 +144,22 @@
     [_titleTextField setFrame:titleFrame];
     [containerView addSubview:_titleTextField.get()];
 
+    NSSize spinnerSize = NSMakeSize(48, 48);
+    NSRect spinnerFrame = NSMakeRect(NSMidX(containerFrame), NSMidY(containerFrame), 0, 0);
+    spinnerFrame = NSInsetRect(spinnerFrame, -spinnerSize.width * 0.5, -spinnerSize.height * 0.5);
+    spinnerFrame.origin.x = floor(spinnerFrame.origin.x);
+    spinnerFrame.origin.y = floor(spinnerFrame.origin.y);
+
+    _spinner = adoptNS([[NSProgressIndicator alloc] initWithFrame:spinnerFrame]);
+    [_spinner setStyle:NSProgressIndicatorSpinningStyle];
+    [_spinner setDisplayedWhenStopped:NO];
+    [_spinner setAutoresizingMask:NSViewMinXMargin | NSViewMaxXMargin | NSViewMinYMargin | NSViewMaxYMargin];
+    [_spinner setAppearance:[NSAppearance appearanceNamed:NSAppearanceNameAqua]];
+    if (_loading)
+        [_spinner startAnimation:nil];
+
+    [containerView addSubview:_spinner.get()];
+
     // Setting the webView bounds will scale it to 75% of the _mainViewSize.
     [_previewView setBounds:NSMakeRect(0, 0, _mainViewSize.width / _popoverToViewScale, _mainViewSize.height / _popoverToViewScale)];
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to