mirror of
https://github.com/Ranchero-Software/NetNewsWire
synced 2025-08-12 06:26:36 +00:00
Add basic ExtensionPoint support.
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<customObject id="-2" userLabel="File's Owner" customClass="FeedProvidersAddViewController" customModule="NetNewsWire" customModuleProvider="target">
|
||||
<customObject id="-2" userLabel="File's Owner" customClass="ExtensionPointAddViewController" customModule="NetNewsWire" customModuleProvider="target">
|
||||
<connections>
|
||||
<outlet property="tableView" destination="lyM-Zu-Let" id="JDz-05-OOg"/>
|
||||
<outlet property="view" destination="c22-O7-iKe" id="Vfr-rK-EHC"/>
|
||||
@@ -44,7 +44,7 @@
|
||||
</textFieldCell>
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView identifier="Cell" id="EGi-CQ-lPc" customClass="FeedProvidersAddTableCellView" customModule="NetNewsWire" customModuleProvider="target">
|
||||
<tableCellView identifier="Cell" id="EGi-CQ-lPc" customClass="ExtensionPointAddTableCellView" customModule="NetNewsWire" customModuleProvider="target">
|
||||
<rect key="frame" x="1" y="1" width="475" height="40"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
@@ -83,8 +83,8 @@
|
||||
<constraint firstItem="iCD-Yx-4V5" firstAttribute="leading" secondItem="EGi-CQ-lPc" secondAttribute="leading" constant="20" id="IsY-WH-f93"/>
|
||||
</constraints>
|
||||
<connections>
|
||||
<outlet property="feedProviderImageView" destination="KmN-Zk-TBU" id="gAh-RE-QeJ"/>
|
||||
<outlet property="feedProviderNameLabel" destination="uyu-5W-IaW" id="QAe-Gk-Eeo"/>
|
||||
<outlet property="imageView" destination="KmN-Zk-TBU" id="Tfy-Eb-Isb"/>
|
||||
<outlet property="titleLabel" destination="uyu-5W-IaW" id="QAe-Gk-Eeo"/>
|
||||
</connections>
|
||||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
@@ -0,0 +1,16 @@
|
||||
//
|
||||
// ExtensionPointAddTableCellView.swift
|
||||
// NetNewsWire
|
||||
//
|
||||
// Created by Maurice Parker on 4/6/20.
|
||||
// Copyright © 2020 Ranchero Software. All rights reserved.
|
||||
//
|
||||
|
||||
import AppKit
|
||||
|
||||
class ExtensionPointAddTableCellView: NSTableCellView {
|
||||
|
||||
@IBOutlet weak var templateImageView: NSImageView?
|
||||
@IBOutlet weak var titleLabel: NSTextField?
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
//
|
||||
// FeedProvidersAddViewController.swift
|
||||
// ExtensionPointAddViewController.swift
|
||||
// NetNewsWire
|
||||
//
|
||||
// Created by Maurice Parker on 4/6/20.
|
||||
@@ -9,20 +9,15 @@
|
||||
import AppKit
|
||||
import FeedProvider
|
||||
|
||||
class FeedProvidersAddViewController: NSViewController {
|
||||
class ExtensionPointAddViewController: NSViewController {
|
||||
|
||||
@IBOutlet weak var tableView: NSTableView!
|
||||
|
||||
private var accountsAddWindowController: NSWindowController?
|
||||
|
||||
#if DEBUG
|
||||
private var addableFeedProviderTypes: [FeedProviderType] = [.marsEdit, .microblog, .twitter]
|
||||
#else
|
||||
private var addableFeedProviderTypes: [FeedProviderType] = [.twitter]
|
||||
#endif
|
||||
private var availableExtensionPoints = [ExtensionPoint]()
|
||||
private var extensionPointAddWindowController: NSWindowController?
|
||||
|
||||
init() {
|
||||
super.init(nibName: "FeedProvidersAdd", bundle: nil)
|
||||
super.init(nibName: "ExtensionPointAdd", bundle: nil)
|
||||
}
|
||||
|
||||
public required init?(coder: NSCoder) {
|
||||
@@ -33,16 +28,17 @@ class FeedProvidersAddViewController: NSViewController {
|
||||
super.viewDidLoad()
|
||||
tableView.dataSource = self
|
||||
tableView.delegate = self
|
||||
availableExtensionPoints = ExtensionPointManager.shared.availableExtensionPoints
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: - NSTableViewDataSource
|
||||
|
||||
extension FeedProvidersAddViewController: NSTableViewDataSource {
|
||||
extension ExtensionPointAddViewController: NSTableViewDataSource {
|
||||
|
||||
func numberOfRows(in tableView: NSTableView) -> Int {
|
||||
return addableFeedProviderTypes.count
|
||||
return availableExtensionPoints.count
|
||||
}
|
||||
|
||||
func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any? {
|
||||
@@ -52,24 +48,16 @@ extension FeedProvidersAddViewController: NSTableViewDataSource {
|
||||
|
||||
// MARK: - NSTableViewDelegate
|
||||
|
||||
extension FeedProvidersAddViewController: NSTableViewDelegate {
|
||||
extension ExtensionPointAddViewController: NSTableViewDelegate {
|
||||
|
||||
private static let cellIdentifier = NSUserInterfaceItemIdentifier(rawValue: "AccountCell")
|
||||
|
||||
func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
|
||||
|
||||
if let cell = tableView.makeView(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "Cell"), owner: nil) as? FeedProvidersAddTableCellView {
|
||||
switch addableFeedProviderTypes[row] {
|
||||
case .marsEdit:
|
||||
cell.feedProviderNameLabel?.stringValue = NSLocalizedString("MarsEdit", comment: "MarsEdit")
|
||||
cell.feedProviderImageView?.image = AppAssets.adapterMarsEdit
|
||||
case .microblog:
|
||||
cell.feedProviderNameLabel?.stringValue = NSLocalizedString("Micro.blog", comment: "Micro.blog")
|
||||
cell.feedProviderImageView?.image = AppAssets.adapterMicroblog
|
||||
case .twitter:
|
||||
cell.feedProviderNameLabel?.stringValue = NSLocalizedString("Twitter", comment: "Twitter")
|
||||
cell.feedProviderImageView?.image = AppAssets.adapterTwitter
|
||||
}
|
||||
if let cell = tableView.makeView(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "Cell"), owner: nil) as? ExtensionPointAddTableCellView {
|
||||
let extensionPoint = availableExtensionPoints[row]
|
||||
cell.titleLabel?.stringValue = extensionPoint.title
|
||||
cell.imageView?.image = extensionPoint.templateImage
|
||||
return cell
|
||||
}
|
||||
return nil
|
||||
@@ -1,5 +1,5 @@
|
||||
//
|
||||
// FeedProvidersPreferencesViewController.swift
|
||||
// ExtensionsPreferencesViewController.swift
|
||||
// NetNewsWire
|
||||
//
|
||||
// Created by Maurice Parker on 4/6/20.
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
import AppKit
|
||||
|
||||
final class FeedProvidersPreferencesViewController: NSViewController {
|
||||
final class ExtensionPointPreferencesViewController: NSViewController {
|
||||
|
||||
@IBOutlet weak var tableView: NSTableView!
|
||||
@IBOutlet weak var detailView: NSView!
|
||||
@@ -22,7 +22,7 @@ final class FeedProvidersPreferencesViewController: NSViewController {
|
||||
tableView.delegate = self
|
||||
tableView.dataSource = self
|
||||
|
||||
showController(FeedProvidersAddViewController())
|
||||
showController(ExtensionPointAddViewController())
|
||||
|
||||
// Fix tableView frame — for some reason IB wants it 1pt wider than the clip view. This leads to unwanted horizontal scrolling.
|
||||
var rTable = tableView.frame
|
||||
@@ -34,7 +34,7 @@ final class FeedProvidersPreferencesViewController: NSViewController {
|
||||
|
||||
// MARK: - NSTableViewDataSource
|
||||
|
||||
extension FeedProvidersPreferencesViewController: NSTableViewDataSource {
|
||||
extension ExtensionPointPreferencesViewController: NSTableViewDataSource {
|
||||
|
||||
func numberOfRows(in tableView: NSTableView) -> Int {
|
||||
return sortedAccounts.count
|
||||
@@ -47,7 +47,7 @@ extension FeedProvidersPreferencesViewController: NSTableViewDataSource {
|
||||
|
||||
// MARK: - NSTableViewDelegate
|
||||
|
||||
extension FeedProvidersPreferencesViewController: NSTableViewDelegate {
|
||||
extension ExtensionPointPreferencesViewController: NSTableViewDelegate {
|
||||
|
||||
private static let cellIdentifier = NSUserInterfaceItemIdentifier(rawValue: "AccountCell")
|
||||
|
||||
@@ -70,7 +70,7 @@ extension FeedProvidersPreferencesViewController: NSTableViewDelegate {
|
||||
|
||||
// MARK: - Private
|
||||
|
||||
private extension FeedProvidersPreferencesViewController {
|
||||
private extension ExtensionPointPreferencesViewController {
|
||||
|
||||
func showController(_ controller: NSViewController) {
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
//
|
||||
// FeedProvidersAddTableCellView.swift
|
||||
// NetNewsWire
|
||||
//
|
||||
// Created by Maurice Parker on 4/6/20.
|
||||
// Copyright © 2020 Ranchero Software. All rights reserved.
|
||||
//
|
||||
|
||||
import AppKit
|
||||
|
||||
class FeedProvidersAddTableCellView: NSTableCellView {
|
||||
|
||||
@IBOutlet weak var feedProviderImageView: NSImageView?
|
||||
@IBOutlet weak var feedProviderNameLabel: NSTextField?
|
||||
|
||||
}
|
||||
@@ -24,7 +24,7 @@ private struct PreferencesToolbarItemSpec {
|
||||
private struct ToolbarItemIdentifier {
|
||||
static let General = "General"
|
||||
static let Accounts = "Accounts"
|
||||
static let FeedProvider = "FeedProvider"
|
||||
static let Extensions = "Extensions"
|
||||
static let Advanced = "Advanced"
|
||||
}
|
||||
|
||||
@@ -40,9 +40,9 @@ class PreferencesWindowController : NSWindowController, NSToolbarDelegate {
|
||||
specs += [PreferencesToolbarItemSpec(identifierRawValue: ToolbarItemIdentifier.Accounts,
|
||||
name: NSLocalizedString("Accounts", comment: "Preferences"),
|
||||
image: NSImage(named: NSImage.userAccountsName))]
|
||||
specs += [PreferencesToolbarItemSpec(identifierRawValue: ToolbarItemIdentifier.FeedProvider,
|
||||
specs += [PreferencesToolbarItemSpec(identifierRawValue: ToolbarItemIdentifier.Extensions,
|
||||
name: NSLocalizedString("Extensions", comment: "Preferences"),
|
||||
image: AppAssets.bookmarkImage)]
|
||||
image: AppAssets.extensionPreference)]
|
||||
|
||||
// Omit the Advanced Preferences for now because the Software Update related functionality is
|
||||
// forbidden/non-applicable, and we can rely upon Apple to some extent for crash reports. We
|
||||
|
||||
Reference in New Issue
Block a user