Move IndeterminateProgressWindow to RSCore.

This commit is contained in:
Brent Simmons 2019-04-13 14:49:12 -07:00
parent f439b5a8be
commit 9aff95af29
4 changed files with 1 additions and 160 deletions

View File

@ -106,7 +106,6 @@
840F7C6321BDA4B40057E851 /* AddFolderWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 849A97421ED9EAA9007D329B /* AddFolderWindowController.swift */; };
840F7C6421BDA4B40057E851 /* MainWIndowKeyboardHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 844B5B661FEA18E300C7C76A /* MainWIndowKeyboardHandler.swift */; };
840F7C6521BDA4B40057E851 /* PasteboardFeed.swift in Sources */ = {isa = PBXBuildFile; fileRef = 848D578D21543519005FFAD5 /* PasteboardFeed.swift */; };
840F7C6621BDA4B40057E851 /* IndeterminateProgressWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 849A97911ED9EF65007D329B /* IndeterminateProgressWindowController.swift */; };
840F7C6721BDA4B40057E851 /* DetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 849A977E1ED9EC42007D329B /* DetailViewController.swift */; };
840F7C6821BDA4B40057E851 /* HTMLMetadataDownloader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8426119D1FCB6ED40086A189 /* HTMLMetadataDownloader.swift */; };
840F7C6921BDA4B40057E851 /* TimelineViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 849A976B1ED9EBC8007D329B /* TimelineViewController.swift */; };
@ -148,7 +147,6 @@
840F7C9421BDA4B40057E851 /* ArticlesDatabase.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 841D4D682106B3E100DD04E6 /* ArticlesDatabase.framework */; };
840F7C9521BDA4B40057E851 /* Articles.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 841D4D5B2106B3D600DD04E6 /* Articles.framework */; };
840F7C9721BDA4B40057E851 /* KeyboardShortcuts.html in Resources */ = {isa = PBXBuildFile; fileRef = 84EB38101FBA8B9F000D2111 /* KeyboardShortcuts.html */; };
840F7C9821BDA4B40057E851 /* IndeterminateProgressWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 849A97931ED9EF7A007D329B /* IndeterminateProgressWindow.xib */; };
840F7C9921BDA4B40057E851 /* GlobalKeyboardShortcuts.plist in Resources */ = {isa = PBXBuildFile; fileRef = 844B5B641FEA11F200C7C76A /* GlobalKeyboardShortcuts.plist */; };
840F7C9B21BDA4B40057E851 /* TimelineKeyboardShortcuts.plist in Resources */ = {isa = PBXBuildFile; fileRef = 845479871FEB77C000AD8B59 /* TimelineKeyboardShortcuts.plist */; };
840F7C9C21BDA4B40057E851 /* template.html in Resources */ = {isa = PBXBuildFile; fileRef = 849A979B1ED9EFEB007D329B /* template.html */; };
@ -251,8 +249,6 @@
849A97851ED9ECCD007D329B /* PreferencesWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 849A97841ED9ECCD007D329B /* PreferencesWindowController.swift */; };
849A97891ED9ECEF007D329B /* ArticleStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 849A97871ED9ECEF007D329B /* ArticleStyle.swift */; };
849A978A1ED9ECEF007D329B /* ArticleStylesManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 849A97881ED9ECEF007D329B /* ArticleStylesManager.swift */; };
849A97921ED9EF65007D329B /* IndeterminateProgressWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 849A97911ED9EF65007D329B /* IndeterminateProgressWindowController.swift */; };
849A97951ED9EF7A007D329B /* IndeterminateProgressWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 849A97931ED9EF7A007D329B /* IndeterminateProgressWindow.xib */; };
849A97981ED9EFAA007D329B /* Node-Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 849A97971ED9EFAA007D329B /* Node-Extensions.swift */; };
849A979C1ED9EFEB007D329B /* styleSheet.css in Resources */ = {isa = PBXBuildFile; fileRef = 849A979A1ED9EFEB007D329B /* styleSheet.css */; };
849A979D1ED9EFEB007D329B /* template.html in Resources */ = {isa = PBXBuildFile; fileRef = 849A979B1ED9EFEB007D329B /* template.html */; };
@ -821,8 +817,6 @@
849A97871ED9ECEF007D329B /* ArticleStyle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArticleStyle.swift; sourceTree = "<group>"; };
849A97881ED9ECEF007D329B /* ArticleStylesManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArticleStylesManager.swift; sourceTree = "<group>"; };
849A978C1ED9EE4D007D329B /* FeedListWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FeedListWindowController.swift; sourceTree = "<group>"; };
849A97911ED9EF65007D329B /* IndeterminateProgressWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IndeterminateProgressWindowController.swift; sourceTree = "<group>"; };
849A97941ED9EF7A007D329B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = NetNewsWire/Base.lproj/IndeterminateProgressWindow.xib; sourceTree = SOURCE_ROOT; };
849A97971ED9EFAA007D329B /* Node-Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Node-Extensions.swift"; sourceTree = "<group>"; };
849A979A1ED9EFEB007D329B /* styleSheet.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; name = styleSheet.css; path = NetNewsWire/MainWindow/Detail/styleSheet.css; sourceTree = SOURCE_ROOT; };
849A979B1ED9EFEB007D329B /* template.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = template.html; path = NetNewsWire/MainWindow/Detail/template.html; sourceTree = SOURCE_ROOT; };
@ -1393,16 +1387,6 @@
path = NetNewsWire/FeedList;
sourceTree = "<group>";
};
849A97901ED9EF65007D329B /* Progress Window */ = {
isa = PBXGroup;
children = (
849A97931ED9EF7A007D329B /* IndeterminateProgressWindow.xib */,
849A97911ED9EF65007D329B /* IndeterminateProgressWindowController.swift */,
);
name = "Progress Window";
path = NetNewsWire/ProgressWindow;
sourceTree = "<group>";
};
849A97961ED9EFAA007D329B /* Extensions */ = {
isa = PBXGroup;
children = (
@ -1448,7 +1432,6 @@
849A97861ED9ECEF007D329B /* Article Styles */,
84A6B6921FB8D43C006754AC /* Dinosaurs */,
849A978B1ED9EE4D007D329B /* Feed List */,
849A97901ED9EF65007D329B /* Progress Window */,
84DAEE201F86CAE00058304B /* Importers */,
8444C9011FED81880051386C /* Exporters */,
84F2D5341FC22FCB00998D64 /* SmartFeeds */,
@ -2194,7 +2177,6 @@
buildActionMask = 2147483647;
files = (
840F7C9721BDA4B40057E851 /* KeyboardShortcuts.html in Resources */,
840F7C9821BDA4B40057E851 /* IndeterminateProgressWindow.xib in Resources */,
840F7C9921BDA4B40057E851 /* GlobalKeyboardShortcuts.plist in Resources */,
84A3EE60223B667F00557320 /* DefaultFeeds.opml in Resources */,
8405DDA322168920008CE1BF /* TimelineTableView.xib in Resources */,
@ -2232,7 +2214,6 @@
buildActionMask = 2147483647;
files = (
84EB381F1FBA8B9F000D2111 /* KeyboardShortcuts.html in Resources */,
849A97951ED9EF7A007D329B /* IndeterminateProgressWindow.xib in Resources */,
844B5B651FEA11F200C7C76A /* GlobalKeyboardShortcuts.plist in Resources */,
5127B23A222B4849006D641D /* DetailKeyboardShortcuts.plist in Resources */,
845479881FEB77C000AD8B59 /* TimelineKeyboardShortcuts.plist in Resources */,
@ -2434,7 +2415,6 @@
840F7C6321BDA4B40057E851 /* AddFolderWindowController.swift in Sources */,
840F7C6421BDA4B40057E851 /* MainWIndowKeyboardHandler.swift in Sources */,
840F7C6521BDA4B40057E851 /* PasteboardFeed.swift in Sources */,
840F7C6621BDA4B40057E851 /* IndeterminateProgressWindowController.swift in Sources */,
840F7C6721BDA4B40057E851 /* DetailViewController.swift in Sources */,
840F7C6821BDA4B40057E851 /* HTMLMetadataDownloader.swift in Sources */,
840F7C6921BDA4B40057E851 /* TimelineViewController.swift in Sources */,
@ -2562,7 +2542,6 @@
8405DDA522168C62008CE1BF /* TimelineContainerViewController.swift in Sources */,
844B5B671FEA18E300C7C76A /* MainWIndowKeyboardHandler.swift in Sources */,
848D578E21543519005FFAD5 /* PasteboardFeed.swift in Sources */,
849A97921ED9EF65007D329B /* IndeterminateProgressWindowController.swift in Sources */,
849A97801ED9EC42007D329B /* DetailViewController.swift in Sources */,
8426119E1FCB6ED40086A189 /* HTMLMetadataDownloader.swift in Sources */,
849A976E1ED9EBC8007D329B /* TimelineViewController.swift in Sources */,
@ -2766,14 +2745,6 @@
name = LaunchScreen.storyboard;
sourceTree = "<group>";
};
849A97931ED9EF7A007D329B /* IndeterminateProgressWindow.xib */ = {
isa = PBXVariantGroup;
children = (
849A97941ED9EF7A007D329B /* Base */,
);
name = IndeterminateProgressWindow.xib;
sourceTree = "<group>";
};
849A97A41ED9F94D007D329B /* Preferences.storyboard */ = {
isa = PBXVariantGroup;
children = (

View File

@ -1,59 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="11198.2" systemVersion="15G1004" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11198.2"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="IndeterminateProgressWindowController" customModule="Rainier" customModuleProvider="target">
<connections>
<outlet property="messageLabel" destination="qcz-WI-q10" id="IJ9-M8-kzt"/>
<outlet property="progressIndicator" destination="MFX-Q2-XtZ" id="jpc-TD-TWd"/>
<outlet property="window" destination="NbJ-SP-fgw" id="e4d-eP-QkY"/>
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<window allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" restorable="NO" hidesOnDeactivate="YES" oneShot="NO" releasedWhenClosed="NO" showsToolbarButton="NO" visibleAtLaunch="NO" frameAutosaveName="" animationBehavior="default" id="NbJ-SP-fgw" customClass="NSPanel">
<windowStyleMask key="styleMask" titled="YES" utility="YES" HUD="YES"/>
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
<rect key="contentRect" x="272" y="172" width="267" height="85"/>
<rect key="screenRect" x="0.0" y="0.0" width="1440" height="877"/>
<view key="contentView" id="gai-Qn-u7b">
<rect key="frame" x="0.0" y="0.0" width="267" height="85"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="qcz-WI-q10">
<rect key="frame" x="90" y="46" width="87" height="19"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="center" title="Message…" id="84N-t0-TEo">
<font key="font" metaFont="systemBold" size="15"/>
<color key="textColor" white="0.96999999999999997" alpha="1" colorSpace="calibratedWhite"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<binding destination="-2" name="value" keyPath="message" id="EL8-wI-e9T">
<dictionary key="options">
<bool key="NSAllowsEditingMultipleValuesSelection" value="NO"/>
<bool key="NSRaisesForNotApplicableKeys" value="NO"/>
</dictionary>
</binding>
</connections>
</textField>
<progressIndicator wantsLayer="YES" horizontalHuggingPriority="750" verticalHuggingPriority="750" maxValue="100" bezeled="NO" indeterminate="YES" style="bar" translatesAutoresizingMaskIntoConstraints="NO" id="MFX-Q2-XtZ">
<rect key="frame" x="20" y="19" width="227" height="20"/>
</progressIndicator>
</subviews>
<constraints>
<constraint firstItem="qcz-WI-q10" firstAttribute="top" secondItem="gai-Qn-u7b" secondAttribute="top" constant="20" symbolic="YES" id="6hM-39-Lu6"/>
<constraint firstItem="qcz-WI-q10" firstAttribute="centerX" secondItem="gai-Qn-u7b" secondAttribute="centerX" id="B2C-49-Glg"/>
<constraint firstItem="MFX-Q2-XtZ" firstAttribute="centerX" secondItem="gai-Qn-u7b" secondAttribute="centerX" id="Byx-UU-xWP"/>
<constraint firstItem="MFX-Q2-XtZ" firstAttribute="leading" secondItem="gai-Qn-u7b" secondAttribute="leading" constant="20" symbolic="YES" id="J05-i6-91Y"/>
<constraint firstAttribute="bottom" secondItem="MFX-Q2-XtZ" secondAttribute="bottom" constant="20" symbolic="YES" id="ZRz-VV-P8J"/>
<constraint firstAttribute="trailing" secondItem="MFX-Q2-XtZ" secondAttribute="trailing" constant="20" symbolic="YES" id="k2g-Jl-o6g"/>
<constraint firstItem="MFX-Q2-XtZ" firstAttribute="top" secondItem="qcz-WI-q10" secondAttribute="bottom" constant="8" symbolic="YES" id="xxr-Ok-3Bb"/>
</constraints>
</view>
<point key="canvasLocation" x="-71.5" y="-167.5"/>
</window>
</objects>
</document>

View File

@ -1,71 +0,0 @@
//
// IndeterminateProgressWindowController.swift
// NetNewsWire
//
// Created by Brent Simmons on 8/28/16.
// Copyright © 2016 Ranchero Software, LLC. All rights reserved.
//
import AppKit
func runIndeterminateProgressWithMessage(_ message: String) {
IndeterminateProgressController.beginProgressWithMessage(message)
}
func stopIndeterminateProgress() {
IndeterminateProgressController.endProgress()
}
private final class IndeterminateProgressController {
static var windowController: IndeterminateProgressWindowController?
static var runningProgressWindow = false
static func beginProgressWithMessage(_ message: String) {
if runningProgressWindow {
assertionFailure("Expected !runningProgressWindow.")
endProgress()
}
runningProgressWindow = true
windowController = IndeterminateProgressWindowController(message: message)
NSApplication.shared.runModal(for: windowController!.window!)
}
static func endProgress() {
if !runningProgressWindow {
assertionFailure("Expected runningProgressWindow.")
return
}
runningProgressWindow = false
NSApplication.shared.stopModal()
windowController?.close()
windowController = nil
}
}
private final class IndeterminateProgressWindowController: NSWindowController {
@IBOutlet var messageLabel: NSTextField!
@IBOutlet var progressIndicator: NSProgressIndicator!
@objc dynamic var message = ""
convenience init(message: String) {
self.init(windowNibName: NSNib.Name("IndeterminateProgressWindow"))
self.message = message
}
override func windowDidLoad() {
progressIndicator.startAnimation(self)
}
}

@ -1 +1 @@
Subproject commit 38cf40b7ead95e6c3f3371b643748bd9f6687d8a
Subproject commit d788afe42fa0ba1455c691733a5be108dc12f69c