Rewrite Add Feed and Add Folder to be separate dialogs
This commit is contained in:
parent
3188a80d25
commit
0ec250ec24
|
@ -57,12 +57,7 @@
|
||||||
3B826DCE2385C89600FC1ADB /* AccountsFeedWranglerWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B826DCA2385C84800FC1ADB /* AccountsFeedWranglerWindowController.swift */; };
|
3B826DCE2385C89600FC1ADB /* AccountsFeedWranglerWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B826DCA2385C84800FC1ADB /* AccountsFeedWranglerWindowController.swift */; };
|
||||||
49F40DF82335B71000552BF4 /* newsfoot.js in Resources */ = {isa = PBXBuildFile; fileRef = 49F40DEF2335B71000552BF4 /* newsfoot.js */; };
|
49F40DF82335B71000552BF4 /* newsfoot.js in Resources */ = {isa = PBXBuildFile; fileRef = 49F40DEF2335B71000552BF4 /* newsfoot.js */; };
|
||||||
49F40DF92335B71000552BF4 /* newsfoot.js in Resources */ = {isa = PBXBuildFile; fileRef = 49F40DEF2335B71000552BF4 /* newsfoot.js */; };
|
49F40DF92335B71000552BF4 /* newsfoot.js in Resources */ = {isa = PBXBuildFile; fileRef = 49F40DEF2335B71000552BF4 /* newsfoot.js */; };
|
||||||
510289AA2451967500426DDF /* SelectURLBuilderTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 510289A92451967500426DDF /* SelectURLBuilderTableViewController.swift */; };
|
|
||||||
510289CD24519A1D00426DDF /* SelectComboTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 510289CC24519A1D00426DDF /* SelectComboTableViewCell.swift */; };
|
510289CD24519A1D00426DDF /* SelectComboTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 510289CC24519A1D00426DDF /* SelectComboTableViewCell.swift */; };
|
||||||
510289D02451BA3A00426DDF /* TwitterAdd.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 510289CF2451BA3A00426DDF /* TwitterAdd.storyboard */; };
|
|
||||||
510289D22451BC1F00426DDF /* TwitterSelectTypeTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 510289D12451BC1F00426DDF /* TwitterSelectTypeTableViewController.swift */; };
|
|
||||||
510289D42451BD7B00426DDF /* SelectURLBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 510289D32451BD7B00426DDF /* SelectURLBuilder.swift */; };
|
|
||||||
510289D62451DDD100426DDF /* TwitterSelectAccountTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 510289D52451DDD100426DDF /* TwitterSelectAccountTableViewController.swift */; };
|
|
||||||
5102AE6924D17F7C0050839C /* RSCore in Frameworks */ = {isa = PBXBuildFile; productRef = 5102AE6824D17F7C0050839C /* RSCore */; };
|
5102AE6924D17F7C0050839C /* RSCore in Frameworks */ = {isa = PBXBuildFile; productRef = 5102AE6824D17F7C0050839C /* RSCore */; };
|
||||||
5102AE6A24D17F7C0050839C /* RSCore in Embed Frameworks */ = {isa = PBXBuildFile; productRef = 5102AE6824D17F7C0050839C /* RSCore */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
5102AE6A24D17F7C0050839C /* RSCore in Embed Frameworks */ = {isa = PBXBuildFile; productRef = 5102AE6824D17F7C0050839C /* RSCore */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
||||||
5102AE6C24D17F7C0050839C /* RSCoreResources in Frameworks */ = {isa = PBXBuildFile; productRef = 5102AE6B24D17F7C0050839C /* RSCoreResources */; };
|
5102AE6C24D17F7C0050839C /* RSCoreResources in Frameworks */ = {isa = PBXBuildFile; productRef = 5102AE6B24D17F7C0050839C /* RSCoreResources */; };
|
||||||
|
@ -91,7 +86,6 @@
|
||||||
51107747243BEE2500D97C8C /* ExtensionPointPreferencesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51107745243BEE2500D97C8C /* ExtensionPointPreferencesViewController.swift */; };
|
51107747243BEE2500D97C8C /* ExtensionPointPreferencesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51107745243BEE2500D97C8C /* ExtensionPointPreferencesViewController.swift */; };
|
||||||
5110C37D2373A8D100A9C04F /* InspectorIconHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5110C37C2373A8D100A9C04F /* InspectorIconHeaderView.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 */; };
|
51126DA4225FDE2F00722696 /* RSImage-Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51126DA3225FDE2F00722696 /* RSImage-Extensions.swift */; };
|
||||||
5115CAF42266301400B21BCE /* AddContainerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51121B5A22661FEF00BC0EC1 /* AddContainerViewController.swift */; };
|
|
||||||
5117715524E1EA0F00A2A836 /* ArticleExtractorButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5117715424E1EA0F00A2A836 /* ArticleExtractorButton.swift */; };
|
5117715524E1EA0F00A2A836 /* ArticleExtractorButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5117715424E1EA0F00A2A836 /* ArticleExtractorButton.swift */; };
|
||||||
5117715624E1EA0F00A2A836 /* ArticleExtractorButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5117715424E1EA0F00A2A836 /* ArticleExtractorButton.swift */; };
|
5117715624E1EA0F00A2A836 /* ArticleExtractorButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5117715424E1EA0F00A2A836 /* ArticleExtractorButton.swift */; };
|
||||||
511B9806237DCAC90028BCAA /* UserInfoKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 511B9805237DCAC90028BCAA /* UserInfoKey.swift */; };
|
511B9806237DCAC90028BCAA /* UserInfoKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 511B9805237DCAC90028BCAA /* UserInfoKey.swift */; };
|
||||||
|
@ -164,7 +158,6 @@
|
||||||
514A89A5244FD6640085E65D /* AddTwitterFeedWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 514A89A4244FD6640085E65D /* AddTwitterFeedWindowController.swift */; };
|
514A89A5244FD6640085E65D /* AddTwitterFeedWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 514A89A4244FD6640085E65D /* AddTwitterFeedWindowController.swift */; };
|
||||||
514A89A6244FD6640085E65D /* AddTwitterFeedWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 514A89A4244FD6640085E65D /* AddTwitterFeedWindowController.swift */; };
|
514A89A6244FD6640085E65D /* AddTwitterFeedWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 514A89A4244FD6640085E65D /* AddTwitterFeedWindowController.swift */; };
|
||||||
514B7C8323205EFB00BAC947 /* RootSplitViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 514B7C8223205EFB00BAC947 /* RootSplitViewController.swift */; };
|
514B7C8323205EFB00BAC947 /* RootSplitViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 514B7C8223205EFB00BAC947 /* RootSplitViewController.swift */; };
|
||||||
514B7D1F23219F3C00BAC947 /* AddControllerType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 514B7D1E23219F3C00BAC947 /* AddControllerType.swift */; };
|
|
||||||
514C16CE24D2E63F009A3AFA /* Account in Frameworks */ = {isa = PBXBuildFile; productRef = 514C16CD24D2E63F009A3AFA /* Account */; };
|
514C16CE24D2E63F009A3AFA /* Account in Frameworks */ = {isa = PBXBuildFile; productRef = 514C16CD24D2E63F009A3AFA /* Account */; };
|
||||||
514C16DE24D2EF15009A3AFA /* RSTree in Frameworks */ = {isa = PBXBuildFile; productRef = 514C16DD24D2EF15009A3AFA /* RSTree */; };
|
514C16DE24D2EF15009A3AFA /* RSTree in Frameworks */ = {isa = PBXBuildFile; productRef = 514C16DD24D2EF15009A3AFA /* RSTree */; };
|
||||||
514C16DF24D2EF15009A3AFA /* RSTree in Embed Frameworks */ = {isa = PBXBuildFile; productRef = 514C16DD24D2EF15009A3AFA /* RSTree */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
514C16DF24D2EF15009A3AFA /* RSTree in Embed Frameworks */ = {isa = PBXBuildFile; productRef = 514C16DD24D2EF15009A3AFA /* RSTree */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
||||||
|
@ -210,11 +203,6 @@
|
||||||
516A093B2360A4A000EAE89B /* SettingsTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 516A093A2360A4A000EAE89B /* SettingsTableViewCell.xib */; };
|
516A093B2360A4A000EAE89B /* SettingsTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 516A093A2360A4A000EAE89B /* SettingsTableViewCell.xib */; };
|
||||||
516A09402361240900EAE89B /* Account.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 516A093F2361240900EAE89B /* Account.storyboard */; };
|
516A09402361240900EAE89B /* Account.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 516A093F2361240900EAE89B /* Account.storyboard */; };
|
||||||
516A09422361248000EAE89B /* Inspector.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 516A09412361248000EAE89B /* Inspector.storyboard */; };
|
516A09422361248000EAE89B /* Inspector.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 516A09412361248000EAE89B /* Inspector.storyboard */; };
|
||||||
516AE600246AF34200731738 /* RedditAdd.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 516AE5FF246AF34100731738 /* RedditAdd.storyboard */; };
|
|
||||||
516AE602246AF36100731738 /* RedditSelectTypeTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 516AE601246AF36100731738 /* RedditSelectTypeTableViewController.swift */; };
|
|
||||||
516AE604246AF37B00731738 /* RedditSelectAccountTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 516AE603246AF37B00731738 /* RedditSelectAccountTableViewController.swift */; };
|
|
||||||
516AE606246AF3A900731738 /* RedditEnterDetailTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 516AE605246AF3A900731738 /* RedditEnterDetailTableViewController.swift */; };
|
|
||||||
516AE608246AFC9900731738 /* RedditSelectSortTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 516AE607246AFC9900731738 /* RedditSelectSortTableViewController.swift */; };
|
|
||||||
516AE9B32371C372007DEEAA /* MasterFeedTableViewSectionHeaderLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 516AE9B22371C372007DEEAA /* MasterFeedTableViewSectionHeaderLayout.swift */; };
|
516AE9B32371C372007DEEAA /* MasterFeedTableViewSectionHeaderLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 516AE9B22371C372007DEEAA /* MasterFeedTableViewSectionHeaderLayout.swift */; };
|
||||||
516AE9DF2372269A007DEEAA /* IconImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 516AE9DE2372269A007DEEAA /* IconImage.swift */; };
|
516AE9DF2372269A007DEEAA /* IconImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 516AE9DE2372269A007DEEAA /* IconImage.swift */; };
|
||||||
516AE9E02372269A007DEEAA /* IconImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 516AE9DE2372269A007DEEAA /* IconImage.swift */; };
|
516AE9E02372269A007DEEAA /* IconImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 516AE9DE2372269A007DEEAA /* IconImage.swift */; };
|
||||||
|
@ -402,7 +390,6 @@
|
||||||
51BC4AFF247277E0000A6ED8 /* URL-Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51BC4ADD247277DF000A6ED8 /* URL-Extensions.swift */; };
|
51BC4AFF247277E0000A6ED8 /* URL-Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51BC4ADD247277DF000A6ED8 /* URL-Extensions.swift */; };
|
||||||
51BC4B00247277E0000A6ED8 /* URL-Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51BC4ADD247277DF000A6ED8 /* URL-Extensions.swift */; };
|
51BC4B00247277E0000A6ED8 /* URL-Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51BC4ADD247277DF000A6ED8 /* URL-Extensions.swift */; };
|
||||||
51BC4B01247277E0000A6ED8 /* URL-Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51BC4ADD247277DF000A6ED8 /* URL-Extensions.swift */; };
|
51BC4B01247277E0000A6ED8 /* URL-Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51BC4ADD247277DF000A6ED8 /* URL-Extensions.swift */; };
|
||||||
51BEB22D2451E8340066DEDD /* TwitterEnterDetailTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51BEB22C2451E8340066DEDD /* TwitterEnterDetailTableViewController.swift */; };
|
|
||||||
51C0515E24A77DF800194D5E /* MainApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51C0513624A77DF700194D5E /* MainApp.swift */; };
|
51C0515E24A77DF800194D5E /* MainApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51C0513624A77DF700194D5E /* MainApp.swift */; };
|
||||||
51C0515F24A77DF800194D5E /* MainApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51C0513624A77DF700194D5E /* MainApp.swift */; };
|
51C0515F24A77DF800194D5E /* MainApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51C0513624A77DF700194D5E /* MainApp.swift */; };
|
||||||
51C0516224A77DF800194D5E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 51C0513824A77DF800194D5E /* Assets.xcassets */; };
|
51C0516224A77DF800194D5E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 51C0513824A77DF800194D5E /* Assets.xcassets */; };
|
||||||
|
@ -1436,11 +1423,9 @@
|
||||||
3B826DB02385C84800FC1ADB /* AccountsFeedWrangler.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AccountsFeedWrangler.xib; sourceTree = "<group>"; };
|
3B826DB02385C84800FC1ADB /* AccountsFeedWrangler.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AccountsFeedWrangler.xib; sourceTree = "<group>"; };
|
||||||
3B826DCA2385C84800FC1ADB /* AccountsFeedWranglerWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountsFeedWranglerWindowController.swift; sourceTree = "<group>"; };
|
3B826DCA2385C84800FC1ADB /* AccountsFeedWranglerWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountsFeedWranglerWindowController.swift; sourceTree = "<group>"; };
|
||||||
49F40DEF2335B71000552BF4 /* newsfoot.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = newsfoot.js; sourceTree = "<group>"; };
|
49F40DEF2335B71000552BF4 /* newsfoot.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = newsfoot.js; sourceTree = "<group>"; };
|
||||||
510289A92451967500426DDF /* SelectURLBuilderTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectURLBuilderTableViewController.swift; sourceTree = "<group>"; };
|
|
||||||
510289CC24519A1D00426DDF /* SelectComboTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectComboTableViewCell.swift; sourceTree = "<group>"; };
|
510289CC24519A1D00426DDF /* SelectComboTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectComboTableViewCell.swift; sourceTree = "<group>"; };
|
||||||
510289CF2451BA3A00426DDF /* TwitterAdd.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = TwitterAdd.storyboard; sourceTree = "<group>"; };
|
510289CF2451BA3A00426DDF /* TwitterAdd.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = TwitterAdd.storyboard; sourceTree = "<group>"; };
|
||||||
510289D12451BC1F00426DDF /* TwitterSelectTypeTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TwitterSelectTypeTableViewController.swift; sourceTree = "<group>"; };
|
510289D12451BC1F00426DDF /* TwitterSelectTypeTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TwitterSelectTypeTableViewController.swift; sourceTree = "<group>"; };
|
||||||
510289D32451BD7B00426DDF /* SelectURLBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectURLBuilder.swift; sourceTree = "<group>"; };
|
|
||||||
510289D52451DDD100426DDF /* TwitterSelectAccountTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TwitterSelectAccountTableViewController.swift; sourceTree = "<group>"; };
|
510289D52451DDD100426DDF /* TwitterSelectAccountTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TwitterSelectAccountTableViewController.swift; sourceTree = "<group>"; };
|
||||||
5103A9972421643300410853 /* blank.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = blank.html; sourceTree = "<group>"; };
|
5103A9972421643300410853 /* blank.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = blank.html; sourceTree = "<group>"; };
|
||||||
5103A9B324216A4200410853 /* blank.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = blank.html; sourceTree = "<group>"; };
|
5103A9B324216A4200410853 /* blank.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = blank.html; sourceTree = "<group>"; };
|
||||||
|
@ -1458,7 +1443,6 @@
|
||||||
51107745243BEE2500D97C8C /* ExtensionPointPreferencesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExtensionPointPreferencesViewController.swift; sourceTree = "<group>"; };
|
51107745243BEE2500D97C8C /* ExtensionPointPreferencesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExtensionPointPreferencesViewController.swift; sourceTree = "<group>"; };
|
||||||
5110C37C2373A8D100A9C04F /* InspectorIconHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InspectorIconHeaderView.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>"; };
|
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>"; };
|
|
||||||
51126DA3225FDE2F00722696 /* RSImage-Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "RSImage-Extensions.swift"; sourceTree = "<group>"; };
|
51126DA3225FDE2F00722696 /* RSImage-Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "RSImage-Extensions.swift"; sourceTree = "<group>"; };
|
||||||
5117715424E1EA0F00A2A836 /* ArticleExtractorButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArticleExtractorButton.swift; sourceTree = "<group>"; };
|
5117715424E1EA0F00A2A836 /* ArticleExtractorButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArticleExtractorButton.swift; sourceTree = "<group>"; };
|
||||||
511B9805237DCAC90028BCAA /* UserInfoKey.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfoKey.swift; sourceTree = "<group>"; };
|
511B9805237DCAC90028BCAA /* UserInfoKey.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfoKey.swift; sourceTree = "<group>"; };
|
||||||
|
@ -1509,7 +1493,6 @@
|
||||||
514A8980244FD63F0085E65D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Mac/Base.lproj/AddTwitterFeedSheet.xib; sourceTree = SOURCE_ROOT; };
|
514A8980244FD63F0085E65D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Mac/Base.lproj/AddTwitterFeedSheet.xib; sourceTree = SOURCE_ROOT; };
|
||||||
514A89A4244FD6640085E65D /* AddTwitterFeedWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AddTwitterFeedWindowController.swift; path = AddFeed/AddTwitterFeedWindowController.swift; sourceTree = "<group>"; };
|
514A89A4244FD6640085E65D /* AddTwitterFeedWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AddTwitterFeedWindowController.swift; path = AddFeed/AddTwitterFeedWindowController.swift; sourceTree = "<group>"; };
|
||||||
514B7C8223205EFB00BAC947 /* RootSplitViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RootSplitViewController.swift; sourceTree = "<group>"; };
|
514B7C8223205EFB00BAC947 /* RootSplitViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RootSplitViewController.swift; sourceTree = "<group>"; };
|
||||||
514B7D1E23219F3C00BAC947 /* AddControllerType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddControllerType.swift; sourceTree = "<group>"; };
|
|
||||||
514E6BD924ACEA0400AC6F6E /* TimelineItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelineItemView.swift; sourceTree = "<group>"; };
|
514E6BD924ACEA0400AC6F6E /* TimelineItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelineItemView.swift; sourceTree = "<group>"; };
|
||||||
514E6BFE24AD255D00AC6F6E /* PreviewArticles.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreviewArticles.swift; sourceTree = "<group>"; };
|
514E6BFE24AD255D00AC6F6E /* PreviewArticles.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreviewArticles.swift; sourceTree = "<group>"; };
|
||||||
514E6C0124AD29A300AC6F6E /* TimelineItemStatusView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelineItemStatusView.swift; sourceTree = "<group>"; };
|
514E6C0124AD29A300AC6F6E /* TimelineItemStatusView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelineItemStatusView.swift; sourceTree = "<group>"; };
|
||||||
|
@ -2742,15 +2725,11 @@
|
||||||
children = (
|
children = (
|
||||||
51C452822265093600C03939 /* Add.storyboard */,
|
51C452822265093600C03939 /* Add.storyboard */,
|
||||||
51E4397F23805EBC00015C31 /* AddComboTableViewCell.swift */,
|
51E4397F23805EBC00015C31 /* AddComboTableViewCell.swift */,
|
||||||
51121B5A22661FEF00BC0EC1 /* AddContainerViewController.swift */,
|
|
||||||
514B7D1E23219F3C00BAC947 /* AddControllerType.swift */,
|
|
||||||
51C4528B2265095F00C03939 /* AddFolderViewController.swift */,
|
51C4528B2265095F00C03939 /* AddFolderViewController.swift */,
|
||||||
51E43961238037C400015C31 /* AddWebFeedFolderViewController.swift */,
|
51E43961238037C400015C31 /* AddWebFeedFolderViewController.swift */,
|
||||||
51E36E70239D6610006F47A5 /* AddWebFeedSelectFolderTableViewCell.swift */,
|
51E36E70239D6610006F47A5 /* AddWebFeedSelectFolderTableViewCell.swift */,
|
||||||
51C452842265093600C03939 /* AddWebFeedViewController.swift */,
|
51C452842265093600C03939 /* AddWebFeedViewController.swift */,
|
||||||
510289CC24519A1D00426DDF /* SelectComboTableViewCell.swift */,
|
510289CC24519A1D00426DDF /* SelectComboTableViewCell.swift */,
|
||||||
510289D32451BD7B00426DDF /* SelectURLBuilder.swift */,
|
|
||||||
510289A92451967500426DDF /* SelectURLBuilderTableViewController.swift */,
|
|
||||||
51E36E8B239D6765006F47A5 /* AddWebFeedSelectFolderTableViewCell.xib */,
|
51E36E8B239D6765006F47A5 /* AddWebFeedSelectFolderTableViewCell.xib */,
|
||||||
516AE5DD246AF2DD00731738 /* Reddit */,
|
516AE5DD246AF2DD00731738 /* Reddit */,
|
||||||
510289CE2451BA1E00426DDF /* Twitter */,
|
510289CE2451BA1E00426DDF /* Twitter */,
|
||||||
|
@ -4149,10 +4128,8 @@
|
||||||
516A09422361248000EAE89B /* Inspector.storyboard in Resources */,
|
516A09422361248000EAE89B /* Inspector.storyboard in Resources */,
|
||||||
5103A9B424216A4200410853 /* blank.html in Resources */,
|
5103A9B424216A4200410853 /* blank.html in Resources */,
|
||||||
84C9FCA42262A1B800D921D6 /* LaunchScreenPhone.storyboard in Resources */,
|
84C9FCA42262A1B800D921D6 /* LaunchScreenPhone.storyboard in Resources */,
|
||||||
510289D02451BA3A00426DDF /* TwitterAdd.storyboard in Resources */,
|
|
||||||
51F85BEB22724CB600C787DC /* About.rtf in Resources */,
|
51F85BEB22724CB600C787DC /* About.rtf in Resources */,
|
||||||
516A093B2360A4A000EAE89B /* SettingsTableViewCell.xib in Resources */,
|
516A093B2360A4A000EAE89B /* SettingsTableViewCell.xib in Resources */,
|
||||||
516AE600246AF34200731738 /* RedditAdd.storyboard in Resources */,
|
|
||||||
511D43D1231FA62800FB1562 /* SidebarKeyboardShortcuts.plist in Resources */,
|
511D43D1231FA62800FB1562 /* SidebarKeyboardShortcuts.plist in Resources */,
|
||||||
516A09402361240900EAE89B /* Account.storyboard in Resources */,
|
516A09402361240900EAE89B /* Account.storyboard in Resources */,
|
||||||
51C452AB22650DC600C03939 /* template.html in Resources */,
|
51C452AB22650DC600C03939 /* template.html in Resources */,
|
||||||
|
@ -4877,18 +4854,15 @@
|
||||||
5183CCDA226E31A50010922C /* NonIntrinsicImageView.swift in Sources */,
|
5183CCDA226E31A50010922C /* NonIntrinsicImageView.swift in Sources */,
|
||||||
B2B80778239C4C7000F191E0 /* RSImage-AppIcons.swift in Sources */,
|
B2B80778239C4C7000F191E0 /* RSImage-AppIcons.swift in Sources */,
|
||||||
518ED21D23D0F26000E0A862 /* UIViewController-Extensions.swift in Sources */,
|
518ED21D23D0F26000E0A862 /* UIViewController-Extensions.swift in Sources */,
|
||||||
516AE604246AF37B00731738 /* RedditSelectAccountTableViewController.swift in Sources */,
|
|
||||||
51A9A5F52380F6A60033AADF /* ModalNavigationController.swift in Sources */,
|
51A9A5F52380F6A60033AADF /* ModalNavigationController.swift in Sources */,
|
||||||
51EAED96231363EF00A9EEE3 /* NonIntrinsicButton.swift in Sources */,
|
51EAED96231363EF00A9EEE3 /* NonIntrinsicButton.swift in Sources */,
|
||||||
51C4527B2265091600C03939 /* MasterUnreadIndicatorView.swift in Sources */,
|
51C4527B2265091600C03939 /* MasterUnreadIndicatorView.swift in Sources */,
|
||||||
516AE608246AFC9900731738 /* RedditSelectSortTableViewController.swift in Sources */,
|
|
||||||
5186A635235EF3A800C97195 /* VibrantLabel.swift in Sources */,
|
5186A635235EF3A800C97195 /* VibrantLabel.swift in Sources */,
|
||||||
51F85BF92274AA7B00C787DC /* UIBarButtonItem-Extensions.swift in Sources */,
|
51F85BF92274AA7B00C787DC /* UIBarButtonItem-Extensions.swift in Sources */,
|
||||||
51B62E68233186730085F949 /* IconView.swift in Sources */,
|
51B62E68233186730085F949 /* IconView.swift in Sources */,
|
||||||
51C45296226509D300C03939 /* OPMLExporter.swift in Sources */,
|
51C45296226509D300C03939 /* OPMLExporter.swift in Sources */,
|
||||||
51C45291226509C800C03939 /* SmartFeed.swift in Sources */,
|
51C45291226509C800C03939 /* SmartFeed.swift in Sources */,
|
||||||
51C452A722650A3D00C03939 /* RSImage-Extensions.swift in Sources */,
|
51C452A722650A3D00C03939 /* RSImage-Extensions.swift in Sources */,
|
||||||
516AE606246AF3A900731738 /* RedditEnterDetailTableViewController.swift in Sources */,
|
|
||||||
511B9807237DCAC90028BCAA /* UserInfoKey.swift in Sources */,
|
511B9807237DCAC90028BCAA /* UserInfoKey.swift in Sources */,
|
||||||
51C45269226508F600C03939 /* MasterFeedTableViewCell.swift in Sources */,
|
51C45269226508F600C03939 /* MasterFeedTableViewCell.swift in Sources */,
|
||||||
51F85BFD2275DCA800C787DC /* SingleLineUILabelSizer.swift in Sources */,
|
51F85BFD2275DCA800C787DC /* SingleLineUILabelSizer.swift in Sources */,
|
||||||
|
@ -4900,7 +4874,6 @@
|
||||||
513146B2235A81A400387FDC /* AddWebFeedIntentHandler.swift in Sources */,
|
513146B2235A81A400387FDC /* AddWebFeedIntentHandler.swift in Sources */,
|
||||||
51D87EE12311D34700E63F03 /* ActivityType.swift in Sources */,
|
51D87EE12311D34700E63F03 /* ActivityType.swift in Sources */,
|
||||||
51C452772265091600C03939 /* MultilineUILabelSizer.swift in Sources */,
|
51C452772265091600C03939 /* MultilineUILabelSizer.swift in Sources */,
|
||||||
510289D22451BC1F00426DDF /* TwitterSelectTypeTableViewController.swift in Sources */,
|
|
||||||
51C452A522650A2D00C03939 /* SmallIconProvider.swift in Sources */,
|
51C452A522650A2D00C03939 /* SmallIconProvider.swift in Sources */,
|
||||||
51AB8AB323B7F4C6008F147D /* WebViewController.swift in Sources */,
|
51AB8AB323B7F4C6008F147D /* WebViewController.swift in Sources */,
|
||||||
516A09392360A2AE00EAE89B /* SettingsComboTableViewCell.swift in Sources */,
|
516A09392360A2AE00EAE89B /* SettingsComboTableViewCell.swift in Sources */,
|
||||||
|
@ -4938,11 +4911,9 @@
|
||||||
51B5C87723F22B8200032075 /* ExtensionContainers.swift in Sources */,
|
51B5C87723F22B8200032075 /* ExtensionContainers.swift in Sources */,
|
||||||
51C45292226509C800C03939 /* TodayFeedDelegate.swift in Sources */,
|
51C45292226509C800C03939 /* TodayFeedDelegate.swift in Sources */,
|
||||||
51C452A222650A1900C03939 /* RSHTMLMetadata+Extension.swift in Sources */,
|
51C452A222650A1900C03939 /* RSHTMLMetadata+Extension.swift in Sources */,
|
||||||
514B7D1F23219F3C00BAC947 /* AddControllerType.swift in Sources */,
|
|
||||||
51B5C87B23F2317700032075 /* ExtensionFeedAddRequest.swift in Sources */,
|
51B5C87B23F2317700032075 /* ExtensionFeedAddRequest.swift in Sources */,
|
||||||
51627A93238A3836007B3B4B /* CroppingPreviewParameters.swift in Sources */,
|
51627A93238A3836007B3B4B /* CroppingPreviewParameters.swift in Sources */,
|
||||||
512AF9DD236F05230066F8BE /* InteractiveLabel.swift in Sources */,
|
512AF9DD236F05230066F8BE /* InteractiveLabel.swift in Sources */,
|
||||||
510289AA2451967500426DDF /* SelectURLBuilderTableViewController.swift in Sources */,
|
|
||||||
51E3EB3D229AB08300645299 /* ErrorHandler.swift in Sources */,
|
51E3EB3D229AB08300645299 /* ErrorHandler.swift in Sources */,
|
||||||
5183CCE5226F4DFA0010922C /* RefreshInterval.swift in Sources */,
|
5183CCE5226F4DFA0010922C /* RefreshInterval.swift in Sources */,
|
||||||
51C4529D22650A1000C03939 /* FaviconURLFinder.swift in Sources */,
|
51C4529D22650A1000C03939 /* FaviconURLFinder.swift in Sources */,
|
||||||
|
@ -4961,7 +4932,6 @@
|
||||||
51C4529922650A0000C03939 /* ArticleStylesManager.swift in Sources */,
|
51C4529922650A0000C03939 /* ArticleStylesManager.swift in Sources */,
|
||||||
51EF0F802277A8330050506E /* MasterTimelineCellLayout.swift in Sources */,
|
51EF0F802277A8330050506E /* MasterTimelineCellLayout.swift in Sources */,
|
||||||
51F85BF722749FA100C787DC /* UIFont-Extensions.swift in Sources */,
|
51F85BF722749FA100C787DC /* UIFont-Extensions.swift in Sources */,
|
||||||
510289D42451BD7B00426DDF /* SelectURLBuilder.swift in Sources */,
|
|
||||||
51C452AF2265108300C03939 /* ArticleArray.swift in Sources */,
|
51C452AF2265108300C03939 /* ArticleArray.swift in Sources */,
|
||||||
51C4528E2265099C00C03939 /* SmartFeedsController.swift in Sources */,
|
51C4528E2265099C00C03939 /* SmartFeedsController.swift in Sources */,
|
||||||
51C9DE5823EA2EF4003D5A6D /* WrapperScriptMessageHandler.swift in Sources */,
|
51C9DE5823EA2EF4003D5A6D /* WrapperScriptMessageHandler.swift in Sources */,
|
||||||
|
@ -4975,14 +4945,12 @@
|
||||||
515A517B243E90260089E588 /* ExtensionPoint.swift in Sources */,
|
515A517B243E90260089E588 /* ExtensionPoint.swift in Sources */,
|
||||||
51C4529C22650A1000C03939 /* SingleFaviconDownloader.swift in Sources */,
|
51C4529C22650A1000C03939 /* SingleFaviconDownloader.swift in Sources */,
|
||||||
51E595A6228CC36500FCC42B /* ArticleStatusSyncTimer.swift in Sources */,
|
51E595A6228CC36500FCC42B /* ArticleStatusSyncTimer.swift in Sources */,
|
||||||
516AE602246AF36100731738 /* RedditSelectTypeTableViewController.swift in Sources */,
|
|
||||||
51F9F3F723DF6DB200A314FD /* ArticleIconSchemeHandler.swift in Sources */,
|
51F9F3F723DF6DB200A314FD /* ArticleIconSchemeHandler.swift in Sources */,
|
||||||
512AF9C2236ED52C0066F8BE /* ImageHeaderView.swift in Sources */,
|
512AF9C2236ED52C0066F8BE /* ImageHeaderView.swift in Sources */,
|
||||||
515A5181243E90260089E588 /* ExtensionPointIdentifer.swift in Sources */,
|
515A5181243E90260089E588 /* ExtensionPointIdentifer.swift in Sources */,
|
||||||
51A1699F235E10D700EB091F /* AboutViewController.swift in Sources */,
|
51A1699F235E10D700EB091F /* AboutViewController.swift in Sources */,
|
||||||
51C45290226509C100C03939 /* PseudoFeed.swift in Sources */,
|
51C45290226509C100C03939 /* PseudoFeed.swift in Sources */,
|
||||||
51C452A922650DC600C03939 /* ArticleRenderer.swift in Sources */,
|
51C452A922650DC600C03939 /* ArticleRenderer.swift in Sources */,
|
||||||
5115CAF42266301400B21BCE /* AddContainerViewController.swift in Sources */,
|
|
||||||
51C45297226509E300C03939 /* DefaultFeedsImporter.swift in Sources */,
|
51C45297226509E300C03939 /* DefaultFeedsImporter.swift in Sources */,
|
||||||
512E094D2268B8AB00BDCFDD /* DeleteCommand.swift in Sources */,
|
512E094D2268B8AB00BDCFDD /* DeleteCommand.swift in Sources */,
|
||||||
5110C37D2373A8D100A9C04F /* InspectorIconHeaderView.swift in Sources */,
|
5110C37D2373A8D100A9C04F /* InspectorIconHeaderView.swift in Sources */,
|
||||||
|
@ -5022,10 +4990,8 @@
|
||||||
519E743D22C663F900A78E47 /* SceneDelegate.swift in Sources */,
|
519E743D22C663F900A78E47 /* SceneDelegate.swift in Sources */,
|
||||||
FFD43E412340F488009E5CA3 /* MarkAsReadAlertController.swift in Sources */,
|
FFD43E412340F488009E5CA3 /* MarkAsReadAlertController.swift in Sources */,
|
||||||
51C452A322650A1E00C03939 /* HTMLMetadataDownloader.swift in Sources */,
|
51C452A322650A1E00C03939 /* HTMLMetadataDownloader.swift in Sources */,
|
||||||
510289D62451DDD100426DDF /* TwitterSelectAccountTableViewController.swift in Sources */,
|
|
||||||
51C4528D2265095F00C03939 /* AddFolderViewController.swift in Sources */,
|
51C4528D2265095F00C03939 /* AddFolderViewController.swift in Sources */,
|
||||||
51DC37072402153E0095D371 /* UpdateSelectionOperation.swift in Sources */,
|
51DC37072402153E0095D371 /* UpdateSelectionOperation.swift in Sources */,
|
||||||
51BEB22D2451E8340066DEDD /* TwitterEnterDetailTableViewController.swift in Sources */,
|
|
||||||
51C452782265091600C03939 /* MasterTimelineCellData.swift in Sources */,
|
51C452782265091600C03939 /* MasterTimelineCellData.swift in Sources */,
|
||||||
5148F4552336DB7000F8CD8B /* MasterTimelineTitleView.swift in Sources */,
|
5148F4552336DB7000F8CD8B /* MasterTimelineTitleView.swift in Sources */,
|
||||||
515A517C243E90260089E588 /* ExtensionPointManager.swift in Sources */,
|
515A517C243E90260089E588 /* ExtensionPointManager.swift in Sources */,
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="16096" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="bqE-WD-JXz">
|
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="17147" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
|
||||||
<device id="retina5_9" orientation="portrait" appearance="light"/>
|
<device id="retina5_9" orientation="portrait" appearance="light"/>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16087"/>
|
<deployment identifier="iOS"/>
|
||||||
|
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17120"/>
|
||||||
<capability name="Named colors" minToolsVersion="9.0"/>
|
<capability name="Named colors" minToolsVersion="9.0"/>
|
||||||
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<scenes>
|
<scenes>
|
||||||
<!--Add Web Feed-->
|
<!--Add Web Feed-->
|
||||||
<scene sceneID="2Tc-JN-edX">
|
<scene sceneID="2Tc-JN-edX">
|
||||||
<objects>
|
<objects>
|
||||||
<tableViewController storyboardIdentifier="AddWebFeedViewController" id="7aE-6a-iP7" customClass="AddWebFeedViewController" customModule="NetNewsWire" customModuleProvider="target" sceneMemberID="viewController">
|
<tableViewController id="7aE-6a-iP7" customClass="AddWebFeedViewController" customModule="NetNewsWire" customModuleProvider="target" sceneMemberID="viewController">
|
||||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" scrollEnabled="NO" dataMode="static" style="insetGrouped" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" id="D0S-TM-mtm">
|
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" scrollEnabled="NO" dataMode="static" style="insetGrouped" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" id="D0S-TM-mtm">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
|
<rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
@ -30,19 +30,10 @@
|
||||||
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
|
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
|
||||||
<textInputTraits key="textInputTraits" keyboardType="URL"/>
|
<textInputTraits key="textInputTraits" keyboardType="URL"/>
|
||||||
</textField>
|
</textField>
|
||||||
<button opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" horizontalCompressionResistancePriority="751" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="f0N-Iy-ZFD">
|
|
||||||
<rect key="frame" x="297.66666666666669" y="10.666666666666666" width="25.333333333333314" height="22.666666666666671"/>
|
|
||||||
<state key="normal" image="hammer" catalog="system"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="showURLBuilder:" destination="7aE-6a-iP7" eventType="touchUpInside" id="wVv-BU-ND8"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
</subviews>
|
||||||
<constraints>
|
<constraints>
|
||||||
<constraint firstItem="eRp-AP-WFq" firstAttribute="top" secondItem="eNS-Rp-w0A" secondAttribute="top" constant="4" id="80p-a2-3NC"/>
|
<constraint firstItem="eRp-AP-WFq" firstAttribute="top" secondItem="eNS-Rp-w0A" secondAttribute="top" constant="4" id="80p-a2-3NC"/>
|
||||||
<constraint firstItem="f0N-Iy-ZFD" firstAttribute="centerY" secondItem="eRp-AP-WFq" secondAttribute="centerY" id="Ci9-Fe-KrJ"/>
|
|
||||||
<constraint firstAttribute="trailing" secondItem="eRp-AP-WFq" secondAttribute="trailing" id="Xue-v3-aqR"/>
|
<constraint firstAttribute="trailing" secondItem="eRp-AP-WFq" secondAttribute="trailing" id="Xue-v3-aqR"/>
|
||||||
<constraint firstAttribute="trailing" secondItem="f0N-Iy-ZFD" secondAttribute="trailing" constant="20" symbolic="YES" id="aHH-ef-7dH"/>
|
|
||||||
<constraint firstItem="eRp-AP-WFq" firstAttribute="leading" secondItem="eNS-Rp-w0A" secondAttribute="leading" constant="20" symbolic="YES" id="bHJ-7l-Pl3"/>
|
<constraint firstItem="eRp-AP-WFq" firstAttribute="leading" secondItem="eNS-Rp-w0A" secondAttribute="leading" constant="20" symbolic="YES" id="bHJ-7l-Pl3"/>
|
||||||
<constraint firstAttribute="bottom" secondItem="eRp-AP-WFq" secondAttribute="bottom" constant="4" id="fs0-iw-zTo"/>
|
<constraint firstAttribute="bottom" secondItem="eRp-AP-WFq" secondAttribute="bottom" constant="4" id="fs0-iw-zTo"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
|
@ -58,7 +49,7 @@
|
||||||
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Title (Optional)" textAlignment="natural" adjustsFontForContentSizeCategory="YES" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="u7n-VL-Ho9">
|
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Title (Optional)" textAlignment="natural" adjustsFontForContentSizeCategory="YES" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="u7n-VL-Ho9">
|
||||||
<rect key="frame" x="20" y="4" width="303" height="36"/>
|
<rect key="frame" x="20" y="4" width="303" height="36"/>
|
||||||
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
|
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
|
||||||
<textInputTraits key="textInputTraits"/>
|
<textInputTraits key="textInputTraits" autocapitalizationType="words"/>
|
||||||
</textField>
|
</textField>
|
||||||
</subviews>
|
</subviews>
|
||||||
<constraints>
|
<constraints>
|
||||||
|
@ -106,26 +97,47 @@
|
||||||
<outlet property="delegate" destination="7aE-6a-iP7" id="zYS-q2-iEf"/>
|
<outlet property="delegate" destination="7aE-6a-iP7" id="zYS-q2-iEf"/>
|
||||||
</connections>
|
</connections>
|
||||||
</tableView>
|
</tableView>
|
||||||
|
<toolbarItems/>
|
||||||
<navigationItem key="navigationItem" title="Add Web Feed" id="i1W-2z-PAk">
|
<navigationItem key="navigationItem" title="Add Web Feed" id="i1W-2z-PAk">
|
||||||
<barButtonItem key="rightBarButtonItem" id="r7V-oB-aHz">
|
<barButtonItem key="leftBarButtonItem" title="Cancel" id="QpU-Ro-nHd">
|
||||||
<view key="customView" contentMode="scaleToFill" id="4in-Eb-Rxp">
|
<connections>
|
||||||
<rect key="frame" x="339" y="12" width="20" height="20"/>
|
<action selector="cancel:" destination="7aE-6a-iP7" id="g4H-Mc-Jnh"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
</connections>
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
|
||||||
</view>
|
|
||||||
</barButtonItem>
|
</barButtonItem>
|
||||||
|
<rightBarButtonItems>
|
||||||
|
<barButtonItem enabled="NO" title="Add" id="F8z-me-Hnx">
|
||||||
|
<connections>
|
||||||
|
<action selector="add:" destination="7aE-6a-iP7" id="66n-Ea-YXO"/>
|
||||||
|
</connections>
|
||||||
|
</barButtonItem>
|
||||||
|
<barButtonItem id="qP4-8x-XbO">
|
||||||
|
<view key="customView" contentMode="scaleToFill" id="9ct-kH-nAp">
|
||||||
|
<rect key="frame" x="300.33333333333331" y="12" width="20" height="20"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<activityIndicatorView hidden="YES" opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" fixedFrame="YES" style="gray" translatesAutoresizingMaskIntoConstraints="NO" id="3ph-Td-s1Z">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="20" height="20"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
|
</activityIndicatorView>
|
||||||
|
</subviews>
|
||||||
|
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||||
|
</view>
|
||||||
|
</barButtonItem>
|
||||||
|
</rightBarButtonItems>
|
||||||
</navigationItem>
|
</navigationItem>
|
||||||
<simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
|
<simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
|
||||||
|
<simulatedToolbarMetrics key="simulatedBottomBarMetrics"/>
|
||||||
<connections>
|
<connections>
|
||||||
|
<outlet property="activityIndicator" destination="3ph-Td-s1Z" id="ouh-78-smj"/>
|
||||||
|
<outlet property="addButton" destination="F8z-me-Hnx" id="l1b-UL-238"/>
|
||||||
<outlet property="nameTextField" destination="u7n-VL-Ho9" id="YQV-Xq-f9q"/>
|
<outlet property="nameTextField" destination="u7n-VL-Ho9" id="YQV-Xq-f9q"/>
|
||||||
<outlet property="urlBuilderButton" destination="f0N-Iy-ZFD" id="HlB-Cu-Dak"/>
|
|
||||||
<outlet property="urlTextField" destination="eRp-AP-WFq" id="FG3-pH-2Fh"/>
|
<outlet property="urlTextField" destination="eRp-AP-WFq" id="FG3-pH-2Fh"/>
|
||||||
<outlet property="urlTextFieldToSuperViewConstraint" destination="Xue-v3-aqR" id="ZcO-5b-g08"/>
|
<outlet property="urlTextFieldToSuperViewConstraint" destination="Xue-v3-aqR" id="ZcO-5b-g08"/>
|
||||||
</connections>
|
</connections>
|
||||||
</tableViewController>
|
</tableViewController>
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="TO9-rb-MQ7" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
<placeholder placeholderIdentifier="IBFirstResponder" id="TO9-rb-MQ7" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||||
</objects>
|
</objects>
|
||||||
<point key="canvasLocation" x="-1711.2" y="89.408866995073893"/>
|
<point key="canvasLocation" x="-1711" y="89"/>
|
||||||
</scene>
|
</scene>
|
||||||
<!--Modal Navigation Controller-->
|
<!--Modal Navigation Controller-->
|
||||||
<scene sceneID="hbe-Yu-anW">
|
<scene sceneID="hbe-Yu-anW">
|
||||||
|
@ -141,7 +153,7 @@
|
||||||
</navigationController>
|
</navigationController>
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="ndl-Bj-xD7" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
|
<placeholder placeholderIdentifier="IBFirstResponder" id="ndl-Bj-xD7" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
|
||||||
</objects>
|
</objects>
|
||||||
<point key="canvasLocation" x="-2452" y="757"/>
|
<point key="canvasLocation" x="-1711" y="756"/>
|
||||||
</scene>
|
</scene>
|
||||||
<!--Web Feed Folder-->
|
<!--Web Feed Folder-->
|
||||||
<scene sceneID="wnD-aY-W32">
|
<scene sceneID="wnD-aY-W32">
|
||||||
|
@ -237,116 +249,28 @@
|
||||||
</tableViewController>
|
</tableViewController>
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="gE2-fq-mL5" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
|
<placeholder placeholderIdentifier="IBFirstResponder" id="gE2-fq-mL5" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
|
||||||
</objects>
|
</objects>
|
||||||
<point key="canvasLocation" x="-1686" y="757"/>
|
<point key="canvasLocation" x="-962" y="756"/>
|
||||||
</scene>
|
</scene>
|
||||||
<!--Navigation Controller-->
|
<!--Navigation Controller-->
|
||||||
<scene sceneID="9m0-Wv-Ipq">
|
<scene sceneID="1In-mk-bYI">
|
||||||
<objects>
|
<objects>
|
||||||
<navigationController storyboardIdentifier="AddContainerNavigationViewController" id="bqE-WD-JXz" sceneMemberID="viewController">
|
<navigationController storyboardIdentifier="AddWebFeedViewControllerNav" id="4Ej-aI-tUP" sceneMemberID="viewController">
|
||||||
<navigationBar key="navigationBar" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="dZt-u5-9kz">
|
<navigationBar key="navigationBar" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="Fot-QF-7Rn">
|
||||||
<rect key="frame" x="0.0" y="44" width="375" height="44"/>
|
<rect key="frame" x="0.0" y="44" width="375" height="44"/>
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
</navigationBar>
|
</navigationBar>
|
||||||
<connections>
|
<connections>
|
||||||
<segue destination="G8j-dh-7Ji" kind="relationship" relationship="rootViewController" id="rGX-Hf-QYs"/>
|
<segue destination="7aE-6a-iP7" kind="relationship" relationship="rootViewController" id="4tH-Fk-eD2"/>
|
||||||
</connections>
|
</connections>
|
||||||
</navigationController>
|
</navigationController>
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="ay4-WY-2PI" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
<placeholder placeholderIdentifier="IBFirstResponder" id="8GA-I5-K0s" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
|
||||||
</objects>
|
</objects>
|
||||||
<point key="canvasLocation" x="-3233" y="91"/>
|
<point key="canvasLocation" x="-1711" y="-611"/>
|
||||||
</scene>
|
|
||||||
<!--Add Container View Controller-->
|
|
||||||
<scene sceneID="ICN-hJ-Mn2">
|
|
||||||
<objects>
|
|
||||||
<viewController storyboardIdentifier="AddContainerViewController" id="G8j-dh-7Ji" customClass="AddContainerViewController" customModule="NetNewsWire" customModuleProvider="target" sceneMemberID="viewController">
|
|
||||||
<view key="view" contentMode="scaleToFill" id="cJo-ve-mLk">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="uZB-hh-ssC">
|
|
||||||
<rect key="frame" x="16" y="108" width="343" height="44"/>
|
|
||||||
<subviews>
|
|
||||||
<segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="1Ce-E7-rG2">
|
|
||||||
<rect key="frame" x="81.666666666666686" y="6.6666666666666714" width="180" height="32"/>
|
|
||||||
<constraints>
|
|
||||||
<constraint firstAttribute="width" constant="180" id="IEO-pf-4PB"/>
|
|
||||||
</constraints>
|
|
||||||
<segments>
|
|
||||||
<segment title="Web Feed"/>
|
|
||||||
<segment title="Folder"/>
|
|
||||||
</segments>
|
|
||||||
<connections>
|
|
||||||
<action selector="typeSelectorChanged:" destination="G8j-dh-7Ji" eventType="valueChanged" id="evz-dY-V8G"/>
|
|
||||||
</connections>
|
|
||||||
</segmentedControl>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
|
|
||||||
<constraints>
|
|
||||||
<constraint firstAttribute="height" constant="44" id="GUX-dy-aVL"/>
|
|
||||||
<constraint firstItem="1Ce-E7-rG2" firstAttribute="centerY" secondItem="uZB-hh-ssC" secondAttribute="centerY" id="Tb3-6c-IQ1"/>
|
|
||||||
<constraint firstItem="1Ce-E7-rG2" firstAttribute="centerX" secondItem="uZB-hh-ssC" secondAttribute="centerX" id="rOR-X2-CpH"/>
|
|
||||||
</constraints>
|
|
||||||
</view>
|
|
||||||
<containerView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="TUN-mZ-uLE">
|
|
||||||
<rect key="frame" x="0.0" y="172" width="375" height="640"/>
|
|
||||||
</containerView>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" systemColor="systemGroupedBackgroundColor" red="0.94901960780000005" green="0.94901960780000005" blue="0.96862745100000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<constraints>
|
|
||||||
<constraint firstItem="uZB-hh-ssC" firstAttribute="top" secondItem="pP4-52-FAl" secondAttribute="top" constant="20" id="9dr-mx-TgM"/>
|
|
||||||
<constraint firstItem="uZB-hh-ssC" firstAttribute="leading" secondItem="pP4-52-FAl" secondAttribute="leading" constant="16" id="Gnt-hX-ubZ"/>
|
|
||||||
<constraint firstAttribute="bottom" secondItem="TUN-mZ-uLE" secondAttribute="bottom" id="GrY-qn-cjm"/>
|
|
||||||
<constraint firstItem="TUN-mZ-uLE" firstAttribute="top" secondItem="uZB-hh-ssC" secondAttribute="bottom" constant="20" id="JMI-ia-iIJ"/>
|
|
||||||
<constraint firstItem="TUN-mZ-uLE" firstAttribute="trailing" secondItem="pP4-52-FAl" secondAttribute="trailing" id="SJI-cb-6hr"/>
|
|
||||||
<constraint firstItem="TUN-mZ-uLE" firstAttribute="leading" secondItem="pP4-52-FAl" secondAttribute="leading" id="ab5-qk-Xmn"/>
|
|
||||||
<constraint firstItem="pP4-52-FAl" firstAttribute="trailing" secondItem="uZB-hh-ssC" secondAttribute="trailing" constant="16" id="t9m-rQ-Ijv"/>
|
|
||||||
</constraints>
|
|
||||||
<viewLayoutGuide key="safeArea" id="pP4-52-FAl"/>
|
|
||||||
</view>
|
|
||||||
<navigationItem key="navigationItem" id="3Al-Zd-2cS">
|
|
||||||
<barButtonItem key="leftBarButtonItem" title="Cancel" id="Uz9-n0-t2M">
|
|
||||||
<connections>
|
|
||||||
<action selector="cancel:" destination="G8j-dh-7Ji" id="7m6-ad-a2V"/>
|
|
||||||
</connections>
|
|
||||||
</barButtonItem>
|
|
||||||
<rightBarButtonItems>
|
|
||||||
<barButtonItem enabled="NO" title="Add" id="tVq-rz-5pe">
|
|
||||||
<connections>
|
|
||||||
<action selector="add:" destination="G8j-dh-7Ji" id="fWb-l7-nc0"/>
|
|
||||||
</connections>
|
|
||||||
</barButtonItem>
|
|
||||||
<barButtonItem id="chA-NW-oNo">
|
|
||||||
<view key="customView" contentMode="scaleToFill" id="nG1-ZO-oLQ">
|
|
||||||
<rect key="frame" x="300" y="12" width="20" height="20"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<activityIndicatorView hidden="YES" opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" fixedFrame="YES" style="gray" translatesAutoresizingMaskIntoConstraints="NO" id="Vwh-O4-dFl">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="20" height="20"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
</activityIndicatorView>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
|
||||||
</view>
|
|
||||||
</barButtonItem>
|
|
||||||
</rightBarButtonItems>
|
|
||||||
</navigationItem>
|
|
||||||
<connections>
|
|
||||||
<outlet property="activityIndicatorView" destination="Vwh-O4-dFl" id="xJ0-0X-Yq0"/>
|
|
||||||
<outlet property="addButton" destination="tVq-rz-5pe" id="kNP-KC-naP"/>
|
|
||||||
<outlet property="cancelButton" destination="Uz9-n0-t2M" id="dZu-nz-p4J"/>
|
|
||||||
<outlet property="containerView" destination="TUN-mZ-uLE" id="8p5-N0-LRa"/>
|
|
||||||
<outlet property="typeSelectorContainer" destination="uZB-hh-ssC" id="gg2-Za-eTy"/>
|
|
||||||
<outlet property="typeSelectorSegmentedControl" destination="1Ce-E7-rG2" id="3JA-Su-PFn"/>
|
|
||||||
</connections>
|
|
||||||
</viewController>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="KrE-EC-ioA" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
|
||||||
</objects>
|
|
||||||
<point key="canvasLocation" x="-2452" y="90"/>
|
|
||||||
</scene>
|
</scene>
|
||||||
<!--Add Folder-->
|
<!--Add Folder-->
|
||||||
<scene sceneID="m7L-uI-ghq">
|
<scene sceneID="m7L-uI-ghq">
|
||||||
<objects>
|
<objects>
|
||||||
<tableViewController storyboardIdentifier="AddFolderViewController" id="3dI-34-ljo" customClass="AddFolderViewController" customModule="NetNewsWire" customModuleProvider="target" sceneMemberID="viewController">
|
<tableViewController id="3dI-34-ljo" customClass="AddFolderViewController" customModule="NetNewsWire" customModuleProvider="target" sceneMemberID="viewController">
|
||||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" scrollEnabled="NO" dataMode="static" style="insetGrouped" separatorStyle="default" allowsSelection="NO" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" id="7xa-gZ-zHA">
|
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" scrollEnabled="NO" dataMode="static" style="insetGrouped" separatorStyle="default" allowsSelection="NO" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" id="7xa-gZ-zHA">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
|
<rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
@ -363,7 +287,7 @@
|
||||||
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Name" textAlignment="natural" adjustsFontForContentSizeCategory="YES" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="lZK-wx-jbo">
|
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Name" textAlignment="natural" adjustsFontForContentSizeCategory="YES" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="lZK-wx-jbo">
|
||||||
<rect key="frame" x="20" y="4" width="303" height="36"/>
|
<rect key="frame" x="20" y="4" width="303" height="36"/>
|
||||||
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
|
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
|
||||||
<textInputTraits key="textInputTraits"/>
|
<textInputTraits key="textInputTraits" autocapitalizationType="words"/>
|
||||||
</textField>
|
</textField>
|
||||||
</subviews>
|
</subviews>
|
||||||
<constraints>
|
<constraints>
|
||||||
|
@ -435,11 +359,23 @@
|
||||||
<outlet property="delegate" destination="3dI-34-ljo" id="ZXX-gI-6ii"/>
|
<outlet property="delegate" destination="3dI-34-ljo" id="ZXX-gI-6ii"/>
|
||||||
</connections>
|
</connections>
|
||||||
</tableView>
|
</tableView>
|
||||||
<navigationItem key="navigationItem" title="Add Folder" id="LuA-AC-n99"/>
|
<navigationItem key="navigationItem" title="Add Folder" id="LuA-AC-n99">
|
||||||
|
<barButtonItem key="leftBarButtonItem" systemItem="cancel" id="OPb-pt-GzR">
|
||||||
|
<connections>
|
||||||
|
<action selector="cancel:" destination="3dI-34-ljo" id="LLG-Xw-5nu"/>
|
||||||
|
</connections>
|
||||||
|
</barButtonItem>
|
||||||
|
<barButtonItem key="rightBarButtonItem" enabled="NO" title="Add" id="gXG-Xt-d9B">
|
||||||
|
<connections>
|
||||||
|
<action selector="add:" destination="3dI-34-ljo" id="d1a-W6-8ST"/>
|
||||||
|
</connections>
|
||||||
|
</barButtonItem>
|
||||||
|
</navigationItem>
|
||||||
<simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
|
<simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
|
||||||
<connections>
|
<connections>
|
||||||
<outlet property="accountLabel" destination="mxj-Bw-Jfx" id="l4A-ta-dUi"/>
|
<outlet property="accountLabel" destination="mxj-Bw-Jfx" id="l4A-ta-dUi"/>
|
||||||
<outlet property="accountPickerView" destination="eGY-V8-gzJ" id="zGk-k4-Jnd"/>
|
<outlet property="accountPickerView" destination="eGY-V8-gzJ" id="zGk-k4-Jnd"/>
|
||||||
|
<outlet property="addButton" destination="gXG-Xt-d9B" id="BW0-Q7-stj"/>
|
||||||
<outlet property="nameTextField" destination="lZK-wx-jbo" id="Xvq-LH-kwC"/>
|
<outlet property="nameTextField" destination="lZK-wx-jbo" id="Xvq-LH-kwC"/>
|
||||||
</connections>
|
</connections>
|
||||||
</tableViewController>
|
</tableViewController>
|
||||||
|
@ -447,90 +383,24 @@
|
||||||
</objects>
|
</objects>
|
||||||
<point key="canvasLocation" x="-961" y="89"/>
|
<point key="canvasLocation" x="-961" y="89"/>
|
||||||
</scene>
|
</scene>
|
||||||
<!--Modal Navigation Controller-->
|
<!--Navigation Controller-->
|
||||||
<scene sceneID="cdQ-dD-r6b">
|
<scene sceneID="Hm3-Dz-Cpu">
|
||||||
<objects>
|
<objects>
|
||||||
<navigationController storyboardIdentifier="SelectURLBuilderNavViewController" id="iBn-vt-JuI" customClass="ModalNavigationController" customModule="NetNewsWire" customModuleProvider="target" sceneMemberID="viewController">
|
<navigationController storyboardIdentifier="AddFolderViewControllerNav" id="edk-IE-nce" sceneMemberID="viewController">
|
||||||
<navigationBar key="navigationBar" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="5ft-mx-bH1">
|
<navigationBar key="navigationBar" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="Pi1-Bc-YXQ">
|
||||||
<rect key="frame" x="0.0" y="44" width="375" height="44"/>
|
<rect key="frame" x="0.0" y="44" width="375" height="44"/>
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
</navigationBar>
|
</navigationBar>
|
||||||
<connections>
|
<connections>
|
||||||
<segue destination="Wls-o6-7V8" kind="relationship" relationship="rootViewController" id="jlb-J3-50h"/>
|
<segue destination="3dI-34-ljo" kind="relationship" relationship="rootViewController" id="nk7-pM-zHX"/>
|
||||||
</connections>
|
</connections>
|
||||||
</navigationController>
|
</navigationController>
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="tmd-jJ-oxP" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
|
<placeholder placeholderIdentifier="IBFirstResponder" id="ivk-RR-1yS" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
|
||||||
</objects>
|
</objects>
|
||||||
<point key="canvasLocation" x="-2452" y="1416"/>
|
<point key="canvasLocation" x="-962" y="-618"/>
|
||||||
</scene>
|
|
||||||
<!--Select URL Builder-->
|
|
||||||
<scene sceneID="uAc-pe-d1U">
|
|
||||||
<objects>
|
|
||||||
<tableViewController storyboardIdentifier="SelectURLBuilderViewController" title="Select URL Builder" id="Wls-o6-7V8" customClass="SelectURLBuilderTableViewController" customModule="NetNewsWire" customModuleProvider="target" sceneMemberID="viewController">
|
|
||||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="insetGrouped" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" id="SBu-NT-kQA">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
|
|
||||||
<prototypes>
|
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" reuseIdentifier="URLBuilderCell" rowHeight="55" id="7Qf-cp-hyD" customClass="SelectComboTableViewCell" customModule="NetNewsWire" customModuleProvider="target">
|
|
||||||
<rect key="frame" x="16" y="55.333332061767578" width="343" height="55"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="7Qf-cp-hyD" id="Rsw-xP-7HT">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="317" height="55"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<stackView opaque="NO" contentMode="scaleToFill" spacing="16" translatesAutoresizingMaskIntoConstraints="NO" id="Jka-S1-56k">
|
|
||||||
<rect key="frame" x="20" y="15.666666666666664" width="130" height="24"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="hammer" catalog="system" translatesAutoresizingMaskIntoConstraints="NO" id="lQk-5J-fON">
|
|
||||||
<rect key="frame" x="0.0" y="-0.66666666666666785" width="24" height="26.333333333333336"/>
|
|
||||||
<color key="tintColor" systemColor="labelColor" cocoaTouchSystemColor="darkTextColor"/>
|
|
||||||
<constraints>
|
|
||||||
<constraint firstAttribute="width" constant="24" id="u9L-D0-kgu"/>
|
|
||||||
<constraint firstAttribute="height" constant="24" id="wDw-bL-u3p"/>
|
|
||||||
</constraints>
|
|
||||||
</imageView>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="URL Builder" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontForContentSizeCategory="YES" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ys7-kv-kLW">
|
|
||||||
<rect key="frame" x="40" y="0.0" width="90" height="24"/>
|
|
||||||
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
|
|
||||||
<nil key="textColor"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</stackView>
|
|
||||||
</subviews>
|
|
||||||
<constraints>
|
|
||||||
<constraint firstItem="Jka-S1-56k" firstAttribute="leading" secondItem="Rsw-xP-7HT" secondAttribute="leading" constant="20" symbolic="YES" id="2Sh-PL-a9u"/>
|
|
||||||
<constraint firstItem="Jka-S1-56k" firstAttribute="centerY" secondItem="Rsw-xP-7HT" secondAttribute="centerY" id="k1d-3l-LGF"/>
|
|
||||||
</constraints>
|
|
||||||
</tableViewCellContentView>
|
|
||||||
<inset key="separatorInset" minX="45" minY="0.0" maxX="0.0" maxY="0.0"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="icon" destination="lQk-5J-fON" id="uCm-OV-S80"/>
|
|
||||||
<outlet property="label" destination="Ys7-kv-kLW" id="v99-KU-U8q"/>
|
|
||||||
</connections>
|
|
||||||
</tableViewCell>
|
|
||||||
</prototypes>
|
|
||||||
<connections>
|
|
||||||
<outlet property="dataSource" destination="Wls-o6-7V8" id="3V5-PC-jlM"/>
|
|
||||||
<outlet property="delegate" destination="Wls-o6-7V8" id="kWB-zE-rh5"/>
|
|
||||||
</connections>
|
|
||||||
</tableView>
|
|
||||||
<navigationItem key="navigationItem" title="Select URL Builder" id="02z-m5-leN">
|
|
||||||
<barButtonItem key="leftBarButtonItem" systemItem="cancel" id="xeT-hn-DyW">
|
|
||||||
<connections>
|
|
||||||
<action selector="cancel:" destination="Wls-o6-7V8" id="9rX-tp-GwL"/>
|
|
||||||
</connections>
|
|
||||||
</barButtonItem>
|
|
||||||
</navigationItem>
|
|
||||||
</tableViewController>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="qFt-gM-HqV" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
|
|
||||||
</objects>
|
|
||||||
<point key="canvasLocation" x="-1687" y="1416"/>
|
|
||||||
</scene>
|
</scene>
|
||||||
</scenes>
|
</scenes>
|
||||||
<resources>
|
<resources>
|
||||||
<image name="hammer" catalog="system" width="128" height="115"/>
|
|
||||||
<namedColor name="secondaryAccentColor">
|
<namedColor name="secondaryAccentColor">
|
||||||
<color red="0.031372549019607843" green="0.41568627450980394" blue="0.93333333333333335" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
<color red="0.031372549019607843" green="0.41568627450980394" blue="0.93333333333333335" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||||
</namedColor>
|
</namedColor>
|
||||||
|
|
|
@ -1,170 +0,0 @@
|
||||||
//
|
|
||||||
// AddContainerViewController.swift
|
|
||||||
// NetNewsWire
|
|
||||||
//
|
|
||||||
// Created by Maurice Parker on 4/16/19.
|
|
||||||
// Copyright © 2019 Ranchero Software, LLC. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
import UIKit
|
|
||||||
|
|
||||||
protocol AddContainerViewControllerChild: UIViewController {
|
|
||||||
var delegate: AddContainerViewControllerChildDelegate? {get set}
|
|
||||||
func cancel()
|
|
||||||
func add()
|
|
||||||
}
|
|
||||||
|
|
||||||
protocol AddContainerViewControllerChildDelegate: UIViewController {
|
|
||||||
func readyToAdd(state: Bool)
|
|
||||||
func processingDidBegin()
|
|
||||||
func processingDidCancel()
|
|
||||||
func processingDidEnd()
|
|
||||||
}
|
|
||||||
|
|
||||||
class AddContainerViewController: UIViewController {
|
|
||||||
|
|
||||||
static let preferredContentSizeForFormSheetDisplay = CGSize(width: 460.0, height: 400.0)
|
|
||||||
|
|
||||||
@IBOutlet weak var cancelButton: UIBarButtonItem!
|
|
||||||
@IBOutlet weak var activityIndicatorView: UIActivityIndicatorView!
|
|
||||||
@IBOutlet weak var addButton: UIBarButtonItem!
|
|
||||||
@IBOutlet weak var typeSelectorContainer: UIView!
|
|
||||||
@IBOutlet weak var typeSelectorSegmentedControl: UISegmentedControl!
|
|
||||||
@IBOutlet weak var containerView: UIView!
|
|
||||||
|
|
||||||
private var currentViewController: AddContainerViewControllerChild?
|
|
||||||
|
|
||||||
var initialControllerType: AddControllerType?
|
|
||||||
var initialFeed: String?
|
|
||||||
var initialFeedName: String?
|
|
||||||
|
|
||||||
override func viewDidLoad() {
|
|
||||||
|
|
||||||
super.viewDidLoad()
|
|
||||||
activityIndicatorView.color = UIColor.label
|
|
||||||
activityIndicatorView.isHidden = true
|
|
||||||
|
|
||||||
typeSelectorContainer.layer.cornerRadius = 10
|
|
||||||
typeSelectorSegmentedControl.selectedSegmentIndex = initialControllerType?.rawValue ?? 0
|
|
||||||
switch initialControllerType {
|
|
||||||
case .feed:
|
|
||||||
switchToFeed()
|
|
||||||
case .folder:
|
|
||||||
switchToFolder()
|
|
||||||
default:
|
|
||||||
assertionFailure()
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@IBAction func typeSelectorChanged(_ sender: UISegmentedControl) {
|
|
||||||
switch sender.selectedSegmentIndex {
|
|
||||||
case 0:
|
|
||||||
switchToFeed()
|
|
||||||
default:
|
|
||||||
switchToFolder()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@IBAction func cancel(_ sender: Any) {
|
|
||||||
currentViewController?.cancel()
|
|
||||||
dismiss(animated: true)
|
|
||||||
}
|
|
||||||
|
|
||||||
@IBAction func add(_ sender: Any) {
|
|
||||||
currentViewController?.add()
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
extension AddContainerViewController: AddContainerViewControllerChildDelegate {
|
|
||||||
|
|
||||||
func readyToAdd(state: Bool) {
|
|
||||||
addButton.isEnabled = state
|
|
||||||
}
|
|
||||||
|
|
||||||
func processingDidBegin() {
|
|
||||||
addButton.isEnabled = false
|
|
||||||
typeSelectorSegmentedControl.isEnabled = false
|
|
||||||
activityIndicatorView.isHidden = false
|
|
||||||
activityIndicatorView.startAnimating()
|
|
||||||
}
|
|
||||||
|
|
||||||
func processingDidCancel() {
|
|
||||||
addButton.isEnabled = true
|
|
||||||
typeSelectorSegmentedControl.isEnabled = true
|
|
||||||
activityIndicatorView.isHidden = true
|
|
||||||
activityIndicatorView.stopAnimating()
|
|
||||||
}
|
|
||||||
|
|
||||||
func processingDidEnd() {
|
|
||||||
dismiss(animated: true)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private extension AddContainerViewController {
|
|
||||||
|
|
||||||
func switchToFeed() {
|
|
||||||
|
|
||||||
guard !(currentViewController is AddWebFeedViewController) else {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
navigationItem.title = NSLocalizedString("Add Web Feed", comment: "Add Web Feed")
|
|
||||||
resetUI()
|
|
||||||
|
|
||||||
let addFeedController = UIStoryboard.add.instantiateController(ofType: AddWebFeedViewController.self)
|
|
||||||
addFeedController.initialFeed = initialFeed
|
|
||||||
addFeedController.initialFeedName = initialFeedName
|
|
||||||
|
|
||||||
displayContentController(addFeedController)
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
func switchToFolder() {
|
|
||||||
|
|
||||||
guard !(currentViewController is AddFolderViewController) else {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
navigationItem.title = NSLocalizedString("Add Folder", comment: "Add Folder")
|
|
||||||
resetUI()
|
|
||||||
displayContentController(UIStoryboard.add.instantiateController(ofType: AddFolderViewController.self))
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
func resetUI() {
|
|
||||||
addButton.isEnabled = false
|
|
||||||
}
|
|
||||||
|
|
||||||
func displayContentController(_ controller: AddContainerViewControllerChild) {
|
|
||||||
controller.delegate = self
|
|
||||||
|
|
||||||
if let currentViewController = currentViewController {
|
|
||||||
|
|
||||||
let transition = CATransition()
|
|
||||||
transition.type = .push
|
|
||||||
transition.subtype = currentViewController is AddWebFeedViewController ? .fromRight : .fromLeft
|
|
||||||
containerView.layer.add(transition, forKey: "transition")
|
|
||||||
|
|
||||||
containerView.addChildAndPin(controller.view)
|
|
||||||
addChild(controller)
|
|
||||||
controller.didMove(toParent: self)
|
|
||||||
|
|
||||||
currentViewController.willMove(toParent: nil)
|
|
||||||
currentViewController.view.removeFromSuperview()
|
|
||||||
currentViewController.removeFromParent()
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
containerView.addChildAndPin(controller.view)
|
|
||||||
addChild(controller)
|
|
||||||
controller.didMove(toParent: self)
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
currentViewController = controller
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
//
|
|
||||||
// AddControllerType.swift
|
|
||||||
// NetNewsWire-iOS
|
|
||||||
//
|
|
||||||
// Created by Maurice Parker on 9/5/19.
|
|
||||||
// Copyright © 2019 Ranchero Software. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
import Foundation
|
|
||||||
|
|
||||||
enum AddControllerType: Int {
|
|
||||||
case feed = 0
|
|
||||||
case folder = 1
|
|
||||||
}
|
|
|
@ -10,12 +10,15 @@ import UIKit
|
||||||
import Account
|
import Account
|
||||||
import RSCore
|
import RSCore
|
||||||
|
|
||||||
class AddFolderViewController: UITableViewController, AddContainerViewControllerChild {
|
class AddFolderViewController: UITableViewController {
|
||||||
|
|
||||||
|
@IBOutlet private weak var addButton: UIBarButtonItem!
|
||||||
@IBOutlet private weak var nameTextField: UITextField!
|
@IBOutlet private weak var nameTextField: UITextField!
|
||||||
@IBOutlet private weak var accountLabel: UILabel!
|
@IBOutlet private weak var accountLabel: UILabel!
|
||||||
@IBOutlet private weak var accountPickerView: UIPickerView!
|
@IBOutlet private weak var accountPickerView: UIPickerView!
|
||||||
|
|
||||||
|
static let preferredContentSizeForFormSheetDisplay = CGSize(width: 460.0, height: 400.0)
|
||||||
|
|
||||||
private var shouldDisplayPicker: Bool {
|
private var shouldDisplayPicker: Bool {
|
||||||
return accounts.count > 1
|
return accounts.count > 1
|
||||||
}
|
}
|
||||||
|
@ -37,10 +40,7 @@ class AddFolderViewController: UITableViewController, AddContainerViewController
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
weak var delegate: AddContainerViewControllerChildDelegate?
|
|
||||||
|
|
||||||
override func viewDidLoad() {
|
override func viewDidLoad() {
|
||||||
|
|
||||||
super.viewDidLoad()
|
super.viewDidLoad()
|
||||||
|
|
||||||
accounts = AccountManager.shared
|
accounts = AccountManager.shared
|
||||||
|
@ -61,11 +61,9 @@ class AddFolderViewController: UITableViewController, AddContainerViewController
|
||||||
accountPickerView.isHidden = true
|
accountPickerView.isHidden = true
|
||||||
}
|
}
|
||||||
|
|
||||||
// I couldn't figure out the gap at the top of the UITableView, so I took a hammer to it.
|
|
||||||
tableView.contentInset = UIEdgeInsets(top: -28, left: 0, bottom: 0, right: 0)
|
|
||||||
|
|
||||||
NotificationCenter.default.addObserver(self, selector: #selector(textDidChange(_:)), name: UITextField.textDidChangeNotification, object: nameTextField)
|
NotificationCenter.default.addObserver(self, selector: #selector(textDidChange(_:)), name: UITextField.textDidChangeNotification, object: nameTextField)
|
||||||
|
|
||||||
|
nameTextField.becomeFirstResponder()
|
||||||
}
|
}
|
||||||
|
|
||||||
private func didSelect(_ account: Account) {
|
private func didSelect(_ account: Account) {
|
||||||
|
@ -73,26 +71,27 @@ class AddFolderViewController: UITableViewController, AddContainerViewController
|
||||||
selectedAccount = account
|
selectedAccount = account
|
||||||
}
|
}
|
||||||
|
|
||||||
func cancel() {
|
@IBAction func cancel(_ sender: Any) {
|
||||||
delegate?.processingDidEnd()
|
dismiss(animated: true)
|
||||||
}
|
}
|
||||||
|
|
||||||
func add() {
|
@IBAction func add(_ sender: Any) {
|
||||||
guard let folderName = nameTextField.text else {
|
guard let folderName = nameTextField.text else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
selectedAccount.addFolder(folderName) { result in
|
selectedAccount.addFolder(folderName) { result in
|
||||||
switch result {
|
switch result {
|
||||||
case .success:
|
case .success:
|
||||||
self.delegate?.processingDidEnd()
|
self.dismiss(animated: true)
|
||||||
case .failure(let error):
|
case .failure(let error):
|
||||||
self.presentError(error)
|
self.presentError(error)
|
||||||
|
self.dismiss(animated: true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc func textDidChange(_ note: Notification) {
|
@objc func textDidChange(_ note: Notification) {
|
||||||
delegate?.readyToAdd(state: !(nameTextField.text?.isEmpty ?? false))
|
addButton.isEnabled = !(nameTextField.text?.isEmpty ?? false)
|
||||||
}
|
}
|
||||||
|
|
||||||
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
||||||
|
|
|
@ -12,26 +12,30 @@ import RSCore
|
||||||
import RSTree
|
import RSTree
|
||||||
import RSParser
|
import RSParser
|
||||||
|
|
||||||
class AddWebFeedViewController: UITableViewController, AddContainerViewControllerChild {
|
class AddWebFeedViewController: UITableViewController {
|
||||||
|
|
||||||
@IBOutlet private weak var urlTextField: UITextField!
|
@IBOutlet weak var activityIndicator: UIActivityIndicatorView!
|
||||||
|
@IBOutlet weak var addButton: UIBarButtonItem!
|
||||||
|
@IBOutlet weak var urlTextField: UITextField!
|
||||||
@IBOutlet weak var urlTextFieldToSuperViewConstraint: NSLayoutConstraint!
|
@IBOutlet weak var urlTextFieldToSuperViewConstraint: NSLayoutConstraint!
|
||||||
@IBOutlet weak var urlBuilderButton: UIButton!
|
@IBOutlet weak var nameTextField: UITextField!
|
||||||
@IBOutlet private weak var nameTextField: UITextField!
|
|
||||||
|
static let preferredContentSizeForFormSheetDisplay = CGSize(width: 460.0, height: 400.0)
|
||||||
|
|
||||||
private var folderLabel = ""
|
private var folderLabel = ""
|
||||||
private var userCancelled = false
|
private var userCancelled = false
|
||||||
|
|
||||||
weak var delegate: AddContainerViewControllerChildDelegate?
|
|
||||||
var initialFeed: String?
|
var initialFeed: String?
|
||||||
var initialFeedName: String?
|
var initialFeedName: String?
|
||||||
|
|
||||||
var container: Container?
|
var container: Container?
|
||||||
|
|
||||||
override func viewDidLoad() {
|
override func viewDidLoad() {
|
||||||
|
|
||||||
super.viewDidLoad()
|
super.viewDidLoad()
|
||||||
|
|
||||||
|
activityIndicator.isHidden = true
|
||||||
|
activityIndicator.color = .label
|
||||||
|
|
||||||
if initialFeed == nil, let urlString = UIPasteboard.general.string {
|
if initialFeed == nil, let urlString = UIPasteboard.general.string {
|
||||||
if urlString.mayBeURL {
|
if urlString.mayBeURL {
|
||||||
initialFeed = urlString.normalizedURL
|
initialFeed = urlString.normalizedURL
|
||||||
|
@ -43,15 +47,8 @@ class AddWebFeedViewController: UITableViewController, AddContainerViewControlle
|
||||||
urlTextField.text = initialFeed
|
urlTextField.text = initialFeed
|
||||||
urlTextField.delegate = self
|
urlTextField.delegate = self
|
||||||
|
|
||||||
if ExtensionPointManager.shared.isTwitterEnabled {
|
|
||||||
urlTextFieldToSuperViewConstraint.isActive = false
|
|
||||||
urlTextField.trailingAnchor.constraint(equalTo: urlBuilderButton.leadingAnchor, constant: -8).isActive = true
|
|
||||||
} else {
|
|
||||||
urlBuilderButton.isHidden = true
|
|
||||||
}
|
|
||||||
|
|
||||||
if initialFeed != nil {
|
if initialFeed != nil {
|
||||||
delegate?.readyToAdd(state: true)
|
addButton.isEnabled = true
|
||||||
}
|
}
|
||||||
|
|
||||||
nameTextField.text = initialFeedName
|
nameTextField.text = initialFeedName
|
||||||
|
@ -60,40 +57,31 @@ class AddWebFeedViewController: UITableViewController, AddContainerViewControlle
|
||||||
if let defaultContainer = AddWebFeedDefaultContainer.defaultContainer {
|
if let defaultContainer = AddWebFeedDefaultContainer.defaultContainer {
|
||||||
container = defaultContainer
|
container = defaultContainer
|
||||||
} else {
|
} else {
|
||||||
delegate?.readyToAdd(state: false)
|
addButton.isEnabled = false
|
||||||
}
|
}
|
||||||
|
|
||||||
updateFolderLabel()
|
updateFolderLabel()
|
||||||
|
|
||||||
// I couldn't figure out the gap at the top of the UITableView, so I took a hammer to it.
|
|
||||||
tableView.contentInset = UIEdgeInsets(top: -28, left: 0, bottom: 0, right: 0)
|
|
||||||
|
|
||||||
tableView.register(UINib(nibName: "AddWebFeedSelectFolderTableViewCell", bundle: nil), forCellReuseIdentifier: "AddWebFeedSelectFolderTableViewCell")
|
tableView.register(UINib(nibName: "AddWebFeedSelectFolderTableViewCell", bundle: nil), forCellReuseIdentifier: "AddWebFeedSelectFolderTableViewCell")
|
||||||
|
|
||||||
NotificationCenter.default.addObserver(self, selector: #selector(textDidChange(_:)), name: UITextField.textDidChangeNotification, object: urlTextField)
|
NotificationCenter.default.addObserver(self, selector: #selector(textDidChange(_:)), name: UITextField.textDidChangeNotification, object: urlTextField)
|
||||||
|
|
||||||
|
if initialFeed == nil {
|
||||||
|
urlTextField.becomeFirstResponder()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@IBAction func showURLBuilder(_ sender: Any) {
|
@IBAction func cancel(_ sender: Any) {
|
||||||
let navController = UIStoryboard.add.instantiateViewController(withIdentifier: "SelectURLBuilderNavViewController") as! UINavigationController
|
|
||||||
navController.modalPresentationStyle = .currentContext
|
|
||||||
let selectURLBuilder = navController.topViewController as! SelectURLBuilderTableViewController
|
|
||||||
selectURLBuilder.delegate = self
|
|
||||||
present(navController, animated: true)
|
|
||||||
}
|
|
||||||
|
|
||||||
func cancel() {
|
|
||||||
userCancelled = true
|
userCancelled = true
|
||||||
delegate?.processingDidCancel()
|
dismiss(animated: true)
|
||||||
}
|
}
|
||||||
|
|
||||||
func add() {
|
@IBAction func add(_ sender: Any) {
|
||||||
|
|
||||||
let urlString = urlTextField.text ?? ""
|
let urlString = urlTextField.text ?? ""
|
||||||
let normalizedURLString = urlString.normalizedURL
|
let normalizedURLString = urlString.normalizedURL
|
||||||
|
|
||||||
guard !normalizedURLString.isEmpty, let url = URL(unicodeString: normalizedURLString) else {
|
guard !normalizedURLString.isEmpty, let url = URL(unicodeString: normalizedURLString) else {
|
||||||
delegate?.processingDidCancel()
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -111,7 +99,9 @@ class AddWebFeedViewController: UITableViewController, AddContainerViewControlle
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
delegate?.processingDidBegin()
|
addButton.isEnabled = false
|
||||||
|
activityIndicator.isHidden = false
|
||||||
|
activityIndicator.startAnimating()
|
||||||
|
|
||||||
let feedName = (nameTextField.text?.isEmpty ?? true) ? nil : nameTextField.text
|
let feedName = (nameTextField.text?.isEmpty ?? true) ? nil : nameTextField.text
|
||||||
|
|
||||||
|
@ -123,11 +113,13 @@ class AddWebFeedViewController: UITableViewController, AddContainerViewControlle
|
||||||
|
|
||||||
switch result {
|
switch result {
|
||||||
case .success(let feed):
|
case .success(let feed):
|
||||||
self.delegate?.processingDidEnd()
|
self.dismiss(animated: true)
|
||||||
NotificationCenter.default.post(name: .UserDidAddFeed, object: self, userInfo: [UserInfoKey.webFeed: feed])
|
NotificationCenter.default.post(name: .UserDidAddFeed, object: self, userInfo: [UserInfoKey.webFeed: feed])
|
||||||
case .failure(let error):
|
case .failure(let error):
|
||||||
|
self.addButton.isEnabled = true
|
||||||
|
self.activityIndicator.isHidden = true
|
||||||
|
self.activityIndicator.stopAnimating()
|
||||||
self.presentError(error)
|
self.presentError(error)
|
||||||
self.delegate?.processingDidCancel()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -171,17 +163,6 @@ extension AddWebFeedViewController: AddWebFeedFolderViewControllerDelegate {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: AddWebFeedFolderViewControllerDelegate
|
|
||||||
|
|
||||||
extension AddWebFeedViewController: SelectURLBuilderDelegate {
|
|
||||||
|
|
||||||
func selectURLBuilderDidBuildURL(_ url: URL) {
|
|
||||||
urlTextField.text = url.absoluteString
|
|
||||||
updateUI()
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// MARK: UITextFieldDelegate
|
// MARK: UITextFieldDelegate
|
||||||
|
|
||||||
extension AddWebFeedViewController: UITextFieldDelegate {
|
extension AddWebFeedViewController: UITextFieldDelegate {
|
||||||
|
@ -198,7 +179,7 @@ extension AddWebFeedViewController: UITextFieldDelegate {
|
||||||
private extension AddWebFeedViewController {
|
private extension AddWebFeedViewController {
|
||||||
|
|
||||||
func updateUI() {
|
func updateUI() {
|
||||||
delegate?.readyToAdd(state: urlTextField.text?.mayBeURL ?? false)
|
addButton.isEnabled = (urlTextField.text?.mayBeURL ?? false)
|
||||||
}
|
}
|
||||||
|
|
||||||
func updateFolderLabel() {
|
func updateFolderLabel() {
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
//
|
|
||||||
// SelectURLBuilder.swift
|
|
||||||
// NetNewsWire-iOS
|
|
||||||
//
|
|
||||||
// Created by Maurice Parker on 4/23/20.
|
|
||||||
// Copyright © 2020 Ranchero Software. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
import UIKit
|
|
||||||
|
|
||||||
protocol SelectURLBuilderDelegate: class {
|
|
||||||
func selectURLBuilderDidBuildURL(_ url: URL)
|
|
||||||
}
|
|
||||||
|
|
||||||
protocol SelectURLBuilder {
|
|
||||||
var delegate: SelectURLBuilderDelegate? { get set }
|
|
||||||
}
|
|
|
@ -1,65 +0,0 @@
|
||||||
//
|
|
||||||
// SelectURLBuilderTableViewController.swift
|
|
||||||
// NetNewsWire-iOS
|
|
||||||
//
|
|
||||||
// Created by Maurice Parker on 4/23/20.
|
|
||||||
// Copyright © 2020 Ranchero Software. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
import UIKit
|
|
||||||
|
|
||||||
class SelectURLBuilderTableViewController: UITableViewController, SelectURLBuilder {
|
|
||||||
|
|
||||||
weak var delegate: SelectURLBuilderDelegate?
|
|
||||||
|
|
||||||
override func viewDidLoad() {
|
|
||||||
super.viewDidLoad()
|
|
||||||
}
|
|
||||||
|
|
||||||
// MARK: - Table view data source
|
|
||||||
|
|
||||||
override func numberOfSections(in tableView: UITableView) -> Int {
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
|
||||||
return 2
|
|
||||||
}
|
|
||||||
|
|
||||||
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
|
||||||
let cell = tableView.dequeueReusableCell(withIdentifier: "URLBuilderCell", for: indexPath) as! SelectComboTableViewCell
|
|
||||||
switch indexPath.row {
|
|
||||||
case 0:
|
|
||||||
cell.icon?.image = AppAssets.extensionPointReddit
|
|
||||||
cell.label?.text = NSLocalizedString("Reddit", comment: "Reddit")
|
|
||||||
case 1:
|
|
||||||
cell.icon?.image = AppAssets.extensionPointTwitter
|
|
||||||
cell.label?.text = NSLocalizedString("Twitter", comment: "Twitter")
|
|
||||||
default:
|
|
||||||
break
|
|
||||||
}
|
|
||||||
return cell
|
|
||||||
}
|
|
||||||
|
|
||||||
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
|
|
||||||
switch indexPath.row {
|
|
||||||
case 0:
|
|
||||||
let redditURLBuilder = UIStoryboard.redditAdd.instantiateInitialViewController() as! RedditSelectTypeTableViewController
|
|
||||||
redditURLBuilder.delegate = delegate
|
|
||||||
navigationController?.pushViewController(redditURLBuilder, animated: true)
|
|
||||||
case 1:
|
|
||||||
let twitterURLBuilder = UIStoryboard.twitterAdd.instantiateInitialViewController() as! TwitterSelectTypeTableViewController
|
|
||||||
twitterURLBuilder.delegate = delegate
|
|
||||||
navigationController?.pushViewController(twitterURLBuilder, animated: true)
|
|
||||||
default:
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// MARK: Actions
|
|
||||||
|
|
||||||
@IBAction func cancel(_ sender: Any) {
|
|
||||||
dismiss(animated: true)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -394,7 +394,29 @@ class MasterFeedViewController: UITableViewController, UndoableCommandRunner {
|
||||||
}
|
}
|
||||||
|
|
||||||
@IBAction func add(_ sender: UIBarButtonItem) {
|
@IBAction func add(_ sender: UIBarButtonItem) {
|
||||||
coordinator.showAdd(.feed)
|
let title = NSLocalizedString("Add Item", comment: "Add Item")
|
||||||
|
let alertController = UIAlertController(title: title, message: nil, preferredStyle: .actionSheet)
|
||||||
|
|
||||||
|
let cancelTitle = NSLocalizedString("Cancel", comment: "Cancel")
|
||||||
|
let cancelAction = UIAlertAction(title: cancelTitle, style: .cancel)
|
||||||
|
|
||||||
|
let addWebFeedActionTitle = NSLocalizedString("Add Web Feed", comment: "Add Web Feed")
|
||||||
|
let addWebFeedAction = UIAlertAction(title: addWebFeedActionTitle, style: .default) { _ in
|
||||||
|
self.coordinator.showAddFeed()
|
||||||
|
}
|
||||||
|
|
||||||
|
let addWebFolderdActionTitle = NSLocalizedString("Add Folder", comment: "Add Folder")
|
||||||
|
let addWebFolderAction = UIAlertAction(title: addWebFolderdActionTitle, style: .default) { _ in
|
||||||
|
self.coordinator.showAddFolder()
|
||||||
|
}
|
||||||
|
|
||||||
|
alertController.addAction(addWebFeedAction)
|
||||||
|
alertController.addAction(addWebFolderAction)
|
||||||
|
alertController.addAction(cancelAction)
|
||||||
|
|
||||||
|
alertController.popoverPresentationController?.barButtonItem = sender
|
||||||
|
|
||||||
|
present(alertController, animated: true)
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc func toggleSectionHeader(_ sender: UITapGestureRecognizer) {
|
@objc func toggleSectionHeader(_ sender: UITapGestureRecognizer) {
|
||||||
|
|
|
@ -95,11 +95,11 @@ class RootSplitViewController: UISplitViewController {
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc func addNewFeed(_ sender: Any?) {
|
@objc func addNewFeed(_ sender: Any?) {
|
||||||
coordinator.showAdd(.feed)
|
coordinator.showAddFeed()
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc func addNewFolder(_ sender: Any?) {
|
@objc func addNewFolder(_ sender: Any?) {
|
||||||
coordinator.showAdd(.folder)
|
coordinator.showAddFolder()
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc func cleanUp(_ sender: Any?) {
|
@objc func cleanUp(_ sender: Any?) {
|
||||||
|
|
|
@ -384,7 +384,7 @@ class SceneCoordinator: NSObject, UndoableCommandRunner, UnreadCountProvider {
|
||||||
case .readArticle:
|
case .readArticle:
|
||||||
self.handleReadArticle(activity.userInfo)
|
self.handleReadArticle(activity.userInfo)
|
||||||
case .addFeedIntent:
|
case .addFeedIntent:
|
||||||
self.showAdd(.feed)
|
self.showAddFeed()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1167,19 +1167,27 @@ class SceneCoordinator: NSObject, UndoableCommandRunner, UnreadCountProvider {
|
||||||
rootSplitViewController.present(feedInspectorNavController, animated: true)
|
rootSplitViewController.present(feedInspectorNavController, animated: true)
|
||||||
}
|
}
|
||||||
|
|
||||||
func showAdd(_ type: AddControllerType, initialFeed: String? = nil, initialFeedName: String? = nil) {
|
func showAddFeed(initialFeed: String? = nil, initialFeedName: String? = nil) {
|
||||||
|
|
||||||
|
// Since Add Feed can be opened from anywhere with a keyboard shortcut, we have to deselect any currently selected feeds
|
||||||
selectFeed(nil)
|
selectFeed(nil)
|
||||||
|
|
||||||
let addViewController = UIStoryboard.add.instantiateInitialViewController() as! UINavigationController
|
let addNavViewController = UIStoryboard.add.instantiateViewController(withIdentifier: "AddWebFeedViewControllerNav") as! UINavigationController
|
||||||
|
|
||||||
let containerController = addViewController.topViewController as! AddContainerViewController
|
let addViewController = addNavViewController.topViewController as! AddWebFeedViewController
|
||||||
containerController.initialControllerType = type
|
addViewController.initialFeed = initialFeed
|
||||||
containerController.initialFeed = initialFeed
|
addViewController.initialFeedName = initialFeedName
|
||||||
containerController.initialFeedName = initialFeedName
|
|
||||||
|
|
||||||
addViewController.modalPresentationStyle = .formSheet
|
addNavViewController.modalPresentationStyle = .formSheet
|
||||||
addViewController.preferredContentSize = AddContainerViewController.preferredContentSizeForFormSheetDisplay
|
addNavViewController.preferredContentSize = AddWebFeedViewController.preferredContentSizeForFormSheetDisplay
|
||||||
masterFeedViewController.present(addViewController, animated: true)
|
masterFeedViewController.present(addNavViewController, animated: true)
|
||||||
|
}
|
||||||
|
|
||||||
|
func showAddFolder() {
|
||||||
|
let addNavViewController = UIStoryboard.add.instantiateViewController(withIdentifier: "AddFolderViewControllerNav") as! UINavigationController
|
||||||
|
addNavViewController.modalPresentationStyle = .formSheet
|
||||||
|
addNavViewController.preferredContentSize = AddFolderViewController.preferredContentSizeForFormSheetDisplay
|
||||||
|
masterFeedViewController.present(addNavViewController, animated: true)
|
||||||
}
|
}
|
||||||
|
|
||||||
func showFullScreenImage(image: UIImage, imageTitle: String?, transitioningDelegate: UIViewControllerTransitioningDelegate) {
|
func showFullScreenImage(image: UIImage, imageTitle: String?, transitioningDelegate: UIViewControllerTransitioningDelegate) {
|
||||||
|
|
|
@ -100,7 +100,7 @@ private extension SceneDelegate {
|
||||||
case "com.ranchero.NetNewsWire.ShowSearch":
|
case "com.ranchero.NetNewsWire.ShowSearch":
|
||||||
coordinator.showSearch()
|
coordinator.showSearch()
|
||||||
case "com.ranchero.NetNewsWire.ShowAdd":
|
case "com.ranchero.NetNewsWire.ShowAdd":
|
||||||
coordinator.showAdd(.feed)
|
coordinator.showAddFeed()
|
||||||
default:
|
default:
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
|
@ -371,14 +371,13 @@ private extension SettingsViewController {
|
||||||
|
|
||||||
func addFeed() {
|
func addFeed() {
|
||||||
self.dismiss(animated: true)
|
self.dismiss(animated: true)
|
||||||
|
|
||||||
let addNavViewController = UIStoryboard.add.instantiateInitialViewController() as! UINavigationController
|
let addNavViewController = UIStoryboard.add.instantiateViewController(withIdentifier: "AddWebFeedViewControllerNav") as! UINavigationController
|
||||||
let addViewController = addNavViewController.topViewController as! AddContainerViewController
|
let addViewController = addNavViewController.topViewController as! AddWebFeedViewController
|
||||||
addNavViewController.modalPresentationStyle = .formSheet
|
|
||||||
addNavViewController.preferredContentSize = AddContainerViewController.preferredContentSizeForFormSheetDisplay
|
|
||||||
addViewController.initialControllerType = .feed
|
|
||||||
addViewController.initialFeed = appNewsURLString
|
addViewController.initialFeed = appNewsURLString
|
||||||
addViewController.initialFeedName = "NetNewsWire News"
|
addViewController.initialFeedName = NSLocalizedString("NetNewsWire News", comment: "NetNewsWire News")
|
||||||
|
addNavViewController.modalPresentationStyle = .formSheet
|
||||||
|
addNavViewController.preferredContentSize = AddWebFeedViewController.preferredContentSizeForFormSheetDisplay
|
||||||
|
|
||||||
presentingParentController?.present(addNavViewController, animated: true)
|
presentingParentController?.present(addNavViewController, animated: true)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue