final class ExternalBrowserWindowController: NSWindowController {
- @IBOutlet var webView: WebView!
- @IBOutlet var goSegment: NSSegmentedControl!
- @IBOutlet var bookmarkListView: NSView!
+ @IBOutlet private var webView: WebView!
+ @IBOutlet private var goSegment: NSSegmentedControl!
+ @IBOutlet private var bookmarkListView: NSView!
private var canGoBackObservation: NSKeyValueObservation?
private var canGoForwardObservation: NSKeyValueObservation?
@objc dynamic var canResize: Bool = true {
willSet {
- if canResize == newValue { return }
+
+ if canResize == newValue {
+
+ return
+ }
if newValue {
@objc dynamic var canScroll: Bool = true {
willSet {
- if canScroll == newValue { return }
+
+ if canScroll == newValue {
+
+ return
+ }
webView?.mainFrame.frameView.allowsScrolling = newValue
}
var windowContentSize: NSSize {
get {
- guard let window = window else { return .zero }
+
+ guard let window = window else {
+
+ return .zero
+ }
return window.contentRect(forFrameRect: window.frame).size
}
set {
- guard let window = window else { return }
+
+ guard let window = window else {
+
+ return
+ }
var contentRect: NSRect = .zero
contentRect.size = newValue
private lazy var bookmarkListViwController: BookmarkListViewController? = { [weak self] in
- guard let `self` = self else { return nil }
+ guard let `self` = self else {
+
+ return nil
+ }
let controller = BookmarkListViewController()
self.bookmarkListView = controller.view
canGoBackObservation = webView.observe(\WebView.canGoBack) { [weak self] _, _ in
- guard let `self` = self else { return }
+ guard let `self` = self else {
+
+ return
+ }
self.goSegment.setEnabled(self.webView.canGoBack, forSegment: 0)
}
canGoForwardObservation = webView.observe(\WebView.canGoForward) { [weak self] _, _ in
- guard let `self` = self else { return }
+ guard let `self` = self else {
+
+ return
+ }
self.goSegment.setEnabled(self.webView.canGoForward, forSegment: 1)
}
if !canMovePage {
AppDelegate.shared.createNewBrowser().move(bookmark: bookmark)
+
return
}
override func validateMenuItem(_ menuItem: NSMenuItem) -> Bool {
- guard let action = menuItem.action else { return false }
+ guard let action = menuItem.action else {
+
+ return false
+ }
switch action {
case #selector(ExternalBrowserWindowController.addBookmark(_:)):
+
return webView.mainFrameURL != nil
case #selector(ExternalBrowserWindowController.showBookmark(_:)):
+
if showsBookmarkList() {
menuItem.title = LocalizedStrings.hideBookmark.string
menuItem.title = LocalizedStrings.showBookmark.string
}
+
return true
case #selector(ExternalBrowserWindowController.selectBookmark(_:)):
+
return true
case #selector(ExternalBrowserWindowController.reloadContent(_:)):
+
return true
default:
+
return false
+
}
}
@IBAction func selectBookmark(_ sender: AnyObject?) {
- guard let item = sender?.representedObject as? Bookmark else { return }
+ guard let item = sender?.representedObject as? Bookmark else {
+
+ return
+ }
move(bookmark: item)
}
@IBAction func clickGoBackSegment(_ sender: AnyObject?) {
- guard let cell = goSegment.cell as? NSSegmentedCell else { return }
+ guard let cell = goSegment.cell as? NSSegmentedCell else {
+
+ return
+ }
let tag = cell.tag(forSegment: cell.selectedSegment)
switch tag {
case 1: webView.goForward(nil)
default: break
+
}
}
@IBAction func addBookmark(_ sender: AnyObject?) {
- guard let window = window else { return }
- guard let bookmark = BookmarkManager.shared.createNewBookmark() else { return }
-
- bookmark.name = window.title
- bookmark.urlString = webView.mainFrameURL
- bookmark.windowContentSize = windowContentSize
- bookmark.contentVisibleRect = contentVisibleRect
- bookmark.canResize = canResize
- bookmark.canScroll = canScroll
- bookmark.scrollDelay = 0.5
+ guard let window = window else {
+
+ return
+ }
+ _ = BookmarkManager.shared.createNewBookmark { bookmark in
+
+ bookmark.name = window.title
+ bookmark.urlString = self.webView.mainFrameURL
+ bookmark.windowContentSize = self.windowContentSize
+ bookmark.contentVisibleRect = self.contentVisibleRect
+ bookmark.canResize = self.canResize
+ bookmark.canScroll = self.canScroll
+ bookmark.scrollDelay = 0.5
+
+ return true
+ }
}
@IBAction func showBookmark(_ sender: AnyObject?) {
- guard let window = window else { return }
- guard let _ = bookmarkListViwController else { return }
- guard !bookmarkShowing else { return }
+ guard let window = window else {
+
+ return
+ }
+ guard let _ = bookmarkListViwController else {
+
+ return
+ }
+ guard !bookmarkShowing else {
+
+ return
+ }
bookmarkShowing = true
@IBAction func increaseWidth(_ sender: AnyObject?) {
- guard let window = window else { return }
+ guard let window = window else {
+
+ return
+ }
var frame = window.frame
frame.size.width += 1
@IBAction func decreaseWidth(_ sender: AnyObject?) {
- guard let window = window else { return }
+ guard let window = window else {
+
+ return
+ }
var frame = window.frame
frame.size.width -= 1
@IBAction func increaseHeight(_ sender: AnyObject?) {
- guard let window = window else { return }
+ guard let window = window else {
+
+ return
+ }
var frame = window.frame
frame.size.height += 1
@IBAction func decreaseHeight(_ sender: AnyObject?) {
- guard let window = window else { return }
+ guard let window = window else {
+
+ return
+ }
var frame = window.frame
frame.size.height -= 1
@objc func updateContentVisibleRect(_ timer: Timer) {
- guard let item = timer.userInfo as? Bookmark else { return }
+ guard let item = timer.userInfo as? Bookmark else {
+
+ return
+ }
contentVisibleRect = item.contentVisibleRect
}