Added Share to the File menu. Fixes #3692

This commit is contained in:
Maurice Parker
2022-09-27 16:23:20 -05:00
parent d100c64d80
commit 573806c0ca
5 changed files with 49 additions and 2 deletions

View File

@@ -63,6 +63,8 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserInterfaceValidations,
var isShutDownSyncDone = false
@IBOutlet var shareMenuItem: NSMenuItem!
@IBOutlet var fileMenuItem: NSMenuItem!
@IBOutlet var debugMenuItem: NSMenuItem!
@IBOutlet var sortByOldestArticleOnTopMenuItem: NSMenuItem!
@IBOutlet var sortByNewestArticleOnTopMenuItem: NSMenuItem!
@@ -217,6 +219,9 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserInterfaceValidations,
mainWindowController.restoreStateFromUserDefaults()
}
fileMenuItem.submenu?.delegate = self
shareMenuItem.submenu?.delegate = self
if isFirstRun {
mainWindowController?.window?.center()
}
@@ -725,6 +730,26 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserInterfaceValidations,
}
// MARK: - NSMenuDelegate
extension AppDelegate: NSMenuDelegate {
public func menuNeedsUpdate(_ menu: NSMenu) {
let newShareMenu = mainWindowController?.shareMenu
guard menu != fileMenuItem.submenu else {
shareMenuItem.isEnabled = newShareMenu != nil
return
}
menu.removeAllItems()
if let newShareMenu = newShareMenu {
menu.takeItems(from: newShareMenu)
}
}
}
// MARK: - Debug Menu
extension AppDelegate {

View File

@@ -65,7 +65,7 @@
</items>
</menu>
</menuItem>
<menuItem title="File" id="dMs-cI-mzQ">
<menuItem title="File" identifier="fileMenu" id="dMs-cI-mzQ">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="File" id="bib-Uj-vzu">
<items>
@@ -104,6 +104,17 @@
<action selector="refreshAll:" target="Ady-hI-5gd" id="gIc-Zj-9tB"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="SJz-Y3-zsi"/>
<menuItem title="Share" identifier="shareMenu" id="jaf-gh-gSi">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Share" id="Dbl-YW-bmb">
<items>
<menuItem title="Item" id="CZA-zr-llF">
<modifierMask key="keyEquivalentModifierMask"/>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem isSeparatorItem="YES" id="aJh-i4-bef"/>
<menuItem title="Import Subscriptions…" id="rSl-F4-qo7">
<modifierMask key="keyEquivalentModifierMask"/>
@@ -685,7 +696,9 @@
<connections>
<outlet property="checkForUpdatesMenuItem" destination="1nF-7O-aKU" id="JmT-jc-DJ8"/>
<outlet property="debugMenuItem" destination="UqE-mp-gtV" id="OnR-lr-Zlt"/>
<outlet property="fileMenuItem" destination="dMs-cI-mzQ" id="PGc-xQ-8CG"/>
<outlet property="groupArticlesByFeedMenuItem" destination="Zxm-O6-NRE" id="gwn-VT-2YZ"/>
<outlet property="shareMenuItem" destination="jaf-gh-gSi" id="bqN-eF-bsE"/>
<outlet property="sortByNewestArticleOnTopMenuItem" destination="TNS-TV-n0U" id="gix-Nd-9k4"/>
<outlet property="sortByOldestArticleOnTopMenuItem" destination="iii-kP-qoF" id="fTe-Tf-EWG"/>
</connections>

View File

@@ -57,6 +57,10 @@ class MainWindowController : NSWindowController, NSUserInterfaceValidations {
}
private var searchSmartFeed: SmartFeed? = nil
private var restoreArticleWindowScrollY: CGFloat?
var shareMenu: NSMenu? {
return currentTimelineViewController?.shareMenu
}
// MARK: - NSWindowController

View File

@@ -13,6 +13,10 @@ import Account
extension TimelineViewController {
var shareMenu: NSMenu? {
return shareMenu(for: selectedArticles)
}
func contextualMenuForClickedRows() -> NSMenu? {
let row = tableView.clickedRow
@@ -26,6 +30,7 @@ extension TimelineViewController {
}
return menu(for: [article])
}
}
// MARK: Contextual Menu Actions

View File

@@ -2399,12 +2399,12 @@
516AE9DE2372269A007DEEAA /* IconImage.swift */,
849A97971ED9EFAA007D329B /* Node-Extensions.swift */,
B24E9ABA245AB88300DA5718 /* NSAttributedString+NetNewsWire.swift */,
519279F728E23F5F000AE856 /* NSEvent-Extensions.swift */,
8405DD9B22153BD7008CE1BF /* NSView-Extensions.swift */,
B2B8075D239C49D300F191E0 /* RSImage-AppIcons.swift */,
51126DA3225FDE2F00722696 /* RSImage-Extensions.swift */,
84411E701FE5FBFA004B527F /* SmallIconProvider.swift */,
51BC4ADD247277DF000A6ED8 /* URL-Extensions.swift */,
519279F728E23F5F000AE856 /* NSEvent-Extensions.swift */,
);
path = Extensions;
sourceTree = "<group>";