mirror of
https://github.com/Ranchero-Software/NetNewsWire
synced 2025-08-12 06:26:36 +00:00
Added Share to the File menu. Fixes #3692
This commit is contained in:
@@ -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 {
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>";
|
||||
|
||||
Reference in New Issue
Block a user