From ef63c182654fd4f6ced5c762c8ee73b38583a956 Mon Sep 17 00:00:00 2001 From: Angelo Stavrow Date: Sat, 5 Sep 2020 09:13:51 -0400 Subject: [PATCH 1/4] Set window title based on type of Inspector being shown --- Mac/Inspector/InspectorWindowController.swift | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/Mac/Inspector/InspectorWindowController.swift b/Mac/Inspector/InspectorWindowController.swift index 01e476bc0..b06f3d646 100644 --- a/Mac/Inspector/InspectorWindowController.swift +++ b/Mac/Inspector/InspectorWindowController.swift @@ -108,7 +108,32 @@ private extension InspectorWindowController { guard let window = window else { return } - + + switch inspector { + case is NothingInspectorViewController: + window.title = NSLocalizedString("Inspector", comment: "Inspector window title") + case is FolderInspectorViewController: + if let folderName = (inspector as? FolderInspectorViewController)?.nameTextField?.stringValue { + window.title = folderName + } else { + window.title = NSLocalizedString("Folder Inspector", comment: "Folder Inspector window title") + } + case is WebFeedInspectorViewController: + if let feedName = (inspector as? WebFeedInspectorViewController)?.nameTextField?.stringValue { + window.title = feedName + } else { + window.title = NSLocalizedString("Feed Inspector", comment: "Feed Inspector window title") + } + case is BuiltinSmartFeedInspectorViewController: + if let smartFeedName = (inspector as? BuiltinSmartFeedInspectorViewController)?.nameTextField?.stringValue { + window.title = smartFeedName + } else { + window.title = NSLocalizedString("Smart Feed Inspector", comment: "Smart Feed Inspector window title") + } + default: + window.title = NSLocalizedString("Inspector", comment: "Inspector window title") + } + let flippedOrigin = window.flippedOrigin if window.contentViewController != inspector { From c7aa5656d8dbe6ddae0838d1bfdafd2bdf984d05 Mon Sep 17 00:00:00 2001 From: Angelo Stavrow Date: Mon, 7 Sep 2020 13:34:37 -0400 Subject: [PATCH 2/4] Add windowTitle var to Inspector protocol --- ...ltinSmartFeedInspectorViewController.swift | 1 + .../FolderInspectorViewController.swift | 1 + Mac/Inspector/InspectorWindowController.swift | 27 +++---------------- .../NothingInspectorViewController.swift | 1 + .../WebFeedInspectorViewController.swift | 1 + 5 files changed, 7 insertions(+), 24 deletions(-) diff --git a/Mac/Inspector/BuiltinSmartFeedInspectorViewController.swift b/Mac/Inspector/BuiltinSmartFeedInspectorViewController.swift index da31cc523..0ff8906e1 100644 --- a/Mac/Inspector/BuiltinSmartFeedInspectorViewController.swift +++ b/Mac/Inspector/BuiltinSmartFeedInspectorViewController.swift @@ -26,6 +26,7 @@ final class BuiltinSmartFeedInspectorViewController: NSViewController, Inspector updateSmartFeed() } } + var windowTitle: String = NSLocalizedString("Smart Feed Inspector", comment: "Smart Feed Inspector window title") func canInspect(_ objects: [Any]) -> Bool { diff --git a/Mac/Inspector/FolderInspectorViewController.swift b/Mac/Inspector/FolderInspectorViewController.swift index 45ca150f9..d59786df5 100644 --- a/Mac/Inspector/FolderInspectorViewController.swift +++ b/Mac/Inspector/FolderInspectorViewController.swift @@ -30,6 +30,7 @@ final class FolderInspectorViewController: NSViewController, Inspector { updateFolder() } } + var windowTitle: String = NSLocalizedString("Folder Inspector", comment: "Folder Inspector window title") func canInspect(_ objects: [Any]) -> Bool { diff --git a/Mac/Inspector/InspectorWindowController.swift b/Mac/Inspector/InspectorWindowController.swift index b06f3d646..23fcec72c 100644 --- a/Mac/Inspector/InspectorWindowController.swift +++ b/Mac/Inspector/InspectorWindowController.swift @@ -12,6 +12,7 @@ protocol Inspector: class { var objects: [Any]? { get set } var isFallbackInspector: Bool { get } // Can handle nothing-to-inspect or unexpected type of objects. + var windowTitle: String { get } func canInspect(_ objects: [Any]) -> Bool } @@ -62,6 +63,7 @@ final class InspectorWindowController: NSWindowController { inspectors = [feedInspector, folderInspector, builtinSmartFeedInspector, nothingInspector] currentInspector = nothingInspector + window?.title = currentInspector.windowTitle if let savedOrigin = originFromDefaults() { window?.setFlippedOriginAdjustingForScreen(savedOrigin) @@ -109,30 +111,7 @@ private extension InspectorWindowController { return } - switch inspector { - case is NothingInspectorViewController: - window.title = NSLocalizedString("Inspector", comment: "Inspector window title") - case is FolderInspectorViewController: - if let folderName = (inspector as? FolderInspectorViewController)?.nameTextField?.stringValue { - window.title = folderName - } else { - window.title = NSLocalizedString("Folder Inspector", comment: "Folder Inspector window title") - } - case is WebFeedInspectorViewController: - if let feedName = (inspector as? WebFeedInspectorViewController)?.nameTextField?.stringValue { - window.title = feedName - } else { - window.title = NSLocalizedString("Feed Inspector", comment: "Feed Inspector window title") - } - case is BuiltinSmartFeedInspectorViewController: - if let smartFeedName = (inspector as? BuiltinSmartFeedInspectorViewController)?.nameTextField?.stringValue { - window.title = smartFeedName - } else { - window.title = NSLocalizedString("Smart Feed Inspector", comment: "Smart Feed Inspector window title") - } - default: - window.title = NSLocalizedString("Inspector", comment: "Inspector window title") - } + window.title = inspector.windowTitle let flippedOrigin = window.flippedOrigin diff --git a/Mac/Inspector/NothingInspectorViewController.swift b/Mac/Inspector/NothingInspectorViewController.swift index f6ffb97f3..376e6a594 100644 --- a/Mac/Inspector/NothingInspectorViewController.swift +++ b/Mac/Inspector/NothingInspectorViewController.swift @@ -19,6 +19,7 @@ final class NothingInspectorViewController: NSViewController, Inspector { updateTextFields() } } + var windowTitle: String = NSLocalizedString("Inspector", comment: "Inspector window title") func canInspect(_ objects: [Any]) -> Bool { diff --git a/Mac/Inspector/WebFeedInspectorViewController.swift b/Mac/Inspector/WebFeedInspectorViewController.swift index ee4779a0d..f2451c546 100644 --- a/Mac/Inspector/WebFeedInspectorViewController.swift +++ b/Mac/Inspector/WebFeedInspectorViewController.swift @@ -38,6 +38,7 @@ final class WebFeedInspectorViewController: NSViewController, Inspector { updateFeed() } } + var windowTitle: String = NSLocalizedString("Feed Inspector", comment: "Feed Inspector window title") func canInspect(_ objects: [Any]) -> Bool { return objects.count == 1 && objects.first is WebFeed From 5f095e896635020d05b02f9065bfe04444de273d Mon Sep 17 00:00:00 2001 From: Angelo Stavrow Date: Mon, 7 Sep 2020 13:59:14 -0400 Subject: [PATCH 3/4] Set windowTitle in updateUI() method for *InspectorViewControllers --- Mac/Inspector/BuiltinSmartFeedInspectorViewController.swift | 1 + Mac/Inspector/FolderInspectorViewController.swift | 1 + Mac/Inspector/WebFeedInspectorViewController.swift | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Mac/Inspector/BuiltinSmartFeedInspectorViewController.swift b/Mac/Inspector/BuiltinSmartFeedInspectorViewController.swift index 0ff8906e1..8b59bec65 100644 --- a/Mac/Inspector/BuiltinSmartFeedInspectorViewController.swift +++ b/Mac/Inspector/BuiltinSmartFeedInspectorViewController.swift @@ -63,5 +63,6 @@ private extension BuiltinSmartFeedInspectorViewController { func updateUI() { nameTextField?.stringValue = smartFeed?.nameForDisplay ?? "" + windowTitle = smartFeed?.nameForDisplay ?? NSLocalizedString("Smart Feed Inspector", comment: "Smart Feed Inspector window title") } } diff --git a/Mac/Inspector/FolderInspectorViewController.swift b/Mac/Inspector/FolderInspectorViewController.swift index d59786df5..708802d9b 100644 --- a/Mac/Inspector/FolderInspectorViewController.swift +++ b/Mac/Inspector/FolderInspectorViewController.swift @@ -104,5 +104,6 @@ private extension FolderInspectorViewController { if nameTextField.stringValue != name { nameTextField.stringValue = name } + windowTitle = folder?.nameForDisplay ?? NSLocalizedString("Folder Inspector", comment: "Folder Inspector window title") } } diff --git a/Mac/Inspector/WebFeedInspectorViewController.swift b/Mac/Inspector/WebFeedInspectorViewController.swift index f2451c546..f9c543c05 100644 --- a/Mac/Inspector/WebFeedInspectorViewController.swift +++ b/Mac/Inspector/WebFeedInspectorViewController.swift @@ -134,7 +134,7 @@ private extension WebFeedInspectorViewController { updateFeedURL() updateNotifyAboutNewArticles() updateIsReaderViewAlwaysOn() - + windowTitle = feed?.nameForDisplay ?? NSLocalizedString("Feed Inspector", comment: "Feed Inspector window title") view.needsLayout = true } From 09853a51da901ecae4ac11c25c073b7675274959 Mon Sep 17 00:00:00 2001 From: Angelo Stavrow Date: Mon, 7 Sep 2020 14:36:12 -0400 Subject: [PATCH 4/4] Ensure window title updates when feed/folder name is changed --- Mac/Inspector/InspectorWindowController.swift | 4 +++- Mac/Inspector/WebFeedInspectorViewController.swift | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Mac/Inspector/InspectorWindowController.swift b/Mac/Inspector/InspectorWindowController.swift index 23fcec72c..8f4f82e8f 100644 --- a/Mac/Inspector/InspectorWindowController.swift +++ b/Mac/Inspector/InspectorWindowController.swift @@ -111,7 +111,9 @@ private extension InspectorWindowController { return } - window.title = inspector.windowTitle + DispatchQueue.main.async { + window.title = inspector.windowTitle + } let flippedOrigin = window.flippedOrigin diff --git a/Mac/Inspector/WebFeedInspectorViewController.swift b/Mac/Inspector/WebFeedInspectorViewController.swift index f9c543c05..877205359 100644 --- a/Mac/Inspector/WebFeedInspectorViewController.swift +++ b/Mac/Inspector/WebFeedInspectorViewController.swift @@ -113,6 +113,7 @@ extension WebFeedInspectorViewController: NSTextFieldDelegate { return } feed.editedName = nameTextField.stringValue + windowTitle = feed.editedName ?? NSLocalizedString("Feed Inspector", comment: "Feed Inspector window title") } }