Add Feed Providers preference pane.
This commit is contained in:
parent
e4b03eebc2
commit
429ba1aed3
20
Frameworks/FeedProvider/FeedProvider.swift
Normal file
20
Frameworks/FeedProvider/FeedProvider.swift
Normal file
@ -0,0 +1,20 @@
|
||||
//
|
||||
// FeedProvider.swift
|
||||
// FeedProvider
|
||||
//
|
||||
// Created by Maurice Parker on 4/6/20.
|
||||
// Copyright © 2020 Ranchero Software, LLC. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import RSCore
|
||||
|
||||
public enum FeedProviderType: Int, Codable {
|
||||
// Raw values should not change since they’re stored.
|
||||
case twitter = 1
|
||||
}
|
||||
|
||||
|
||||
protocol FeedProvider {
|
||||
|
||||
}
|
@ -13,8 +13,28 @@
|
||||
5110769E243BCF3A00D97C8C /* FeedProvider_project_debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 51107699243BCF3A00D97C8C /* FeedProvider_project_debug.xcconfig */; };
|
||||
5110769F243BCF3A00D97C8C /* FeedProvider_project.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 5110769A243BCF3A00D97C8C /* FeedProvider_project.xcconfig */; };
|
||||
511076EE243BD82A00D97C8C /* Articles.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 511076ED243BD82A00D97C8C /* Articles.framework */; };
|
||||
51107722243BE0DA00D97C8C /* FeedProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51107721243BE0DA00D97C8C /* FeedProvider.swift */; };
|
||||
51107724243BE11800D97C8C /* RSParser.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51107723243BE11800D97C8C /* RSParser.framework */; };
|
||||
51107725243BE11800D97C8C /* RSParser.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 51107723243BE11800D97C8C /* RSParser.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
51107728243BE15D00D97C8C /* RSCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51107727243BE15D00D97C8C /* RSCore.framework */; };
|
||||
51107729243BE15D00D97C8C /* RSCore.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 51107727243BE15D00D97C8C /* RSCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
51107726243BE11800D97C8C /* Embed Frameworks */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = "";
|
||||
dstSubfolderSpec = 10;
|
||||
files = (
|
||||
51107729243BE15D00D97C8C /* RSCore.framework in Embed Frameworks */,
|
||||
51107725243BE11800D97C8C /* RSParser.framework in Embed Frameworks */,
|
||||
);
|
||||
name = "Embed Frameworks";
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
5110765F243BCE0400D97C8C /* FeedProvider.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FeedProvider.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
51107663243BCE0400D97C8C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
@ -24,6 +44,9 @@
|
||||
51107699243BCF3A00D97C8C /* FeedProvider_project_debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = FeedProvider_project_debug.xcconfig; sourceTree = "<group>"; };
|
||||
5110769A243BCF3A00D97C8C /* FeedProvider_project.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = FeedProvider_project.xcconfig; sourceTree = "<group>"; };
|
||||
511076ED243BD82A00D97C8C /* Articles.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Articles.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
51107721243BE0DA00D97C8C /* FeedProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedProvider.swift; sourceTree = "<group>"; };
|
||||
51107723243BE11800D97C8C /* RSParser.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = RSParser.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
51107727243BE15D00D97C8C /* RSCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = RSCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
@ -31,6 +54,8 @@
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
51107728243BE15D00D97C8C /* RSCore.framework in Frameworks */,
|
||||
51107724243BE11800D97C8C /* RSParser.framework in Frameworks */,
|
||||
511076EE243BD82A00D97C8C /* Articles.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
@ -41,6 +66,7 @@
|
||||
51107655243BCE0400D97C8C = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
51107721243BE0DA00D97C8C /* FeedProvider.swift */,
|
||||
51107689243BCEB300D97C8C /* xcconfig */,
|
||||
51107663243BCE0400D97C8C /* Info.plist */,
|
||||
51107660243BCE0400D97C8C /* Products */,
|
||||
@ -59,10 +85,10 @@
|
||||
51107689243BCEB300D97C8C /* xcconfig */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
5110769A243BCF3A00D97C8C /* FeedProvider_project.xcconfig */,
|
||||
51107699243BCF3A00D97C8C /* FeedProvider_project_debug.xcconfig */,
|
||||
51107698243BCF3A00D97C8C /* FeedProvider_project_release.xcconfig */,
|
||||
51107697243BCF3A00D97C8C /* FeedProvider_project_test.xcconfig */,
|
||||
5110769A243BCF3A00D97C8C /* FeedProvider_project.xcconfig */,
|
||||
51107696243BCF3A00D97C8C /* FeedProvider_target.xcconfig */,
|
||||
);
|
||||
path = xcconfig;
|
||||
@ -71,6 +97,8 @@
|
||||
511076EC243BD82A00D97C8C /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
51107727243BE15D00D97C8C /* RSCore.framework */,
|
||||
51107723243BE11800D97C8C /* RSParser.framework */,
|
||||
511076ED243BD82A00D97C8C /* Articles.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
@ -98,6 +126,7 @@
|
||||
5110765C243BCE0400D97C8C /* Frameworks */,
|
||||
5110765D243BCE0400D97C8C /* Resources */,
|
||||
511076A2243BD2E600D97C8C /* Run Script: Verfiy No Build Settings */,
|
||||
51107726243BE11800D97C8C /* Embed Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
@ -115,10 +144,11 @@
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 1140;
|
||||
ORGANIZATIONNAME = "Vincode, Inc";
|
||||
ORGANIZATIONNAME = "Ranchero Software, LLC";
|
||||
TargetAttributes = {
|
||||
5110765E243BCE0400D97C8C = {
|
||||
CreatedOnToolsVersion = 11.4;
|
||||
LastSwiftMigration = 1140;
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -181,6 +211,7 @@
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
51107722243BE0DA00D97C8C /* FeedProvider.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -81,6 +81,10 @@ struct AppAssets {
|
||||
return RSImage(named: "faviconTemplateImage")!
|
||||
}()
|
||||
|
||||
static var feedProviderTwitter: RSImage = {
|
||||
return RSImage(named: "feedProviderTwitter")!
|
||||
}()
|
||||
|
||||
static var filterActive: RSImage = {
|
||||
return RSImage(named: "filterActive")!
|
||||
}()
|
||||
|
@ -1,8 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="14868" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" initialViewController="mPU-HG-I4u">
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="16096" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" initialViewController="mPU-HG-I4u">
|
||||
<dependencies>
|
||||
<deployment identifier="macosx"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14868"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="16096"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<scenes>
|
||||
@ -375,7 +374,7 @@
|
||||
<userDefaultsController id="Y8q-yi-F5Z"/>
|
||||
<userDefaultsController id="mV3-0T-XFc"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="-29" y="455.5"/>
|
||||
<point key="canvasLocation" x="-36" y="422"/>
|
||||
</scene>
|
||||
<!--Accounts Preferences View Controller-->
|
||||
<scene sceneID="Rsj-41-ZOj">
|
||||
@ -385,17 +384,17 @@
|
||||
<rect key="frame" x="0.0" y="0.0" width="450" height="299"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<customView translatesAutoresizingMaskIntoConstraints="NO" id="7UM-iq-OLB" customClass="AccountsTableViewBackgroundView" customModule="NetNewsWire" customModuleProvider="target">
|
||||
<rect key="frame" x="20" y="44" width="160" height="233"/>
|
||||
<customView translatesAutoresizingMaskIntoConstraints="NO" id="7UM-iq-OLB" customClass="PreferencesTableViewBackgroundView" customModule="NetNewsWire" customModuleProvider="target">
|
||||
<rect key="frame" x="20" y="44" width="160" height="227"/>
|
||||
<subviews>
|
||||
<scrollView borderType="none" autohidesScrollers="YES" horizontalLineScroll="26" horizontalPageScroll="10" verticalLineScroll="26" verticalPageScroll="10" hasHorizontalScroller="NO" horizontalScrollElasticity="none" translatesAutoresizingMaskIntoConstraints="NO" id="PaF-du-r3c">
|
||||
<rect key="frame" x="1" y="0.0" width="158" height="232"/>
|
||||
<rect key="frame" x="1" y="0.0" width="158" height="226"/>
|
||||
<clipView key="contentView" id="cil-Gq-akO">
|
||||
<rect key="frame" x="0.0" y="0.0" width="158" height="232"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="158" height="226"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" columnReordering="NO" columnSelection="YES" columnResizing="NO" multipleSelection="NO" autosaveColumns="NO" rowHeight="24" viewBased="YES" id="aTp-KR-y6b">
|
||||
<rect key="frame" x="0.0" y="0.0" width="159" height="232"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="159" height="226"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<size key="intercellSpacing" width="3" height="2"/>
|
||||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
@ -403,7 +402,6 @@
|
||||
<tableColumns>
|
||||
<tableColumn width="156" minWidth="40" maxWidth="1000" id="JSx-yi-vwt">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border">
|
||||
<font key="font" metaFont="controlContent" size="11"/>
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||
</tableHeaderCell>
|
||||
@ -499,11 +497,11 @@
|
||||
<action selector="removeAccount:" target="z5c-Js-Up9" id="APC-9C-TC7"/>
|
||||
</connections>
|
||||
</button>
|
||||
<customView translatesAutoresizingMaskIntoConstraints="NO" id="1gP-iQ-hAV" customClass="AccountsControlsBackgroundView" customModule="NetNewsWire" customModuleProvider="target">
|
||||
<customView translatesAutoresizingMaskIntoConstraints="NO" id="1gP-iQ-hAV" customClass="PreferencesControlsBackgroundView" customModule="NetNewsWire" customModuleProvider="target">
|
||||
<rect key="frame" x="83" y="20" width="97" height="24"/>
|
||||
</customView>
|
||||
<customView translatesAutoresizingMaskIntoConstraints="NO" id="Y7D-xQ-wep">
|
||||
<rect key="frame" x="188" y="20" width="242" height="257"/>
|
||||
<rect key="frame" x="188" y="20" width="242" height="251"/>
|
||||
</customView>
|
||||
</subviews>
|
||||
<constraints>
|
||||
@ -549,6 +547,158 @@
|
||||
</objects>
|
||||
<point key="canvasLocation" x="-44" y="27"/>
|
||||
</scene>
|
||||
<!--Feed Providers Preferences View Controller-->
|
||||
<scene sceneID="2Q8-nu-xsg">
|
||||
<objects>
|
||||
<viewController storyboardIdentifier="FeedProvider" id="K4Z-qS-hrR" customClass="FeedProvidersPreferencesViewController" customModule="NetNewsWire" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<view key="view" misplaced="YES" id="Jpa-aD-PZF">
|
||||
<rect key="frame" x="0.0" y="0.0" width="450" height="299"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<customView translatesAutoresizingMaskIntoConstraints="NO" id="pjs-G4-byk" customClass="PreferencesTableViewBackgroundView" customModule="NetNewsWire" customModuleProvider="target">
|
||||
<rect key="frame" x="20" y="44" width="160" height="223"/>
|
||||
<subviews>
|
||||
<scrollView borderType="none" autohidesScrollers="YES" horizontalLineScroll="26" horizontalPageScroll="10" verticalLineScroll="26" verticalPageScroll="10" hasHorizontalScroller="NO" horizontalScrollElasticity="none" translatesAutoresizingMaskIntoConstraints="NO" id="29T-r2-ckC">
|
||||
<rect key="frame" x="1" y="0.0" width="158" height="222"/>
|
||||
<clipView key="contentView" id="dXw-GY-TP8">
|
||||
<rect key="frame" x="0.0" y="0.0" width="158" height="222"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" columnReordering="NO" columnSelection="YES" columnResizing="NO" multipleSelection="NO" autosaveColumns="NO" rowHeight="24" viewBased="YES" id="dfn-Vn-oDp">
|
||||
<rect key="frame" x="0.0" y="0.0" width="159" height="222"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<size key="intercellSpacing" width="3" height="2"/>
|
||||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
|
||||
<tableColumns>
|
||||
<tableColumn width="156" minWidth="40" maxWidth="1000" id="jBM-96-TEB">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border">
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||
</tableHeaderCell>
|
||||
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" title="Text Cell" id="uax-iF-gzP">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView identifier="Cell" id="xQs-6E-Kpy">
|
||||
<rect key="frame" x="1" y="1" width="156" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="kmG-vw-CbN">
|
||||
<rect key="frame" x="3" y="0.0" width="17" height="17"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="16" id="qC6-Mb-6EQ"/>
|
||||
<constraint firstAttribute="width" constant="16" id="yi0-bd-XJq"/>
|
||||
</constraints>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="NSActionTemplate" id="OVD-Jo-TXU"/>
|
||||
</imageView>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" allowsExpansionToolTips="YES" translatesAutoresizingMaskIntoConstraints="NO" id="6cr-cB-qAN">
|
||||
<rect key="frame" x="26" y="1" width="126" height="16"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="goO-QG-kk7">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="6cr-cB-qAN" firstAttribute="centerY" secondItem="xQs-6E-Kpy" secondAttribute="centerY" id="5Zo-fV-HYU"/>
|
||||
<constraint firstItem="kmG-vw-CbN" firstAttribute="leading" secondItem="xQs-6E-Kpy" secondAttribute="leading" constant="6" id="Ap0-bW-xsi"/>
|
||||
<constraint firstAttribute="trailing" secondItem="6cr-cB-qAN" secondAttribute="trailing" constant="6" id="O9X-RU-yVU"/>
|
||||
<constraint firstItem="kmG-vw-CbN" firstAttribute="centerY" secondItem="xQs-6E-Kpy" secondAttribute="centerY" id="a9O-2C-ez9"/>
|
||||
<constraint firstItem="6cr-cB-qAN" firstAttribute="leading" secondItem="kmG-vw-CbN" secondAttribute="trailing" constant="6" id="yfP-7k-Uyb"/>
|
||||
</constraints>
|
||||
<connections>
|
||||
<outlet property="imageView" destination="kmG-vw-CbN" id="Ktw-eT-QtE"/>
|
||||
<outlet property="textField" destination="6cr-cB-qAN" id="7Cb-o3-IeP"/>
|
||||
</connections>
|
||||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
</tableColumn>
|
||||
</tableColumns>
|
||||
<connections>
|
||||
<outlet property="dataSource" destination="K4Z-qS-hrR" id="N2L-zD-LMX"/>
|
||||
<outlet property="delegate" destination="K4Z-qS-hrR" id="EAl-PI-Ebp"/>
|
||||
</connections>
|
||||
</tableView>
|
||||
</subviews>
|
||||
</clipView>
|
||||
<scroller key="horizontalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="0n8-KN-h13">
|
||||
<rect key="frame" x="-100" y="-100" width="118" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
<scroller key="verticalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="NO" id="t4w-hp-8WD">
|
||||
<rect key="frame" x="224" y="17" width="15" height="102"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
</scrollView>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="160" id="0gU-oR-pQf"/>
|
||||
<constraint firstAttribute="bottom" secondItem="29T-r2-ckC" secondAttribute="bottom" id="BMY-9E-vH2"/>
|
||||
<constraint firstAttribute="trailing" secondItem="29T-r2-ckC" secondAttribute="trailing" constant="1" id="dAW-1i-3iD"/>
|
||||
<constraint firstItem="29T-r2-ckC" firstAttribute="top" secondItem="pjs-G4-byk" secondAttribute="top" constant="1" id="tAi-6L-Tjj"/>
|
||||
<constraint firstItem="29T-r2-ckC" firstAttribute="leading" secondItem="pjs-G4-byk" secondAttribute="leading" constant="1" id="wXE-ze-ubv"/>
|
||||
</constraints>
|
||||
</customView>
|
||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="JA2-UT-8DR">
|
||||
<rect key="frame" x="20" y="19" width="32" height="26"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="24" id="Qnm-eZ-2KJ"/>
|
||||
<constraint firstAttribute="width" constant="32" id="ZQY-kS-9lY"/>
|
||||
</constraints>
|
||||
<buttonCell key="cell" type="smallSquare" bezelStyle="smallSquare" image="NSAddTemplate" imagePosition="only" alignment="center" lineBreakMode="truncatingTail" state="on" borderStyle="border" inset="2" id="xk0-JH-jr9">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
</button>
|
||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="jfX-DL-TXs">
|
||||
<rect key="frame" x="51" y="19" width="32" height="26"/>
|
||||
<buttonCell key="cell" type="smallSquare" bezelStyle="smallSquare" image="NSRemoveTemplate" imagePosition="overlaps" alignment="center" lineBreakMode="truncatingTail" enabled="NO" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="4FB-KH-Ton">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
</button>
|
||||
<customView translatesAutoresizingMaskIntoConstraints="NO" id="sak-nS-Xfu" customClass="PreferencesControlsBackgroundView" customModule="NetNewsWire" customModuleProvider="target">
|
||||
<rect key="frame" x="83" y="20" width="97" height="24"/>
|
||||
</customView>
|
||||
<customView translatesAutoresizingMaskIntoConstraints="NO" id="N1N-pE-gBL">
|
||||
<rect key="frame" x="188" y="20" width="242" height="247"/>
|
||||
</customView>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="JA2-UT-8DR" firstAttribute="leading" secondItem="Jpa-aD-PZF" secondAttribute="leading" constant="20" symbolic="YES" id="0PA-e9-b64"/>
|
||||
<constraint firstAttribute="bottom" secondItem="jfX-DL-TXs" secondAttribute="bottom" constant="20" symbolic="YES" id="2V0-KT-vWv"/>
|
||||
<constraint firstItem="pjs-G4-byk" firstAttribute="top" secondItem="Jpa-aD-PZF" secondAttribute="top" constant="20" symbolic="YES" id="4j8-1U-WiI"/>
|
||||
<constraint firstItem="sak-nS-Xfu" firstAttribute="trailing" secondItem="pjs-G4-byk" secondAttribute="trailing" id="9u7-Nb-S9f"/>
|
||||
<constraint firstAttribute="bottom" secondItem="JA2-UT-8DR" secondAttribute="bottom" constant="20" symbolic="YES" id="Ebi-1b-c4r"/>
|
||||
<constraint firstItem="jfX-DL-TXs" firstAttribute="width" secondItem="JA2-UT-8DR" secondAttribute="width" id="Ilb-x9-dYo"/>
|
||||
<constraint firstItem="pjs-G4-byk" firstAttribute="leading" secondItem="Jpa-aD-PZF" secondAttribute="leading" constant="20" symbolic="YES" id="JGH-r5-Umj"/>
|
||||
<constraint firstItem="JA2-UT-8DR" firstAttribute="top" secondItem="pjs-G4-byk" secondAttribute="bottom" id="JhX-tK-MxJ"/>
|
||||
<constraint firstAttribute="trailing" secondItem="N1N-pE-gBL" secondAttribute="trailing" constant="20" symbolic="YES" id="MaO-sk-c4U"/>
|
||||
<constraint firstItem="sak-nS-Xfu" firstAttribute="height" secondItem="jfX-DL-TXs" secondAttribute="height" id="Nnu-tE-a42"/>
|
||||
<constraint firstItem="jfX-DL-TXs" firstAttribute="leading" secondItem="JA2-UT-8DR" secondAttribute="trailing" constant="-1" id="T2Z-VL-HDw"/>
|
||||
<constraint firstItem="N1N-pE-gBL" firstAttribute="leading" secondItem="pjs-G4-byk" secondAttribute="trailing" constant="8" symbolic="YES" id="TkH-1v-Rt4"/>
|
||||
<constraint firstItem="sak-nS-Xfu" firstAttribute="leading" secondItem="jfX-DL-TXs" secondAttribute="trailing" id="YNy-26-lR2"/>
|
||||
<constraint firstItem="N1N-pE-gBL" firstAttribute="top" secondItem="Jpa-aD-PZF" secondAttribute="top" constant="20" symbolic="YES" id="Z4D-bk-Smx"/>
|
||||
<constraint firstItem="sak-nS-Xfu" firstAttribute="bottom" secondItem="jfX-DL-TXs" secondAttribute="bottom" id="ofz-UJ-8BL"/>
|
||||
<constraint firstItem="JA2-UT-8DR" firstAttribute="height" secondItem="jfX-DL-TXs" secondAttribute="height" id="vOo-mW-auf"/>
|
||||
<constraint firstAttribute="bottom" secondItem="N1N-pE-gBL" secondAttribute="bottom" constant="20" symbolic="YES" id="vyg-BP-5bk"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<connections>
|
||||
<outlet property="deleteButton" destination="jfX-DL-TXs" id="gT1-Dt-vZL"/>
|
||||
<outlet property="detailView" destination="N1N-pE-gBL" id="PYj-cW-fz1"/>
|
||||
<outlet property="tableView" destination="dfn-Vn-oDp" id="BAw-X0-nFR"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<customObject id="Cne-wm-w1Q" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="-82" y="821"/>
|
||||
</scene>
|
||||
</scenes>
|
||||
<resources>
|
||||
<image name="NSActionTemplate" width="14" height="14"/>
|
||||
|
109
Mac/Preferences/FeedProviders/FeedProvidersAdd.xib
Normal file
109
Mac/Preferences/FeedProviders/FeedProvidersAdd.xib
Normal file
@ -0,0 +1,109 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="16096" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="16096"/>
|
||||
<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">
|
||||
<connections>
|
||||
<outlet property="tableView" destination="lyM-Zu-Let" id="JDz-05-OOg"/>
|
||||
<outlet property="view" destination="c22-O7-iKe" id="Vfr-rK-EHC"/>
|
||||
</connections>
|
||||
</customObject>
|
||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||
<customView id="c22-O7-iKe">
|
||||
<rect key="frame" x="0.0" y="0.0" width="480" height="272"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<subviews>
|
||||
<scrollView autohidesScrollers="YES" horizontalLineScroll="42" horizontalPageScroll="10" verticalLineScroll="42" verticalPageScroll="10" usesPredominantAxisScrolling="NO" id="y2z-6c-TH0">
|
||||
<rect key="frame" x="0.0" y="0.0" width="480" height="272"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<clipView key="contentView" id="qCn-Bf-ICO">
|
||||
<rect key="frame" x="1" y="1" width="478" height="270"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" columnReordering="NO" columnSelection="YES" columnResizing="NO" multipleSelection="NO" autosaveColumns="NO" rowHeight="40" rowSizeStyle="automatic" viewBased="YES" id="lyM-Zu-Let">
|
||||
<rect key="frame" x="0.0" y="0.0" width="478" height="270"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<size key="intercellSpacing" width="3" height="2"/>
|
||||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
<tableViewGridLines key="gridStyleMask" horizontal="YES"/>
|
||||
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
|
||||
<tableColumns>
|
||||
<tableColumn width="475" minWidth="40" maxWidth="1000" id="SlU-lH-CzT">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border">
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||
</tableHeaderCell>
|
||||
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" title="Text Cell" id="Nhn-I6-76l">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView identifier="Cell" id="EGi-CQ-lPc" customClass="FeedProvidersAddTableCellView" customModule="NetNewsWire" customModuleProvider="target">
|
||||
<rect key="frame" x="1" y="1" width="475" height="40"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<stackView distribution="fill" orientation="horizontal" alignment="centerY" spacing="17" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="iCD-Yx-4V5">
|
||||
<rect key="frame" x="20" y="8" width="173" height="24"/>
|
||||
<subviews>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="KmN-Zk-TBU">
|
||||
<rect key="frame" x="0.0" y="0.0" width="24" height="24"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="24" id="dbz-aC-h0q"/>
|
||||
<constraint firstAttribute="width" constant="24" id="jN0-Et-ysS"/>
|
||||
</constraints>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" id="oGL-yl-27S"/>
|
||||
</imageView>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="uyu-5W-IaW">
|
||||
<rect key="frame" x="39" y="1" width="136" height="23"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="iOW-VJ-bkx">
|
||||
<font key="font" metaFont="system" size="20"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
</subviews>
|
||||
<visibilityPriorities>
|
||||
<integer value="1000"/>
|
||||
<integer value="1000"/>
|
||||
</visibilityPriorities>
|
||||
<customSpacing>
|
||||
<real value="3.4028234663852886e+38"/>
|
||||
<real value="3.4028234663852886e+38"/>
|
||||
</customSpacing>
|
||||
</stackView>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="iCD-Yx-4V5" firstAttribute="centerY" secondItem="EGi-CQ-lPc" secondAttribute="centerY" id="IS1-7W-BWY"/>
|
||||
<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"/>
|
||||
</connections>
|
||||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
</tableColumn>
|
||||
</tableColumns>
|
||||
</tableView>
|
||||
</subviews>
|
||||
</clipView>
|
||||
<scroller key="horizontalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="qOf-Dj-ubR">
|
||||
<rect key="frame" x="1" y="119" width="223" height="15"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
<scroller key="verticalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="NO" id="XFQ-Xy-wny">
|
||||
<rect key="frame" x="224" y="17" width="15" height="102"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
</scrollView>
|
||||
</subviews>
|
||||
<point key="canvasLocation" x="139" y="154"/>
|
||||
</customView>
|
||||
</objects>
|
||||
</document>
|
@ -0,0 +1,16 @@
|
||||
//
|
||||
// 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?
|
||||
|
||||
}
|
@ -0,0 +1,141 @@
|
||||
//
|
||||
// FeedProvidersAddViewController.swift
|
||||
// NetNewsWire
|
||||
//
|
||||
// Created by Maurice Parker on 4/6/20.
|
||||
// Copyright © 2020 Ranchero Software. All rights reserved.
|
||||
//
|
||||
|
||||
import AppKit
|
||||
import FeedProvider
|
||||
|
||||
class FeedProvidersAddViewController: NSViewController {
|
||||
|
||||
@IBOutlet weak var tableView: NSTableView!
|
||||
|
||||
private var accountsAddWindowController: NSWindowController?
|
||||
|
||||
#if DEBUG
|
||||
private var addableFeedProviderTypes: [FeedProviderType] = [.twitter]
|
||||
#else
|
||||
private var addableFeedProviderTypes: [FeedProviderType] = [.twitter]
|
||||
#endif
|
||||
|
||||
init() {
|
||||
super.init(nibName: "FeedProvidersAdd", bundle: nil)
|
||||
}
|
||||
|
||||
public required init?(coder: NSCoder) {
|
||||
super.init(coder: coder)
|
||||
}
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
tableView.dataSource = self
|
||||
tableView.delegate = self
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: - NSTableViewDataSource
|
||||
|
||||
extension FeedProvidersAddViewController: NSTableViewDataSource {
|
||||
|
||||
func numberOfRows(in tableView: NSTableView) -> Int {
|
||||
return addableFeedProviderTypes.count
|
||||
}
|
||||
|
||||
func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any? {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - NSTableViewDelegate
|
||||
|
||||
extension FeedProvidersAddViewController: 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 .twitter:
|
||||
cell.feedProviderNameLabel?.stringValue = NSLocalizedString("Twitter", comment: "Twitter")
|
||||
cell.feedProviderImageView?.image = AppAssets.feedProviderTwitter
|
||||
}
|
||||
return cell
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func tableViewSelectionDidChange(_ notification: Notification) {
|
||||
|
||||
let selectedRow = tableView.selectedRow
|
||||
guard selectedRow != -1 else {
|
||||
return
|
||||
}
|
||||
|
||||
// switch addableAccountTypes[selectedRow] {
|
||||
// case .onMyMac:
|
||||
// let accountsAddLocalWindowController = AccountsAddLocalWindowController()
|
||||
// accountsAddLocalWindowController.runSheetOnWindow(self.view.window!)
|
||||
// accountsAddWindowController = accountsAddLocalWindowController
|
||||
// case .cloudKit:
|
||||
// let accountsAddCloudKitWindowController = AccountsAddCloudKitWindowController()
|
||||
// accountsAddCloudKitWindowController.runSheetOnWindow(self.view.window!) { response in
|
||||
// if response == NSApplication.ModalResponse.OK {
|
||||
// self.restrictAccounts()
|
||||
// self.tableView.reloadData()
|
||||
// }
|
||||
// }
|
||||
// accountsAddWindowController = accountsAddCloudKitWindowController
|
||||
// case .feedbin:
|
||||
// let accountsFeedbinWindowController = AccountsFeedbinWindowController()
|
||||
// accountsFeedbinWindowController.runSheetOnWindow(self.view.window!)
|
||||
// accountsAddWindowController = accountsFeedbinWindowController
|
||||
// case .feedWrangler:
|
||||
// let accountsFeedWranglerWindowController = AccountsFeedWranglerWindowController()
|
||||
// accountsFeedWranglerWindowController.runSheetOnWindow(self.view.window!)
|
||||
// accountsAddWindowController = accountsFeedWranglerWindowController
|
||||
// case .freshRSS:
|
||||
// let accountsReaderAPIWindowController = AccountsReaderAPIWindowController()
|
||||
// accountsReaderAPIWindowController.accountType = .freshRSS
|
||||
// accountsReaderAPIWindowController.runSheetOnWindow(self.view.window!)
|
||||
// accountsAddWindowController = accountsReaderAPIWindowController
|
||||
// case .feedly:
|
||||
// let addAccount = OAuthAccountAuthorizationOperation(accountType: .feedly)
|
||||
// addAccount.delegate = self
|
||||
// addAccount.presentationAnchor = self.view.window!
|
||||
// MainThreadOperationQueue.shared.add(addAccount)
|
||||
// case .newsBlur:
|
||||
// let accountsNewsBlurWindowController = AccountsNewsBlurWindowController()
|
||||
// accountsNewsBlurWindowController.runSheetOnWindow(self.view.window!)
|
||||
// accountsAddWindowController = accountsNewsBlurWindowController
|
||||
// }
|
||||
|
||||
tableView.selectRowIndexes([], byExtendingSelection: false)
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: OAuthAccountAuthorizationOperationDelegate
|
||||
|
||||
//extension AccountsAddViewController: OAuthAccountAuthorizationOperationDelegate {
|
||||
//
|
||||
// func oauthAccountAuthorizationOperation(_ operation: OAuthAccountAuthorizationOperation, didCreate account: Account) {
|
||||
// account.refreshAll { [weak self] result in
|
||||
// switch result {
|
||||
// case .success:
|
||||
// break
|
||||
// case .failure(let error):
|
||||
// self?.presentError(error)
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// func oauthAccountAuthorizationOperation(_ operation: OAuthAccountAuthorizationOperation, didFailWith error: Error) {
|
||||
// view.window?.presentError(error)
|
||||
// }
|
||||
//}
|
@ -0,0 +1,89 @@
|
||||
//
|
||||
// FeedProvidersPreferencesViewController.swift
|
||||
// NetNewsWire
|
||||
//
|
||||
// Created by Maurice Parker on 4/6/20.
|
||||
// Copyright © 2020 Ranchero Software. All rights reserved.
|
||||
//
|
||||
|
||||
import AppKit
|
||||
|
||||
final class FeedProvidersPreferencesViewController: NSViewController {
|
||||
|
||||
@IBOutlet weak var tableView: NSTableView!
|
||||
@IBOutlet weak var detailView: NSView!
|
||||
@IBOutlet weak var deleteButton: NSButton!
|
||||
|
||||
private var sortedAccounts = [String]()
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
tableView.delegate = self
|
||||
tableView.dataSource = self
|
||||
|
||||
showController(FeedProvidersAddViewController())
|
||||
|
||||
// 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
|
||||
rTable.size.width = tableView.superview!.frame.size.width
|
||||
tableView.frame = rTable
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: - NSTableViewDataSource
|
||||
|
||||
extension FeedProvidersPreferencesViewController: NSTableViewDataSource {
|
||||
|
||||
func numberOfRows(in tableView: NSTableView) -> Int {
|
||||
return sortedAccounts.count
|
||||
}
|
||||
|
||||
func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any? {
|
||||
return sortedAccounts[row]
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - NSTableViewDelegate
|
||||
|
||||
extension FeedProvidersPreferencesViewController: 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? NSTableCellView {
|
||||
let account = sortedAccounts[row]
|
||||
// cell.textField?.stringValue = account.nameForDisplay
|
||||
// cell.imageView?.image = account.smallIcon?.image
|
||||
return cell
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func tableViewSelectionDidChange(_ notification: Notification) {
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: - Private
|
||||
|
||||
private extension FeedProvidersPreferencesViewController {
|
||||
|
||||
func showController(_ controller: NSViewController) {
|
||||
|
||||
if let controller = children.first {
|
||||
children.removeAll()
|
||||
controller.view.removeFromSuperview()
|
||||
}
|
||||
|
||||
addChild(controller)
|
||||
controller.view.translatesAutoresizingMaskIntoConstraints = false
|
||||
detailView.addSubview(controller.view)
|
||||
detailView.addFullSizeConstraints(forSubview: controller.view)
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// AccountsControlsBackgroundView.swift
|
||||
// PreferencesControlsBackgroundView.swift
|
||||
// NetNewsWire
|
||||
//
|
||||
// Created by Brent Simmons on 3/18/19.
|
||||
@ -9,7 +9,7 @@
|
||||
import AppKit
|
||||
import RSCore
|
||||
|
||||
final class AccountsControlsBackgroundView: NSView {
|
||||
final class PreferencesControlsBackgroundView: NSView {
|
||||
|
||||
private let lightModeFillColor = NSColor(white: 0.97, alpha: 1.0)
|
||||
private let darkModeFillColor = NSColor(red: 0.32, green: 0.34, blue: 0.35, alpha: 1.0)
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// AccountsTableViewBackgroundView.swift
|
||||
// PreferencesTableViewBackgroundView.swift
|
||||
// NetNewsWire
|
||||
//
|
||||
// Created by Brent Simmons on 3/19/19.
|
||||
@ -8,7 +8,7 @@
|
||||
|
||||
import AppKit
|
||||
|
||||
final class AccountsTableViewBackgroundView: NSView {
|
||||
final class PreferencesTableViewBackgroundView: NSView {
|
||||
|
||||
let lightBorderColor = NSColor(white: 0.71, alpha: 1.0)
|
||||
let darkBorderColor = NSColor(red: 0.41, green: 0.43, blue: 0.44, alpha: 1.0)
|
@ -24,6 +24,7 @@ private struct PreferencesToolbarItemSpec {
|
||||
private struct ToolbarItemIdentifier {
|
||||
static let General = "General"
|
||||
static let Accounts = "Accounts"
|
||||
static let FeedProvider = "FeedProvider"
|
||||
static let Advanced = "Advanced"
|
||||
}
|
||||
|
||||
@ -35,6 +36,7 @@ class PreferencesWindowController : NSWindowController, NSToolbarDelegate {
|
||||
var specs = [PreferencesToolbarItemSpec]()
|
||||
specs += [PreferencesToolbarItemSpec(identifierRawValue: ToolbarItemIdentifier.General, name: NSLocalizedString("General", comment: "Preferences"), imageName: NSImage.preferencesGeneralName)]
|
||||
specs += [PreferencesToolbarItemSpec(identifierRawValue: ToolbarItemIdentifier.Accounts, name: NSLocalizedString("Accounts", comment: "Preferences"), imageName: NSImage.userAccountsName)]
|
||||
specs += [PreferencesToolbarItemSpec(identifierRawValue: ToolbarItemIdentifier.FeedProvider, name: NSLocalizedString("Providers", comment: "Preferences"), imageName: "feedProviderToolbar")]
|
||||
|
||||
// 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
|
||||
|
12
Mac/Resources/Assets.xcassets/feedProviderToolbar.imageset/Contents.json
vendored
Normal file
12
Mac/Resources/Assets.xcassets/feedProviderToolbar.imageset/Contents.json
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "globe.pdf",
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
BIN
Mac/Resources/Assets.xcassets/feedProviderToolbar.imageset/globe.pdf
vendored
Normal file
BIN
Mac/Resources/Assets.xcassets/feedProviderToolbar.imageset/globe.pdf
vendored
Normal file
Binary file not shown.
15
Mac/Resources/Assets.xcassets/feedProviderTwitter.imageset/Contents.json
vendored
Normal file
15
Mac/Resources/Assets.xcassets/feedProviderTwitter.imageset/Contents.json
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "twitter.pdf",
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
BIN
Mac/Resources/Assets.xcassets/feedProviderTwitter.imageset/twitter.pdf
vendored
Normal file
BIN
Mac/Resources/Assets.xcassets/feedProviderTwitter.imageset/twitter.pdf
vendored
Normal file
Binary file not shown.
@ -28,11 +28,19 @@
|
||||
5108F6D22375EED2001ABC45 /* TimelineCustomizerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5108F6D12375EED2001ABC45 /* TimelineCustomizerViewController.swift */; };
|
||||
5108F6D42375EEEF001ABC45 /* TimelinePreviewTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5108F6D32375EEEF001ABC45 /* TimelinePreviewTableViewController.swift */; };
|
||||
5108F6D823763094001ABC45 /* TickMarkSlider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5108F6D723763094001ABC45 /* TickMarkSlider.swift */; };
|
||||
510C43ED243C0973009F70C3 /* FeedProvidersAdd.xib in Resources */ = {isa = PBXBuildFile; fileRef = 510C43EC243C0973009F70C3 /* FeedProvidersAdd.xib */; };
|
||||
510C43EE243C0973009F70C3 /* FeedProvidersAdd.xib in Resources */ = {isa = PBXBuildFile; fileRef = 510C43EC243C0973009F70C3 /* FeedProvidersAdd.xib */; };
|
||||
510C43F0243C0A80009F70C3 /* FeedProvidersAddViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 510C43EF243C0A80009F70C3 /* FeedProvidersAddViewController.swift */; };
|
||||
510C43F1243C0A80009F70C3 /* FeedProvidersAddViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 510C43EF243C0A80009F70C3 /* FeedProvidersAddViewController.swift */; };
|
||||
510C43F3243C11FE009F70C3 /* FeedProvidersAddTableCellView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 510C43F2243C11FE009F70C3 /* FeedProvidersAddTableCellView.swift */; };
|
||||
510C43F4243C11FE009F70C3 /* FeedProvidersAddTableCellView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 510C43F2243C11FE009F70C3 /* FeedProvidersAddTableCellView.swift */; };
|
||||
51102165233A7D6C0007A5F7 /* ArticleExtractorButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51102164233A7D6C0007A5F7 /* ArticleExtractorButton.swift */; };
|
||||
511076F7243BDA8100D97C8C /* FeedProvider.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51107672243BCE0500D97C8C /* FeedProvider.framework */; };
|
||||
511076F8243BDA8200D97C8C /* FeedProvider.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 51107672243BCE0500D97C8C /* FeedProvider.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
511076F9243BDA9600D97C8C /* FeedProvider.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51107672243BCE0500D97C8C /* FeedProvider.framework */; };
|
||||
511076FA243BDA9600D97C8C /* FeedProvider.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 51107672243BCE0500D97C8C /* FeedProvider.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
51107746243BEE2500D97C8C /* FeedProvidersPreferencesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51107745243BEE2500D97C8C /* FeedProvidersPreferencesViewController.swift */; };
|
||||
51107747243BEE2500D97C8C /* FeedProvidersPreferencesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51107745243BEE2500D97C8C /* FeedProvidersPreferencesViewController.swift */; };
|
||||
5110C37D2373A8D100A9C04F /* InspectorIconHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5110C37C2373A8D100A9C04F /* InspectorIconHeaderView.swift */; };
|
||||
51126DA4225FDE2F00722696 /* RSImage-Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51126DA3225FDE2F00722696 /* RSImage-Extensions.swift */; };
|
||||
5115CAF42266301400B21BCE /* AddContainerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51121B5A22661FEF00BC0EC1 /* AddContainerViewController.swift */; };
|
||||
@ -351,7 +359,7 @@
|
||||
65ED3FDD235DEF6C0081F399 /* ActivityType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51D87EE02311D34700E63F03 /* ActivityType.swift */; };
|
||||
65ED3FDE235DEF6C0081F399 /* CrashReportWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 840BEE4021D70E64009BBAFA /* CrashReportWindowController.swift */; };
|
||||
65ED3FDF235DEF6C0081F399 /* WebFeedIconDownloader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 842611891FCB67AA0086A189 /* WebFeedIconDownloader.swift */; };
|
||||
65ED3FE0235DEF6C0081F399 /* AccountsControlsBackgroundView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C9FC7122629E1200D921D6 /* AccountsControlsBackgroundView.swift */; };
|
||||
65ED3FE0235DEF6C0081F399 /* PreferencesControlsBackgroundView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C9FC7122629E1200D921D6 /* PreferencesControlsBackgroundView.swift */; };
|
||||
65ED3FE1235DEF6C0081F399 /* MarkCommandValidationStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84162A142038C12C00035290 /* MarkCommandValidationStatus.swift */; };
|
||||
65ED3FE2235DEF6C0081F399 /* ArticlePasteboardWriter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84E95D231FB1087500552D99 /* ArticlePasteboardWriter.swift */; };
|
||||
65ED3FE3235DEF6C0081F399 /* ArticleUtilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 849A97581ED9EB0D007D329B /* ArticleUtilities.swift */; };
|
||||
@ -406,7 +414,7 @@
|
||||
65ED4015235DEF6C0081F399 /* AccountsDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5144EA2E2279FAB600D19003 /* AccountsDetailViewController.swift */; };
|
||||
65ED4016235DEF6C0081F399 /* DetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 849A977E1ED9EC42007D329B /* DetailViewController.swift */; };
|
||||
65ED4017235DEF6C0081F399 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C9FC6622629B3900D921D6 /* AppDelegate.swift */; };
|
||||
65ED4018235DEF6C0081F399 /* AccountsTableViewBackgroundView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C9FC7022629E1200D921D6 /* AccountsTableViewBackgroundView.swift */; };
|
||||
65ED4018235DEF6C0081F399 /* PreferencesTableViewBackgroundView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C9FC7022629E1200D921D6 /* PreferencesTableViewBackgroundView.swift */; };
|
||||
65ED4019235DEF6C0081F399 /* FetchRequestOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84CAFCAE22BC8C35007694F0 /* FetchRequestOperation.swift */; };
|
||||
65ED401A235DEF6C0081F399 /* HTMLMetadataDownloader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8426119D1FCB6ED40086A189 /* HTMLMetadataDownloader.swift */; };
|
||||
65ED401B235DEF6C0081F399 /* TimelineViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 849A976B1ED9EBC8007D329B /* TimelineViewController.swift */; };
|
||||
@ -621,8 +629,8 @@
|
||||
84C9FC7722629E1200D921D6 /* AdvancedPreferencesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C9FC6B22629E1200D921D6 /* AdvancedPreferencesViewController.swift */; };
|
||||
84C9FC7822629E1200D921D6 /* GeneralPrefencesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C9FC6D22629E1200D921D6 /* GeneralPrefencesViewController.swift */; };
|
||||
84C9FC7922629E1200D921D6 /* PreferencesWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C9FC6E22629E1200D921D6 /* PreferencesWindowController.swift */; };
|
||||
84C9FC7A22629E1200D921D6 /* AccountsTableViewBackgroundView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C9FC7022629E1200D921D6 /* AccountsTableViewBackgroundView.swift */; };
|
||||
84C9FC7B22629E1200D921D6 /* AccountsControlsBackgroundView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C9FC7122629E1200D921D6 /* AccountsControlsBackgroundView.swift */; };
|
||||
84C9FC7A22629E1200D921D6 /* PreferencesTableViewBackgroundView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C9FC7022629E1200D921D6 /* PreferencesTableViewBackgroundView.swift */; };
|
||||
84C9FC7B22629E1200D921D6 /* PreferencesControlsBackgroundView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C9FC7122629E1200D921D6 /* PreferencesControlsBackgroundView.swift */; };
|
||||
84C9FC7C22629E1200D921D6 /* AccountsPreferencesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C9FC7222629E1200D921D6 /* AccountsPreferencesViewController.swift */; };
|
||||
84C9FC7D22629E1200D921D6 /* AccountsDetail.xib in Resources */ = {isa = PBXBuildFile; fileRef = 84C9FC7422629E1200D921D6 /* AccountsDetail.xib */; };
|
||||
84C9FC8222629E4800D921D6 /* Preferences.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 84C9FC8022629E4800D921D6 /* Preferences.storyboard */; };
|
||||
@ -1286,8 +1294,12 @@
|
||||
5108F6D12375EED2001ABC45 /* TimelineCustomizerViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelineCustomizerViewController.swift; sourceTree = "<group>"; };
|
||||
5108F6D32375EEEF001ABC45 /* TimelinePreviewTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelinePreviewTableViewController.swift; sourceTree = "<group>"; };
|
||||
5108F6D723763094001ABC45 /* TickMarkSlider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TickMarkSlider.swift; sourceTree = "<group>"; };
|
||||
510C43EC243C0973009F70C3 /* FeedProvidersAdd.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = FeedProvidersAdd.xib; sourceTree = "<group>"; };
|
||||
510C43EF243C0A80009F70C3 /* FeedProvidersAddViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedProvidersAddViewController.swift; sourceTree = "<group>"; };
|
||||
510C43F2243C11FE009F70C3 /* FeedProvidersAddTableCellView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedProvidersAddTableCellView.swift; sourceTree = "<group>"; };
|
||||
51102164233A7D6C0007A5F7 /* ArticleExtractorButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArticleExtractorButton.swift; sourceTree = "<group>"; };
|
||||
5110766A243BCE0400D97C8C /* FeedProvider.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = FeedProvider.xcodeproj; path = Frameworks/FeedProvider/FeedProvider.xcodeproj; sourceTree = SOURCE_ROOT; };
|
||||
51107745243BEE2500D97C8C /* FeedProvidersPreferencesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedProvidersPreferencesViewController.swift; sourceTree = "<group>"; };
|
||||
5110C37C2373A8D100A9C04F /* InspectorIconHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InspectorIconHeaderView.swift; sourceTree = "<group>"; };
|
||||
51121AA12265430A00BC0EC1 /* NetNewsWire_iOSapp_target.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = NetNewsWire_iOSapp_target.xcconfig; sourceTree = "<group>"; };
|
||||
51121B5A22661FEF00BC0EC1 /* AddContainerViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddContainerViewController.swift; sourceTree = "<group>"; };
|
||||
@ -1592,8 +1604,8 @@
|
||||
84C9FC6B22629E1200D921D6 /* AdvancedPreferencesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AdvancedPreferencesViewController.swift; sourceTree = "<group>"; };
|
||||
84C9FC6D22629E1200D921D6 /* GeneralPrefencesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneralPrefencesViewController.swift; sourceTree = "<group>"; };
|
||||
84C9FC6E22629E1200D921D6 /* PreferencesWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesWindowController.swift; sourceTree = "<group>"; };
|
||||
84C9FC7022629E1200D921D6 /* AccountsTableViewBackgroundView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountsTableViewBackgroundView.swift; sourceTree = "<group>"; };
|
||||
84C9FC7122629E1200D921D6 /* AccountsControlsBackgroundView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountsControlsBackgroundView.swift; sourceTree = "<group>"; };
|
||||
84C9FC7022629E1200D921D6 /* PreferencesTableViewBackgroundView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesTableViewBackgroundView.swift; sourceTree = "<group>"; };
|
||||
84C9FC7122629E1200D921D6 /* PreferencesControlsBackgroundView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesControlsBackgroundView.swift; sourceTree = "<group>"; };
|
||||
84C9FC7222629E1200D921D6 /* AccountsPreferencesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountsPreferencesViewController.swift; sourceTree = "<group>"; };
|
||||
84C9FC7422629E1200D921D6 /* AccountsDetail.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AccountsDetail.xib; sourceTree = "<group>"; };
|
||||
84C9FC8122629E4800D921D6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Mac/Base.lproj/Preferences.storyboard; sourceTree = SOURCE_ROOT; };
|
||||
@ -1800,6 +1812,17 @@
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
51107744243BEDD300D97C8C /* FeedProviders */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
510C43EC243C0973009F70C3 /* FeedProvidersAdd.xib */,
|
||||
510C43F2243C11FE009F70C3 /* FeedProvidersAddTableCellView.swift */,
|
||||
510C43EF243C0A80009F70C3 /* FeedProvidersAddViewController.swift */,
|
||||
51107745243BEE2500D97C8C /* FeedProvidersPreferencesViewController.swift */,
|
||||
);
|
||||
path = FeedProviders;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
511D43CE231FA51100FB1562 /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@ -2626,9 +2649,12 @@
|
||||
children = (
|
||||
84C9FC8022629E4800D921D6 /* Preferences.storyboard */,
|
||||
84C9FC6E22629E1200D921D6 /* PreferencesWindowController.swift */,
|
||||
84C9FC7022629E1200D921D6 /* PreferencesTableViewBackgroundView.swift */,
|
||||
84C9FC7122629E1200D921D6 /* PreferencesControlsBackgroundView.swift */,
|
||||
84C9FC6A22629E1200D921D6 /* Advanced */,
|
||||
84C9FC6C22629E1200D921D6 /* General */,
|
||||
84C9FC6F22629E1200D921D6 /* Accounts */,
|
||||
51107744243BEDD300D97C8C /* FeedProviders */,
|
||||
);
|
||||
path = Preferences;
|
||||
sourceTree = "<group>";
|
||||
@ -2652,8 +2678,6 @@
|
||||
84C9FC6F22629E1200D921D6 /* Accounts */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
84C9FC7022629E1200D921D6 /* AccountsTableViewBackgroundView.swift */,
|
||||
84C9FC7122629E1200D921D6 /* AccountsControlsBackgroundView.swift */,
|
||||
84C9FC7222629E1200D921D6 /* AccountsPreferencesViewController.swift */,
|
||||
51EF0F8D2279C9260050506E /* AccountsAdd.xib */,
|
||||
51EF0F8F2279C9500050506E /* AccountsAddViewController.swift */,
|
||||
@ -3527,6 +3551,7 @@
|
||||
65ED4051235DEF6C0081F399 /* TimelineKeyboardShortcuts.plist in Resources */,
|
||||
65ED4052235DEF6C0081F399 /* template.html in Resources */,
|
||||
65ED4054235DEF6C0081F399 /* Main.storyboard in Resources */,
|
||||
510C43EE243C0973009F70C3 /* FeedProvidersAdd.xib in Resources */,
|
||||
65ED4055235DEF6C0081F399 /* AccountsAdd.xib in Resources */,
|
||||
65ED4056235DEF6C0081F399 /* NetNewsWire.sdef in Resources */,
|
||||
65ED4057235DEF6C0081F399 /* AccountsDetail.xib in Resources */,
|
||||
@ -3641,6 +3666,7 @@
|
||||
3B826DCB2385C84800FC1ADB /* AccountsFeedWrangler.xib in Resources */,
|
||||
55E15BCB229D65A900D6602A /* AccountsReaderAPI.xib in Resources */,
|
||||
49F40DF82335B71000552BF4 /* newsfoot.js in Resources */,
|
||||
510C43ED243C0973009F70C3 /* FeedProvidersAdd.xib in Resources */,
|
||||
BDCB516724282C8A00102A80 /* AccountsNewsBlur.xib in Resources */,
|
||||
5103A9982421643300410853 /* blank.html in Resources */,
|
||||
84BAE64921CEDAF20046DB56 /* CrashReporterWindow.xib in Resources */,
|
||||
@ -3820,6 +3846,7 @@
|
||||
files = (
|
||||
65ED3FB7235DEF6C0081F399 /* ArticleArray.swift in Sources */,
|
||||
65ED3FB8235DEF6C0081F399 /* CrashReporter.swift in Sources */,
|
||||
51107747243BEE2500D97C8C /* FeedProvidersPreferencesViewController.swift in Sources */,
|
||||
65ED3FB9235DEF6C0081F399 /* IconView.swift in Sources */,
|
||||
65ED3FBB235DEF6C0081F399 /* InspectorWindowController.swift in Sources */,
|
||||
65ED3FBC235DEF6C0081F399 /* ColorHash.swift in Sources */,
|
||||
@ -3858,7 +3885,7 @@
|
||||
65ED3FDD235DEF6C0081F399 /* ActivityType.swift in Sources */,
|
||||
65ED3FDE235DEF6C0081F399 /* CrashReportWindowController.swift in Sources */,
|
||||
65ED3FDF235DEF6C0081F399 /* WebFeedIconDownloader.swift in Sources */,
|
||||
65ED3FE0235DEF6C0081F399 /* AccountsControlsBackgroundView.swift in Sources */,
|
||||
65ED3FE0235DEF6C0081F399 /* PreferencesControlsBackgroundView.swift in Sources */,
|
||||
65ED3FE1235DEF6C0081F399 /* MarkCommandValidationStatus.swift in Sources */,
|
||||
65ED3FE2235DEF6C0081F399 /* ArticlePasteboardWriter.swift in Sources */,
|
||||
65ED3FE3235DEF6C0081F399 /* ArticleUtilities.swift in Sources */,
|
||||
@ -3915,13 +3942,14 @@
|
||||
65ED4015235DEF6C0081F399 /* AccountsDetailViewController.swift in Sources */,
|
||||
65ED4016235DEF6C0081F399 /* DetailViewController.swift in Sources */,
|
||||
65ED4017235DEF6C0081F399 /* AppDelegate.swift in Sources */,
|
||||
65ED4018235DEF6C0081F399 /* AccountsTableViewBackgroundView.swift in Sources */,
|
||||
65ED4018235DEF6C0081F399 /* PreferencesTableViewBackgroundView.swift in Sources */,
|
||||
65ED4019235DEF6C0081F399 /* FetchRequestOperation.swift in Sources */,
|
||||
65ED401A235DEF6C0081F399 /* HTMLMetadataDownloader.swift in Sources */,
|
||||
65ED401B235DEF6C0081F399 /* TimelineViewController.swift in Sources */,
|
||||
65ED401C235DEF6C0081F399 /* FaviconGenerator.swift in Sources */,
|
||||
65ED401D235DEF6C0081F399 /* RefreshInterval.swift in Sources */,
|
||||
65ED401E235DEF6C0081F399 /* TimelineCellData.swift in Sources */,
|
||||
510C43F1243C0A80009F70C3 /* FeedProvidersAddViewController.swift in Sources */,
|
||||
65ED401F235DEF6C0081F399 /* BuiltinSmartFeedInspectorViewController.swift in Sources */,
|
||||
65ED4020235DEF6C0081F399 /* AppDelegate+Scriptability.swift in Sources */,
|
||||
65ED4021235DEF6C0081F399 /* NNW3Document.swift in Sources */,
|
||||
@ -3956,6 +3984,7 @@
|
||||
65ED403C235DEF6C0081F399 /* SingleLineTextFieldSizer.swift in Sources */,
|
||||
65ED403D235DEF6C0081F399 /* TimelineTableCellView.swift in Sources */,
|
||||
65ED403E235DEF6C0081F399 /* TimelineCellAppearance.swift in Sources */,
|
||||
510C43F4243C11FE009F70C3 /* FeedProvidersAddTableCellView.swift in Sources */,
|
||||
65ED403F235DEF6C0081F399 /* ArticleRenderer.swift in Sources */,
|
||||
65ED4040235DEF6C0081F399 /* GeneralPrefencesViewController.swift in Sources */,
|
||||
179DB1DFBCF9177104B12E0F /* AccountsNewsBlurWindowController.swift in Sources */,
|
||||
@ -4173,9 +4202,10 @@
|
||||
849A97651ED9EB96007D329B /* WebFeedTreeControllerDelegate.swift in Sources */,
|
||||
849A97671ED9EB96007D329B /* UnreadCountView.swift in Sources */,
|
||||
51FE10092346739D0056195D /* ActivityType.swift in Sources */,
|
||||
510C43F3243C11FE009F70C3 /* FeedProvidersAddTableCellView.swift in Sources */,
|
||||
840BEE4121D70E64009BBAFA /* CrashReportWindowController.swift in Sources */,
|
||||
8426118A1FCB67AA0086A189 /* WebFeedIconDownloader.swift in Sources */,
|
||||
84C9FC7B22629E1200D921D6 /* AccountsControlsBackgroundView.swift in Sources */,
|
||||
84C9FC7B22629E1200D921D6 /* PreferencesControlsBackgroundView.swift in Sources */,
|
||||
84162A152038C12C00035290 /* MarkCommandValidationStatus.swift in Sources */,
|
||||
84E95D241FB1087500552D99 /* ArticlePasteboardWriter.swift in Sources */,
|
||||
849A975B1ED9EB0D007D329B /* ArticleUtilities.swift in Sources */,
|
||||
@ -4193,6 +4223,7 @@
|
||||
D5907DB22004BB37005947E5 /* ScriptingObjectContainer.swift in Sources */,
|
||||
849A978A1ED9ECEF007D329B /* ArticleStylesManager.swift in Sources */,
|
||||
8405DD8A2213E0E3008CE1BF /* DetailContainerView.swift in Sources */,
|
||||
51107746243BEE2500D97C8C /* FeedProvidersPreferencesViewController.swift in Sources */,
|
||||
519B8D332143397200FA689C /* SharingServiceDelegate.swift in Sources */,
|
||||
FF3ABF1523259DDB0074C542 /* ArticleSorter.swift in Sources */,
|
||||
84E8E0DB202EC49300562D8F /* TimelineViewController+ContextualMenus.swift in Sources */,
|
||||
@ -4235,7 +4266,7 @@
|
||||
849A97801ED9EC42007D329B /* DetailViewController.swift in Sources */,
|
||||
518C3193237B00D9004D740F /* DetailIconSchemeHandler.swift in Sources */,
|
||||
84C9FC6722629B9000D921D6 /* AppDelegate.swift in Sources */,
|
||||
84C9FC7A22629E1200D921D6 /* AccountsTableViewBackgroundView.swift in Sources */,
|
||||
84C9FC7A22629E1200D921D6 /* PreferencesTableViewBackgroundView.swift in Sources */,
|
||||
84CAFCAF22BC8C35007694F0 /* FetchRequestOperation.swift in Sources */,
|
||||
8426119E1FCB6ED40086A189 /* HTMLMetadataDownloader.swift in Sources */,
|
||||
849A976E1ED9EBC8007D329B /* TimelineViewController.swift in Sources */,
|
||||
@ -4248,6 +4279,7 @@
|
||||
518651B223555EB20078E021 /* NNW3Document.swift in Sources */,
|
||||
D5F4EDB5200744A700B9E363 /* ScriptingObject.swift in Sources */,
|
||||
D5F4EDB920074D7C00B9E363 /* Folder+Scriptability.swift in Sources */,
|
||||
510C43F0243C0A80009F70C3 /* FeedProvidersAddViewController.swift in Sources */,
|
||||
849A97781ED9EC04007D329B /* TimelineCellLayout.swift in Sources */,
|
||||
84E8E0EB202F693600562D8F /* DetailWebView.swift in Sources */,
|
||||
849A976C1ED9EBC8007D329B /* TimelineTableRowView.swift in Sources */,
|
||||
|
Loading…
x
Reference in New Issue
Block a user