Add Browser and Defaults.
This commit is contained in:
parent
85ff386f4b
commit
21801b8b6a
|
@ -8,6 +8,8 @@
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
842E45CE1ED8C308000A8B52 /* AppConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 842E45CD1ED8C308000A8B52 /* AppConstants.swift */; };
|
842E45CE1ED8C308000A8B52 /* AppConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 842E45CD1ED8C308000A8B52 /* AppConstants.swift */; };
|
||||||
|
842E45DD1ED8C54B000A8B52 /* Browser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 842E45DC1ED8C54B000A8B52 /* Browser.swift */; };
|
||||||
|
842E45DF1ED8C582000A8B52 /* Defaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = 842E45DE1ED8C582000A8B52 /* Defaults.swift */; };
|
||||||
8471A2C41ED4CEBF008F099E /* DataModel.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8471A2B71ED4CEAD008F099E /* DataModel.framework */; };
|
8471A2C41ED4CEBF008F099E /* DataModel.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8471A2B71ED4CEAD008F099E /* DataModel.framework */; };
|
||||||
8471A2C51ED4CEBF008F099E /* DataModel.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 8471A2B71ED4CEAD008F099E /* DataModel.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
8471A2C51ED4CEBF008F099E /* DataModel.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 8471A2B71ED4CEAD008F099E /* DataModel.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||||
8471A2F51ED4D062008F099E /* LocalAccount.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8471A2F21ED4D04D008F099E /* LocalAccount.framework */; };
|
8471A2F51ED4D062008F099E /* LocalAccount.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8471A2F21ED4D04D008F099E /* LocalAccount.framework */; };
|
||||||
|
@ -301,6 +303,8 @@
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
842E45CD1ED8C308000A8B52 /* AppConstants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = AppConstants.swift; path = Evergreen/AppConstants.swift; sourceTree = "<group>"; };
|
842E45CD1ED8C308000A8B52 /* AppConstants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = AppConstants.swift; path = Evergreen/AppConstants.swift; sourceTree = "<group>"; };
|
||||||
|
842E45DC1ED8C54B000A8B52 /* Browser.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Browser.swift; path = Evergreen/Browser.swift; sourceTree = "<group>"; };
|
||||||
|
842E45DE1ED8C582000A8B52 /* Defaults.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Defaults.swift; path = Evergreen/Preferences/Defaults.swift; sourceTree = "<group>"; };
|
||||||
8471A2B21ED4CEAD008F099E /* DataModel.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = DataModel.xcodeproj; path = Frameworks/DataModel/DataModel.xcodeproj; sourceTree = "<group>"; };
|
8471A2B21ED4CEAD008F099E /* DataModel.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = DataModel.xcodeproj; path = Frameworks/DataModel/DataModel.xcodeproj; sourceTree = "<group>"; };
|
||||||
8471A2EC1ED4D04D008F099E /* LocalAccount.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = LocalAccount.xcodeproj; path = Frameworks/LocalAccount/LocalAccount.xcodeproj; sourceTree = "<group>"; };
|
8471A2EC1ED4D04D008F099E /* LocalAccount.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = LocalAccount.xcodeproj; path = Frameworks/LocalAccount/LocalAccount.xcodeproj; sourceTree = "<group>"; };
|
||||||
849C64601ED37A5D003D8FC0 /* Evergreen.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Evergreen.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
849C64601ED37A5D003D8FC0 /* Evergreen.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Evergreen.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
@ -350,6 +354,14 @@
|
||||||
/* End PBXFrameworksBuildPhase section */
|
/* End PBXFrameworksBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXGroup section */
|
/* Begin PBXGroup section */
|
||||||
|
842E45E01ED8C587000A8B52 /* Preferences */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
842E45DE1ED8C582000A8B52 /* Defaults.swift */,
|
||||||
|
);
|
||||||
|
name = Preferences;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
8471A2B31ED4CEAD008F099E /* Products */ = {
|
8471A2B31ED4CEAD008F099E /* Products */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
@ -375,6 +387,8 @@
|
||||||
842E45CD1ED8C308000A8B52 /* AppConstants.swift */,
|
842E45CD1ED8C308000A8B52 /* AppConstants.swift */,
|
||||||
849C64631ED37A5D003D8FC0 /* AppDelegate.swift */,
|
849C64631ED37A5D003D8FC0 /* AppDelegate.swift */,
|
||||||
849C64651ED37A5D003D8FC0 /* ViewController.swift */,
|
849C64651ED37A5D003D8FC0 /* ViewController.swift */,
|
||||||
|
842E45DC1ED8C54B000A8B52 /* Browser.swift */,
|
||||||
|
842E45E01ED8C587000A8B52 /* Preferences */,
|
||||||
849C646C1ED37A5D003D8FC0 /* Info.plist */,
|
849C646C1ED37A5D003D8FC0 /* Info.plist */,
|
||||||
849C64741ED37A5D003D8FC0 /* EvergreenTests */,
|
849C64741ED37A5D003D8FC0 /* EvergreenTests */,
|
||||||
849C64611ED37A5D003D8FC0 /* Products */,
|
849C64611ED37A5D003D8FC0 /* Products */,
|
||||||
|
@ -806,7 +820,9 @@
|
||||||
isa = PBXSourcesBuildPhase;
|
isa = PBXSourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
842E45DD1ED8C54B000A8B52 /* Browser.swift in Sources */,
|
||||||
849C64661ED37A5D003D8FC0 /* ViewController.swift in Sources */,
|
849C64661ED37A5D003D8FC0 /* ViewController.swift in Sources */,
|
||||||
|
842E45DF1ED8C582000A8B52 /* Defaults.swift in Sources */,
|
||||||
842E45CE1ED8C308000A8B52 /* AppConstants.swift in Sources */,
|
842E45CE1ED8C308000A8B52 /* AppConstants.swift in Sources */,
|
||||||
849C64641ED37A5D003D8FC0 /* AppDelegate.swift in Sources */,
|
849C64641ED37A5D003D8FC0 /* AppDelegate.swift in Sources */,
|
||||||
);
|
);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
//
|
//
|
||||||
// AppConstants.swift
|
// AppConstants.swift
|
||||||
// Rainier
|
// Evergreen
|
||||||
//
|
//
|
||||||
// Created by Brent Simmons on 8/30/15.
|
// Created by Brent Simmons on 8/30/15.
|
||||||
// Copyright © 2015 Ranchero Software, LLC. All rights reserved.
|
// Copyright © 2015 Ranchero Software, LLC. All rights reserved.
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
//
|
||||||
|
// Browser.swift
|
||||||
|
// Evergren
|
||||||
|
//
|
||||||
|
// Created by Brent Simmons on 2/23/16.
|
||||||
|
// Copyright © 2016 Ranchero Software, LLC. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import CoreServices
|
||||||
|
import RSWeb
|
||||||
|
|
||||||
|
|
||||||
|
func openInBrowser(_ urlString: String) {
|
||||||
|
|
||||||
|
// Opens according to prefs.
|
||||||
|
let openInBackground = UserDefaults.standard.bool(forKey: OpenInBrowserInBackgroundKey)
|
||||||
|
openInBrowser(urlString, inBackground: openInBackground)
|
||||||
|
}
|
||||||
|
|
||||||
|
func openInBrowser(_ urlString: String, inBackground: Bool) {
|
||||||
|
|
||||||
|
if let url = URL(string: urlString) {
|
||||||
|
let _ = MacWebBrowser.openURL(url, inBackground: inBackground)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,54 @@
|
||||||
|
//
|
||||||
|
// Defaults.swift
|
||||||
|
// Evergreen
|
||||||
|
//
|
||||||
|
// Created by Brent Simmons on 2/20/16.
|
||||||
|
// Copyright © 2016 Ranchero Software, LLC. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
|
||||||
|
let SidebarFontSizeKey = "sidebarFontSize"
|
||||||
|
let TimelineFontSizeKey = "timelineFontSize"
|
||||||
|
let ArticleFontSizeKey = "articleFontSize"
|
||||||
|
|
||||||
|
let SidebarFontSizeKVOKey = "values." + SidebarFontSizeKey
|
||||||
|
let TimelineFontSizeKVOKey = "values." + TimelineFontSizeKey
|
||||||
|
let ArticleFontSizeKVOKey = "values." + ArticleFontSizeKey
|
||||||
|
|
||||||
|
let OpenInBrowserInBackgroundKey = "openInBrowserInBackground"
|
||||||
|
|
||||||
|
enum FontSize: Int {
|
||||||
|
case small = 0
|
||||||
|
case medium = 1
|
||||||
|
case large = 2
|
||||||
|
case veryLarge = 3
|
||||||
|
}
|
||||||
|
|
||||||
|
private let smallestFontSizeRawValue = FontSize.small.rawValue
|
||||||
|
private let largestFontSizeRawValue = FontSize.veryLarge.rawValue
|
||||||
|
|
||||||
|
func registerDefaults() {
|
||||||
|
|
||||||
|
let defaults = [SidebarFontSizeKey: FontSize.medium.rawValue, TimelineFontSizeKey: FontSize.medium.rawValue, ArticleFontSizeKey: FontSize.medium.rawValue]
|
||||||
|
|
||||||
|
UserDefaults.standard.register(defaults: defaults)
|
||||||
|
}
|
||||||
|
|
||||||
|
func timelineFontSize() -> FontSize {
|
||||||
|
|
||||||
|
return fontSizeForKey(TimelineFontSizeKey)
|
||||||
|
}
|
||||||
|
|
||||||
|
private func fontSizeForKey(_ key: String) -> FontSize {
|
||||||
|
|
||||||
|
var rawFontSize = UserDefaults.standard.integer(forKey: key)
|
||||||
|
if rawFontSize < smallestFontSizeRawValue {
|
||||||
|
rawFontSize = smallestFontSizeRawValue
|
||||||
|
}
|
||||||
|
if rawFontSize > largestFontSizeRawValue {
|
||||||
|
rawFontSize = largestFontSizeRawValue
|
||||||
|
}
|
||||||
|
return FontSize(rawValue: rawFontSize)!
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue