From d5a0dd39a15deb0b09af2eca6111668b3014fab5 Mon Sep 17 00:00:00 2001 From: Daniel Pham Date: Mon, 21 Nov 2016 13:30:13 -0500 Subject: [PATCH] :gift: Add 'win.closeFilePreview()' --- atom/browser/api/atom_api_window.cc | 5 +++++ atom/browser/api/atom_api_window.h | 1 + atom/browser/native_window.cc | 3 +++ atom/browser/native_window.h | 3 +++ atom/browser/native_window_mac.h | 1 + atom/browser/native_window_mac.mm | 6 ++++++ docs/api/browser-window.md | 4 ++++ 7 files changed, 23 insertions(+) diff --git a/atom/browser/api/atom_api_window.cc b/atom/browser/api/atom_api_window.cc index 75be280..358c884 100644 --- a/atom/browser/api/atom_api_window.cc +++ b/atom/browser/api/atom_api_window.cc @@ -736,6 +736,10 @@ void Window::PreviewFile(const std::string& path, mate::Arguments* args) { window_->PreviewFile(path, display_name); } +void Window::CloseFilePreview() { + window_->CloseFilePreview(); +} + void Window::SetParentWindow(v8::Local value, mate::Arguments* args) { if (IsModal()) { @@ -840,6 +844,7 @@ void Window::BuildPrototype(v8::Isolate* isolate, .SetMethod("isFullScreen", &Window::IsFullscreen) .SetMethod("setAspectRatio", &Window::SetAspectRatio) .SetMethod("previewFile", &Window::PreviewFile) + .SetMethod("closeFilePreview", &Window::CloseFilePreview) #if !defined(OS_WIN) .SetMethod("setParentWindow", &Window::SetParentWindow) #endif diff --git a/atom/browser/api/atom_api_window.h b/atom/browser/api/atom_api_window.h index 8a5b95b..c06d9ec 100644 --- a/atom/browser/api/atom_api_window.h +++ b/atom/browser/api/atom_api_window.h @@ -171,6 +171,7 @@ class Window : public mate::TrackableObject, bool IsMenuBarVisible(); void SetAspectRatio(double aspect_ratio, mate::Arguments* args); void PreviewFile(const std::string& path, mate::Arguments* args); + void CloseFilePreview(); void SetParentWindow(v8::Local value, mate::Arguments* args); v8::Local GetParentWindow() const; std::vector> GetChildWindows() const; diff --git a/atom/browser/native_window.cc b/atom/browser/native_window.cc index 92419d3..6493476 100644 --- a/atom/browser/native_window.cc +++ b/atom/browser/native_window.cc @@ -381,6 +381,9 @@ void NativeWindow::PreviewFile(const std::string& path, const std::string& display_name) { } +void NativeWindow::CloseFilePreview() { +} + void NativeWindow::RequestToClosePage() { bool prevent_default = false; FOR_EACH_OBSERVER(NativeWindowObserver, diff --git a/atom/browser/native_window.h b/atom/browser/native_window.h index b5e2cf3..4c1d0a9 100644 --- a/atom/browser/native_window.h +++ b/atom/browser/native_window.h @@ -179,8 +179,11 @@ class NativeWindow : public base::SupportsUserData, double GetAspectRatio(); gfx::Size GetAspectRatioExtraSize(); virtual void SetAspectRatio(double aspect_ratio, const gfx::Size& extra_size); + + // File preview APIs. virtual void PreviewFile(const std::string& path, const std::string& display_name); + virtual void CloseFilePreview(); base::WeakPtr GetWeakPtr() { return weak_factory_.GetWeakPtr(); diff --git a/atom/browser/native_window_mac.h b/atom/browser/native_window_mac.h index 7c4d2b4..3f781a7 100644 --- a/atom/browser/native_window_mac.h +++ b/atom/browser/native_window_mac.h @@ -57,6 +57,7 @@ class NativeWindowMac : public NativeWindow, override; void PreviewFile(const std::string& path, const std::string& display_name) override; + void CloseFilePreview() override; bool IsMovable() override; void SetMinimizable(bool minimizable) override; bool IsMinimizable() override; diff --git a/atom/browser/native_window_mac.mm b/atom/browser/native_window_mac.mm index 5ba0700..0e7aadb 100644 --- a/atom/browser/native_window_mac.mm +++ b/atom/browser/native_window_mac.mm @@ -1004,6 +1004,12 @@ void NativeWindowMac::PreviewFile(const std::string& path, [window_ previewFileAtPath:path_ns withName:name_ns]; } +void NativeWindowMac::CloseFilePreview() { + if ([QLPreviewPanel sharedPreviewPanelExists]) { + [[QLPreviewPanel sharedPreviewPanel] close]; + } +} + void NativeWindowMac::SetMovable(bool movable) { [window_ setMovable:movable]; } diff --git a/docs/api/browser-window.md b/docs/api/browser-window.md index 40a2cca..aa70743 100644 --- a/docs/api/browser-window.md +++ b/docs/api/browser-window.md @@ -682,6 +682,10 @@ height areas you have within the overall content view. Uses [Quick Look][quick-look] to preview a file at a given path. +#### `win.closeFilePreview()` _macOS_ + +Closes the currently open [Quick Look][quick-look] panel. + #### `win.setBounds(bounds[, animate])` * `bounds` [Rectangle](structures/rectangle.md) -- 2.7.4