Implement account state UI
This commit is contained in:
parent
f5523dd610
commit
747079157b
@ -22,7 +22,7 @@ public extension Notification.Name {
|
|||||||
static let AccountRefreshDidFinish = Notification.Name(rawValue: "AccountRefreshDidFinish")
|
static let AccountRefreshDidFinish = Notification.Name(rawValue: "AccountRefreshDidFinish")
|
||||||
static let AccountRefreshProgressDidChange = Notification.Name(rawValue: "AccountRefreshProgressDidChange")
|
static let AccountRefreshProgressDidChange = Notification.Name(rawValue: "AccountRefreshProgressDidChange")
|
||||||
static let AccountDidDownloadArticles = Notification.Name(rawValue: "AccountDidDownloadArticles")
|
static let AccountDidDownloadArticles = Notification.Name(rawValue: "AccountDidDownloadArticles")
|
||||||
|
static let AccountStateDidChange = Notification.Name(rawValue: "AccountStateDidChange")
|
||||||
static let StatusesDidChange = Notification.Name(rawValue: "StatusesDidChange")
|
static let StatusesDidChange = Notification.Name(rawValue: "StatusesDidChange")
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -72,6 +72,19 @@ public final class Account: DisplayNameProvider, UnreadCountProvider, Container,
|
|||||||
}
|
}
|
||||||
public let defaultName: String
|
public let defaultName: String
|
||||||
|
|
||||||
|
public var isActive: Bool {
|
||||||
|
get {
|
||||||
|
return settings.isActive
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
if newValue != settings.isActive {
|
||||||
|
settings.isActive = newValue
|
||||||
|
settingsDirty = true
|
||||||
|
NotificationCenter.default.post(name: .AccountStateDidChange, object: self, userInfo: nil)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public var topLevelFeeds = Set<Feed>()
|
public var topLevelFeeds = Set<Feed>()
|
||||||
public var folders: Set<Folder>? = Set<Folder>()
|
public var folders: Set<Folder>? = Set<Folder>()
|
||||||
private var feedDictionaryNeedsUpdate = true
|
private var feedDictionaryNeedsUpdate = true
|
||||||
|
@ -11,4 +11,6 @@ import Foundation
|
|||||||
final class AccountSettings: Codable {
|
final class AccountSettings: Codable {
|
||||||
|
|
||||||
var name: String?
|
var name: String?
|
||||||
|
var isActive: Bool = true
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
<objects>
|
<objects>
|
||||||
<customObject id="-2" userLabel="File's Owner" customClass="AccountsDetailViewController" customModule="NetNewsWire" customModuleProvider="target">
|
<customObject id="-2" userLabel="File's Owner" customClass="AccountsDetailViewController" customModule="NetNewsWire" customModuleProvider="target">
|
||||||
<connections>
|
<connections>
|
||||||
|
<outlet property="activeButton" destination="wxB-dX-nGt" id="ALS-GI-sb5"/>
|
||||||
<outlet property="nameTextField" destination="TT0-Kf-YTC" id="oMG-jn-Qn0"/>
|
<outlet property="nameTextField" destination="TT0-Kf-YTC" id="oMG-jn-Qn0"/>
|
||||||
<outlet property="typeLabel" destination="XYX-iz-hnq" id="SKM-et-3h3"/>
|
<outlet property="typeLabel" destination="XYX-iz-hnq" id="SKM-et-3h3"/>
|
||||||
<outlet property="view" destination="3ki-rg-6yb" id="ttM-4E-OLN"/>
|
<outlet property="view" destination="3ki-rg-6yb" id="ttM-4E-OLN"/>
|
||||||
@ -56,8 +57,20 @@
|
|||||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
</textFieldCell>
|
</textFieldCell>
|
||||||
</textField>
|
</textField>
|
||||||
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="mgt-uY-fuq">
|
||||||
|
<rect key="frame" x="66" y="123" width="60" height="18"/>
|
||||||
|
<buttonCell key="cell" type="check" title="Active" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="wxB-dX-nGt">
|
||||||
|
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="active:" target="-2" id="XgX-JM-UyU"/>
|
||||||
|
</connections>
|
||||||
|
</buttonCell>
|
||||||
|
</button>
|
||||||
</subviews>
|
</subviews>
|
||||||
<constraints>
|
<constraints>
|
||||||
|
<constraint firstItem="mgt-uY-fuq" firstAttribute="leading" secondItem="TT0-Kf-YTC" secondAttribute="leading" id="04V-YD-UZ5"/>
|
||||||
|
<constraint firstItem="mgt-uY-fuq" firstAttribute="top" secondItem="TT0-Kf-YTC" secondAttribute="bottom" constant="8" symbolic="YES" id="5Kn-79-8tn"/>
|
||||||
<constraint firstItem="XYX-iz-hnq" firstAttribute="firstBaseline" secondItem="jiQ-KJ-SS0" secondAttribute="firstBaseline" id="8ew-wx-9n3"/>
|
<constraint firstItem="XYX-iz-hnq" firstAttribute="firstBaseline" secondItem="jiQ-KJ-SS0" secondAttribute="firstBaseline" id="8ew-wx-9n3"/>
|
||||||
<constraint firstItem="XYX-iz-hnq" firstAttribute="leading" secondItem="jiQ-KJ-SS0" secondAttribute="trailing" constant="8" symbolic="YES" id="NsF-th-Tqq"/>
|
<constraint firstItem="XYX-iz-hnq" firstAttribute="leading" secondItem="jiQ-KJ-SS0" secondAttribute="trailing" constant="8" symbolic="YES" id="NsF-th-Tqq"/>
|
||||||
<constraint firstItem="TT0-Kf-YTC" firstAttribute="leading" secondItem="XYX-iz-hnq" secondAttribute="leading" id="Xqo-JT-9KG"/>
|
<constraint firstItem="TT0-Kf-YTC" firstAttribute="leading" secondItem="XYX-iz-hnq" secondAttribute="leading" id="Xqo-JT-9KG"/>
|
||||||
|
@ -13,6 +13,7 @@ final class AccountsDetailViewController: NSViewController, NSTextFieldDelegate
|
|||||||
|
|
||||||
@IBOutlet weak var typeLabel: NSTextField!
|
@IBOutlet weak var typeLabel: NSTextField!
|
||||||
@IBOutlet weak var nameTextField: NSTextField!
|
@IBOutlet weak var nameTextField: NSTextField!
|
||||||
|
@IBOutlet weak var activeButton: NSButtonCell!
|
||||||
|
|
||||||
private weak var account: Account?
|
private weak var account: Account?
|
||||||
|
|
||||||
@ -30,6 +31,7 @@ final class AccountsDetailViewController: NSViewController, NSTextFieldDelegate
|
|||||||
nameTextField.delegate = self
|
nameTextField.delegate = self
|
||||||
typeLabel.stringValue = account?.defaultName ?? ""
|
typeLabel.stringValue = account?.defaultName ?? ""
|
||||||
nameTextField.stringValue = account?.name ?? ""
|
nameTextField.stringValue = account?.name ?? ""
|
||||||
|
activeButton.state = account?.isActive ?? false ? .on : .off
|
||||||
}
|
}
|
||||||
|
|
||||||
func controlTextDidEndEditing(_ obj: Notification) {
|
func controlTextDidEndEditing(_ obj: Notification) {
|
||||||
@ -40,4 +42,8 @@ final class AccountsDetailViewController: NSViewController, NSTextFieldDelegate
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@IBAction func active(_ sender: NSButtonCell) {
|
||||||
|
account?.isActive = sender.state == .on ? true : false
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user