Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7c91b7848a | |||
| 1ec63d8aee | |||
| fe69ebc21c | |||
| 6842731242 | |||
| 2e7f852baa | |||
| 9964307ee8 | |||
| bf65074c50 | |||
| 7c741d0d38 | |||
| 9065c5db02 | |||
| 41c9af00a8 | |||
| a710f923e6 |
Binary file not shown.
|
Before Width: | Height: | Size: 503 KiB After Width: | Height: | Size: 514 KiB |
Binary file not shown.
@@ -26,8 +26,8 @@
|
||||
05D7472021924D1F002CF085 /* AboutWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05D7471F21924D1F002CF085 /* AboutWindowController.swift */; };
|
||||
05E3745521925281000C6736 /* GitHubUpdates.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 05E3745121925277000C6736 /* GitHubUpdates.framework */; };
|
||||
05E3745921925294000C6736 /* GitHubUpdates.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 05E3745121925277000C6736 /* GitHubUpdates.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
05E3745B219253B5000C6736 /* ArrayIsEmpty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05E3745A219253B5000C6736 /* ArrayIsEmpty.swift */; };
|
||||
05E3745D2192545A000C6736 /* ArrayIsNotEmpty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05E3745C2192545A000C6736 /* ArrayIsNotEmpty.swift */; };
|
||||
05E3745B219253B5000C6736 /* IsEmpty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05E3745A219253B5000C6736 /* IsEmpty.swift */; };
|
||||
05E3745D2192545A000C6736 /* IsNotEmpty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05E3745C2192545A000C6736 /* IsNotEmpty.swift */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
@@ -130,8 +130,8 @@
|
||||
05D7471D21924D18002CF085 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/Notarize.AboutWindowController.xib; sourceTree = "<group>"; };
|
||||
05D7471F21924D1F002CF085 /* AboutWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AboutWindowController.swift; sourceTree = "<group>"; };
|
||||
05E3744B21925276000C6736 /* GitHubUpdates.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = GitHubUpdates.xcodeproj; path = Submodules/GitHubUpdates/GitHubUpdates.xcodeproj; sourceTree = "<group>"; };
|
||||
05E3745A219253B5000C6736 /* ArrayIsEmpty.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArrayIsEmpty.swift; sourceTree = "<group>"; };
|
||||
05E3745C2192545A000C6736 /* ArrayIsNotEmpty.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArrayIsNotEmpty.swift; sourceTree = "<group>"; };
|
||||
05E3745A219253B5000C6736 /* IsEmpty.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IsEmpty.swift; sourceTree = "<group>"; };
|
||||
05E3745C2192545A000C6736 /* IsNotEmpty.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IsNotEmpty.swift; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
@@ -202,8 +202,8 @@
|
||||
05D746B92191F0BB002CF085 /* Keychain.swift */,
|
||||
059A0B60219050A3004E1D89 /* MainWindowController.swift */,
|
||||
05D7469121919DE7002CF085 /* Preferences.swift */,
|
||||
05E3745A219253B5000C6736 /* ArrayIsEmpty.swift */,
|
||||
05E3745C2192545A000C6736 /* ArrayIsNotEmpty.swift */,
|
||||
05E3745A219253B5000C6736 /* IsEmpty.swift */,
|
||||
05E3745C2192545A000C6736 /* IsNotEmpty.swift */,
|
||||
);
|
||||
path = Classes;
|
||||
sourceTree = "<group>";
|
||||
@@ -376,7 +376,7 @@
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastSwiftUpdateCheck = 1010;
|
||||
LastUpgradeCheck = 1010;
|
||||
LastUpgradeCheck = 1220;
|
||||
ORGANIZATIONNAME = "XS-Labs";
|
||||
TargetAttributes = {
|
||||
059A0B4621905010004E1D89 = {
|
||||
@@ -475,14 +475,14 @@
|
||||
05D7469421919F53002CF085 /* Account.swift in Sources */,
|
||||
05D7472021924D1F002CF085 /* AboutWindowController.swift in Sources */,
|
||||
059A0B61219050A3004E1D89 /* MainWindowController.swift in Sources */,
|
||||
05E3745D2192545A000C6736 /* ArrayIsNotEmpty.swift in Sources */,
|
||||
05E3745D2192545A000C6736 /* IsNotEmpty.swift in Sources */,
|
||||
05D746E721923630002CF085 /* HistoryItem.swift in Sources */,
|
||||
05D746E021922726002CF085 /* ALTool.swift in Sources */,
|
||||
059A0B6921905534004E1D89 /* AccountWindowController.swift in Sources */,
|
||||
05D7469221919DE7002CF085 /* Preferences.swift in Sources */,
|
||||
059A0B5E2190504B004E1D89 /* ApplicationDelegate.swift in Sources */,
|
||||
05D746BA2191F0BB002CF085 /* Keychain.swift in Sources */,
|
||||
05E3745B219253B5000C6736 /* ArrayIsEmpty.swift in Sources */,
|
||||
05E3745B219253B5000C6736 /* IsEmpty.swift in Sources */,
|
||||
05D746E2219230FC002CF085 /* HistoryViewController.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
@@ -545,7 +545,6 @@
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 05D746EC21924850002CF085 /* Debug.xcconfig */;
|
||||
buildSettings = {
|
||||
SWIFT_VERSION = 4.2;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
@@ -553,7 +552,6 @@
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 05D746ED21924850002CF085 /* Release.xcconfig */;
|
||||
buildSettings = {
|
||||
SWIFT_VERSION = 4.2;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
@@ -565,6 +563,7 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/../Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 1.1.1;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.xs-labs.Notarize";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
@@ -578,6 +577,7 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/../Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 1.1.1;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.xs-labs.Notarize";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1010"
|
||||
LastUpgradeVersion = "1220"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
@@ -27,8 +27,6 @@
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
</Testables>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
@@ -38,8 +36,8 @@
|
||||
ReferencedContainer = "container:Notarize.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
<Testables>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
@@ -61,8 +59,6 @@
|
||||
ReferencedContainer = "container:Notarize.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
|
||||
@@ -68,6 +68,20 @@ class ALTool
|
||||
}
|
||||
}
|
||||
|
||||
func notarizationInfo( for uuid: String ) throws -> String?
|
||||
{
|
||||
do
|
||||
{
|
||||
let out = try ALTool.run( arguments: [ "--notarization-info", uuid, "-u", self.username, "-p", self.password, "--output-format", "xml" ] )
|
||||
|
||||
return out.trimmingCharacters( in: NSCharacterSet.whitespacesAndNewlines )
|
||||
}
|
||||
catch let e as NSError
|
||||
{
|
||||
throw e
|
||||
}
|
||||
}
|
||||
|
||||
private class func run( arguments: [ String ] ) throws -> String
|
||||
{
|
||||
var args = [ "altool" ]
|
||||
@@ -104,7 +118,7 @@ class ALTool
|
||||
{
|
||||
if let dict = try? PropertyListSerialization.propertyList( from: data, options: [], format: nil ) as? NSDictionary
|
||||
{
|
||||
if let errors = dict?.object( forKey: "product-errors") as? NSArray
|
||||
if let errors = dict.object( forKey: "product-errors") as? NSArray
|
||||
{
|
||||
if errors.count > 0
|
||||
{
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2018 Jean-David Gadina - www.xs-labs.com
|
||||
* Copyright (c) 2020 Jean-David Gadina - www.xs-labs.com
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -24,31 +24,33 @@
|
||||
|
||||
import Cocoa
|
||||
|
||||
@objc class AboutWindowController: NSWindowController
|
||||
public class AboutWindowController: NSWindowController
|
||||
{
|
||||
@objc private dynamic var name: String?
|
||||
@objc private dynamic var version: String?
|
||||
@objc private dynamic var copyright: String?
|
||||
|
||||
override var windowNibName: NSNib.Name?
|
||||
public override var windowNibName: NSNib.Name?
|
||||
{
|
||||
return NSNib.Name( NSStringFromClass( type( of: self ) ) )
|
||||
return NSStringFromClass( type( of: self ) )
|
||||
}
|
||||
|
||||
override func windowDidLoad()
|
||||
override public func windowDidLoad()
|
||||
{
|
||||
super.windowDidLoad()
|
||||
|
||||
self.window?.titlebarAppearsTransparent = true
|
||||
self.window?.titleVisibility = .hidden
|
||||
let version = Bundle.main.object( forInfoDictionaryKey: "CFBundleShortVersionString" ) as? String ?? "0.0.0"
|
||||
|
||||
self.name = Bundle.main.object( forInfoDictionaryKey: "CFBundleName" ) as? String
|
||||
self.version = Bundle.main.object( forInfoDictionaryKey: "CFBundleShortVersionString" ) as? String
|
||||
self.copyright = Bundle.main.object( forInfoDictionaryKey: "NSHumanReadableCopyright" ) as? String
|
||||
|
||||
if let rev = Bundle.main.object( forInfoDictionaryKey: "CFBundleVersion" ) as? String
|
||||
if let build = Bundle.main.object( forInfoDictionaryKey: "CFBundleVersion" ) as? String
|
||||
{
|
||||
self.version?.append( " (" + rev + ")" )
|
||||
self.version = "\(version) (\(build))"
|
||||
}
|
||||
else
|
||||
{
|
||||
self.version = version
|
||||
}
|
||||
|
||||
self.name = Bundle.main.object( forInfoDictionaryKey: "CFBundleName" ) as? String
|
||||
self.copyright = Bundle.main.object( forInfoDictionaryKey: "NSHumanReadableCopyright" ) as? String
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,11 +26,12 @@ import Cocoa
|
||||
|
||||
@objc class HistoryItem: NSObject
|
||||
{
|
||||
@objc public var date: NSDate
|
||||
@objc public var uuid: String
|
||||
@objc public var success: Bool
|
||||
@objc public var status: Int
|
||||
@objc public var message: String
|
||||
@objc public dynamic var date: NSDate
|
||||
@objc public dynamic var uuid: String
|
||||
@objc public dynamic var success: Bool
|
||||
@objc public dynamic var status: Int
|
||||
@objc public dynamic var message: String
|
||||
@objc public dynamic var logURL: String?
|
||||
|
||||
class func ItemsFromDictionary( dict: NSDictionary? ) -> [ HistoryItem ]
|
||||
{
|
||||
@@ -97,4 +98,19 @@ import Cocoa
|
||||
self.status = code.intValue
|
||||
self.message = message
|
||||
}
|
||||
|
||||
override func isEqual( _ object: Any? ) -> Bool
|
||||
{
|
||||
guard let o = object as? HistoryItem else
|
||||
{
|
||||
return false
|
||||
}
|
||||
|
||||
return self.uuid == o.uuid
|
||||
}
|
||||
|
||||
override var hash: Int
|
||||
{
|
||||
return self.uuid.hash
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,17 +24,19 @@
|
||||
|
||||
import Cocoa
|
||||
|
||||
class HistoryViewController: NSViewController
|
||||
class HistoryViewController: NSViewController, NSTableViewDelegate, NSTableViewDataSource
|
||||
{
|
||||
@IBOutlet private var itemsController: NSArrayController!
|
||||
|
||||
@objc private dynamic var loading = true
|
||||
@objc private dynamic var refreshing = false
|
||||
@objc private dynamic var items = [ HistoryItem ]()
|
||||
@objc private dynamic var loading = true
|
||||
@objc private dynamic var refreshing = false
|
||||
@objc private dynamic var gettingInfo = false
|
||||
@objc private dynamic var items = Set< HistoryItem >()
|
||||
|
||||
private var account: Account?
|
||||
private var timer: Timer?
|
||||
private var add: AccountWindowController?
|
||||
private var account: Account?
|
||||
private var refreshTimer: Timer?
|
||||
private var infoTimer: Timer?
|
||||
private var add: AccountWindowController?
|
||||
|
||||
convenience init( account: Account )
|
||||
{
|
||||
@@ -45,7 +47,8 @@ class HistoryViewController: NSViewController
|
||||
|
||||
deinit
|
||||
{
|
||||
self.timer?.invalidate()
|
||||
self.refreshTimer?.invalidate()
|
||||
self.infoTimer?.invalidate()
|
||||
}
|
||||
|
||||
override var nibName: NSNib.Name?
|
||||
@@ -61,10 +64,15 @@ class HistoryViewController: NSViewController
|
||||
|
||||
self.refresh( nil )
|
||||
|
||||
self.timer = Timer.scheduledTimer( withTimeInterval: 5, repeats: true )
|
||||
self.refreshTimer = Timer.scheduledTimer( withTimeInterval: 5, repeats: true )
|
||||
{
|
||||
t in self.refresh( userInitiated: false )
|
||||
}
|
||||
|
||||
self.infoTimer = Timer.scheduledTimer( withTimeInterval: 5, repeats: true )
|
||||
{
|
||||
t in self.getInfo()
|
||||
}
|
||||
}
|
||||
|
||||
@IBAction func refresh( _ sender: Any? )
|
||||
@@ -72,6 +80,21 @@ class HistoryViewController: NSViewController
|
||||
self.refresh( userInitiated: true )
|
||||
}
|
||||
|
||||
@IBAction func showInfo( _ sender: Any? )
|
||||
{
|
||||
guard let item = sender as? HistoryItem else
|
||||
{
|
||||
return
|
||||
}
|
||||
|
||||
guard let url = URL( string: item.logURL ?? "" ) else
|
||||
{
|
||||
return
|
||||
}
|
||||
|
||||
NSWorkspace.shared.open( url )
|
||||
}
|
||||
|
||||
private func refresh( userInitiated: Bool )
|
||||
{
|
||||
DispatchQueue.main.async
|
||||
@@ -111,20 +134,32 @@ class HistoryViewController: NSViewController
|
||||
|
||||
DispatchQueue.global( qos: .userInitiated ).async
|
||||
{
|
||||
let altool = ALTool( username: account.username, password: password )
|
||||
let xml = try? altool.notarizationHistory()
|
||||
let altool = ALTool( username: account.username, password: password )
|
||||
let xml = try? altool.notarizationHistory()
|
||||
|
||||
DispatchQueue.main.async
|
||||
if let xmlData = xml?.data( using: .utf8 )
|
||||
{
|
||||
if let xmlData = xml??.data( using: .utf8 )
|
||||
if let history = try? PropertyListSerialization.propertyList( from: xmlData, options: [], format: nil ) as? NSDictionary
|
||||
{
|
||||
if let history = try? PropertyListSerialization.propertyList( from: xmlData, options: [], format: nil ) as? NSDictionary
|
||||
let items = HistoryItem.ItemsFromDictionary( dict: history )
|
||||
|
||||
DispatchQueue.main.async
|
||||
{
|
||||
self.itemsController.remove( contentsOf: self.items )
|
||||
self.itemsController.add( contentsOf: HistoryItem.ItemsFromDictionary( dict: history ) )
|
||||
items.forEach
|
||||
{
|
||||
o in
|
||||
|
||||
if self.items.contains( o ) == false
|
||||
{
|
||||
self.items.insert( o )
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DispatchQueue.main.async
|
||||
{
|
||||
self.loading = false
|
||||
self.refreshing = false
|
||||
}
|
||||
@@ -132,6 +167,79 @@ class HistoryViewController: NSViewController
|
||||
}
|
||||
}
|
||||
|
||||
private func getInfo()
|
||||
{
|
||||
DispatchQueue.main.async
|
||||
{
|
||||
if self.gettingInfo
|
||||
{
|
||||
return
|
||||
}
|
||||
|
||||
self.gettingInfo = true
|
||||
|
||||
DispatchQueue.global( qos: .userInitiated ).async
|
||||
{
|
||||
guard let account = self.account else
|
||||
{
|
||||
return
|
||||
}
|
||||
|
||||
guard let password = account.password else
|
||||
{
|
||||
return
|
||||
}
|
||||
|
||||
let items = DispatchQueue.main.sync { return self.items }
|
||||
let altool = ALTool( username: account.username, password: password )
|
||||
let group = DispatchGroup()
|
||||
|
||||
for item in items.filter( { o in o.logURL == nil } )
|
||||
{
|
||||
DispatchQueue.global( qos: .userInitiated ).async( group: group )
|
||||
{
|
||||
guard let xml = try? altool.notarizationInfo( for: item.uuid ) else
|
||||
{
|
||||
return
|
||||
}
|
||||
|
||||
guard let xmlData = xml.data( using: .utf8 ) else
|
||||
{
|
||||
return
|
||||
}
|
||||
|
||||
guard let info = try? PropertyListSerialization.propertyList( from: xmlData, options: [], format: nil ) as? NSDictionary else
|
||||
{
|
||||
return
|
||||
}
|
||||
|
||||
guard let notarization = info[ "notarization-info" ] as? NSDictionary else
|
||||
{
|
||||
return
|
||||
}
|
||||
|
||||
guard let url = notarization[ "LogFileURL" ] as? String else
|
||||
{
|
||||
return
|
||||
}
|
||||
|
||||
DispatchQueue.main.async
|
||||
{
|
||||
item.logURL = url
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
group.wait()
|
||||
|
||||
DispatchQueue.main.async
|
||||
{
|
||||
self.gettingInfo = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private func askPassword()
|
||||
{
|
||||
if self.add != nil
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2018 Jean-David Gadina - www.xs-labs.com
|
||||
* Copyright (c) 2018 DigiDNA - www.imazing.com
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -24,25 +24,37 @@
|
||||
|
||||
import Cocoa
|
||||
|
||||
@objc public class ArrayIsEmpty: ValueTransformer
|
||||
class IsEmpty: ValueTransformer
|
||||
{
|
||||
override public class func transformedValueClass() -> AnyClass
|
||||
override class func transformedValueClass() -> AnyClass
|
||||
{
|
||||
return NSNumber.self
|
||||
}
|
||||
|
||||
override public class func allowsReverseTransformation() -> Bool
|
||||
override class func allowsReverseTransformation() -> Bool
|
||||
{
|
||||
return false
|
||||
}
|
||||
|
||||
override public func transformedValue( _ value: Any? ) -> Any?
|
||||
override func transformedValue( _ value: Any? ) -> Any?
|
||||
{
|
||||
guard let array = value as? NSArray else
|
||||
if let array = value as? NSArray
|
||||
{
|
||||
return NSNumber( booleanLiteral: true )
|
||||
return array.count == 0
|
||||
}
|
||||
else if let set = value as? NSSet
|
||||
{
|
||||
return set.count == 0
|
||||
}
|
||||
else if let dictionary = value as? NSDictionary
|
||||
{
|
||||
return dictionary.count == 0
|
||||
}
|
||||
else if let string = value as? String
|
||||
{
|
||||
return string.count == 0
|
||||
}
|
||||
|
||||
return NSNumber( booleanLiteral: array.count == 0 )
|
||||
return true
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2018 Jean-David Gadina - www.xs-labs.com
|
||||
* Copyright (c) 2018 DigiDNA - www.imazing.com
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -24,25 +24,37 @@
|
||||
|
||||
import Cocoa
|
||||
|
||||
@objc public class ArrayIsNotEmpty: ValueTransformer
|
||||
class IsNotEmpty: ValueTransformer
|
||||
{
|
||||
override public class func transformedValueClass() -> AnyClass
|
||||
override class func transformedValueClass() -> AnyClass
|
||||
{
|
||||
return NSNumber.self
|
||||
}
|
||||
|
||||
override public class func allowsReverseTransformation() -> Bool
|
||||
override class func allowsReverseTransformation() -> Bool
|
||||
{
|
||||
return false
|
||||
}
|
||||
|
||||
override public func transformedValue( _ value: Any? ) -> Any?
|
||||
override func transformedValue( _ value: Any? ) -> Any?
|
||||
{
|
||||
guard let array = value as? NSArray else
|
||||
if let array = value as? NSArray
|
||||
{
|
||||
return NSNumber( booleanLiteral: false )
|
||||
return array.count > 0
|
||||
}
|
||||
else if let set = value as? NSSet
|
||||
{
|
||||
return set.count > 0
|
||||
}
|
||||
else if let dictionary = value as? NSDictionary
|
||||
{
|
||||
return dictionary.count > 0
|
||||
}
|
||||
else if let string = value as? String
|
||||
{
|
||||
return string.count > 0
|
||||
}
|
||||
|
||||
return NSNumber( booleanLiteral: array.count > 0 )
|
||||
return false
|
||||
}
|
||||
}
|
||||
@@ -82,7 +82,8 @@ class MainWindowController: NSWindowController
|
||||
return
|
||||
}
|
||||
|
||||
self.controller = controller
|
||||
self.controller = controller
|
||||
controller.view.frame = self.historyViewContainer.bounds
|
||||
|
||||
controller.view.translatesAutoresizingMaskIntoConstraints = false
|
||||
|
||||
|
||||
+5
-3
@@ -17,13 +17,15 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0.0</string>
|
||||
<string>$(MARKETING_VERSION)</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>22</string>
|
||||
<string>34</string>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
<string>public.app-category.developer-tools</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>Copyright © 2018 XS-Labs. All rights reserved.</string>
|
||||
<string>Copyright © 2020 XS-Labs. All rights reserved.</string>
|
||||
<key>NSMainNibFile</key>
|
||||
<string>MainMenu</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
|
||||
@@ -1,98 +1,99 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="17506" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14460.31"/>
|
||||
<deployment identifier="macosx"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="17506"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<customObject id="-2" userLabel="File's Owner" customClass="AboutWindowController" customModule="Notarize" customModuleProvider="target">
|
||||
<customObject id="-2" userLabel="File's Owner" customClass="AboutWindowController" customModule="Xclean" customModuleProvider="target">
|
||||
<connections>
|
||||
<outlet property="window" destination="QvC-M9-y7g" id="3uC-xA-AhB"/>
|
||||
<outlet property="window" destination="QvC-M9-y7g" id="MQd-GZ-qWp"/>
|
||||
</connections>
|
||||
</customObject>
|
||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||
<window title="About" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" id="QvC-M9-y7g">
|
||||
<window title="About Xclean" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" titlebarAppearsTransparent="YES" titleVisibility="hidden" id="QvC-M9-y7g">
|
||||
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" fullSizeContentView="YES"/>
|
||||
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
|
||||
<rect key="contentRect" x="196" y="240" width="395" height="296"/>
|
||||
<rect key="screenRect" x="0.0" y="0.0" width="1920" height="1177"/>
|
||||
<rect key="contentRect" x="196" y="240" width="277" height="168"/>
|
||||
<rect key="screenRect" x="0.0" y="0.0" width="1920" height="1175"/>
|
||||
<view key="contentView" wantsLayer="YES" id="EiT-Mj-1SZ">
|
||||
<rect key="frame" x="0.0" y="0.0" width="395" height="296"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="307" height="198"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<visualEffectView appearanceType="vibrantDark" blendingMode="behindWindow" material="windowBackground" state="followsWindowActiveState" translatesAutoresizingMaskIntoConstraints="NO" id="2na-Z2-u9Y">
|
||||
<rect key="frame" x="0.0" y="0.0" width="395" height="296"/>
|
||||
<visualEffectView blendingMode="behindWindow" material="underWindowBackground" state="followsWindowActiveState" translatesAutoresizingMaskIntoConstraints="NO" id="ls5-I3-hMR">
|
||||
<rect key="frame" x="0.0" y="0.0" width="307" height="198"/>
|
||||
<subviews>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="H8T-8E-DDN">
|
||||
<rect key="frame" x="20" y="20" width="256" height="256"/>
|
||||
<imageView wantsLayer="YES" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="bkJ-Ud-XM8">
|
||||
<rect key="frame" x="30" y="30" width="128" height="128"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="256" id="HER-vU-ej4"/>
|
||||
<constraint firstAttribute="height" constant="256" id="tEO-yL-v7f"/>
|
||||
<constraint firstAttribute="width" constant="128" id="CSW-JZ-Wa6"/>
|
||||
<constraint firstAttribute="height" constant="128" id="kJV-3v-pYD"/>
|
||||
</constraints>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyUpOrDown" image="NSApplicationIcon" id="6bs-kJ-2MD"/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyUpOrDown" image="NSApplicationIcon" id="GGX-kf-SmE"/>
|
||||
</imageView>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="YES" translatesAutoresizingMaskIntoConstraints="NO" id="eUO-Xh-gcg">
|
||||
<rect key="frame" x="282" y="176" width="95" height="24"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Label" id="n4t-G6-Fj5">
|
||||
<font key="font" metaFont="systemThin" size="20"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="-2" name="value" keyPath="version" id="9GC-rX-a5S"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zOn-oh-QdP">
|
||||
<rect key="frame" x="282" y="50" width="95" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Label" id="JEk-lW-tk0">
|
||||
<font key="font" metaFont="systemThin" size="13"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="-2" name="value" keyPath="copyright" id="j3k-9t-5tC"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="YES" translatesAutoresizingMaskIntoConstraints="NO" id="2ba-9s-ZV8">
|
||||
<rect key="frame" x="282" y="208" width="95" height="48"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Label" id="UGy-b9-cuI">
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="c3B-11-Nnn">
|
||||
<rect key="frame" x="186" y="111" width="93" height="47"/>
|
||||
<textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="Mhf-3U-WaO">
|
||||
<font key="font" metaFont="systemThin" size="40"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="-2" name="value" keyPath="name" id="OKL-6y-FGO"/>
|
||||
<binding destination="-2" name="value" keyPath="self.name" id="joW-A0-HfH"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<textField wantsLayer="YES" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="yLd-6Z-IaF">
|
||||
<rect key="frame" x="186" y="79" width="50" height="24"/>
|
||||
<textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="GPR-R9-Yud">
|
||||
<font key="font" metaFont="systemThin" size="20"/>
|
||||
<color key="textColor" name="secondaryLabelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="-2" name="value" keyPath="self.version" id="zcF-Mv-hcv"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<textField wantsLayer="YES" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="qK4-am-2Hl">
|
||||
<rect key="frame" x="186" y="40" width="36" height="16"/>
|
||||
<textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="CqC-AJ-UHI">
|
||||
<font key="font" metaFont="systemThin" size="13"/>
|
||||
<color key="textColor" name="secondaryLabelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="-2" name="value" keyPath="self.copyright" id="Q5j-jh-2rr"/>
|
||||
</connections>
|
||||
</textField>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="H8T-8E-DDN" firstAttribute="top" secondItem="2na-Z2-u9Y" secondAttribute="top" constant="20" id="3I5-PH-yU3"/>
|
||||
<constraint firstItem="zOn-oh-QdP" firstAttribute="leading" secondItem="eUO-Xh-gcg" secondAttribute="leading" id="9z8-TQ-exV"/>
|
||||
<constraint firstItem="eUO-Xh-gcg" firstAttribute="top" secondItem="2ba-9s-ZV8" secondAttribute="bottom" constant="8" id="Ab9-it-JUm"/>
|
||||
<constraint firstAttribute="trailing" secondItem="zOn-oh-QdP" secondAttribute="trailing" constant="20" id="H1w-13-zMV"/>
|
||||
<constraint firstItem="zOn-oh-QdP" firstAttribute="bottom" secondItem="H8T-8E-DDN" secondAttribute="bottom" constant="-30" id="I3a-5Y-YXv"/>
|
||||
<constraint firstItem="eUO-Xh-gcg" firstAttribute="leading" secondItem="2ba-9s-ZV8" secondAttribute="leading" id="QtV-Me-2JH"/>
|
||||
<constraint firstAttribute="trailing" secondItem="eUO-Xh-gcg" secondAttribute="trailing" constant="20" id="ZzX-cc-IvF"/>
|
||||
<constraint firstAttribute="trailing" secondItem="2ba-9s-ZV8" secondAttribute="trailing" constant="20" id="a49-qe-KTA"/>
|
||||
<constraint firstItem="2ba-9s-ZV8" firstAttribute="top" secondItem="H8T-8E-DDN" secondAttribute="top" constant="20" id="hUd-bj-u1o"/>
|
||||
<constraint firstItem="H8T-8E-DDN" firstAttribute="leading" secondItem="2na-Z2-u9Y" secondAttribute="leading" constant="20" id="qEC-HE-IWz"/>
|
||||
<constraint firstAttribute="bottom" secondItem="H8T-8E-DDN" secondAttribute="bottom" constant="20" id="sib-85-ry4"/>
|
||||
<constraint firstItem="2ba-9s-ZV8" firstAttribute="leading" secondItem="H8T-8E-DDN" secondAttribute="trailing" constant="8" id="zlY-3J-nRY"/>
|
||||
<constraint firstItem="qK4-am-2Hl" firstAttribute="bottom" secondItem="bkJ-Ud-XM8" secondAttribute="bottom" constant="-10" id="4eU-i4-CHR"/>
|
||||
<constraint firstItem="c3B-11-Nnn" firstAttribute="leading" secondItem="bkJ-Ud-XM8" secondAttribute="trailing" constant="30" id="BpG-VA-Nxl"/>
|
||||
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="yLd-6Z-IaF" secondAttribute="trailing" constant="30" id="IQu-ql-HkC"/>
|
||||
<constraint firstItem="qK4-am-2Hl" firstAttribute="leading" secondItem="c3B-11-Nnn" secondAttribute="leading" id="Yot-mk-hra"/>
|
||||
<constraint firstItem="bkJ-Ud-XM8" firstAttribute="top" secondItem="ls5-I3-hMR" secondAttribute="top" constant="40" id="bpQ-Rd-Kjd"/>
|
||||
<constraint firstItem="yLd-6Z-IaF" firstAttribute="top" secondItem="c3B-11-Nnn" secondAttribute="bottom" constant="8" id="cvA-Hq-TDd"/>
|
||||
<constraint firstItem="bkJ-Ud-XM8" firstAttribute="leading" secondItem="ls5-I3-hMR" secondAttribute="leading" constant="30" id="mLH-C3-hte"/>
|
||||
<constraint firstAttribute="bottom" secondItem="bkJ-Ud-XM8" secondAttribute="bottom" constant="30" id="nEf-eO-eJA"/>
|
||||
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="c3B-11-Nnn" secondAttribute="trailing" constant="30" id="oqv-O4-gKi"/>
|
||||
<constraint firstItem="c3B-11-Nnn" firstAttribute="top" secondItem="bkJ-Ud-XM8" secondAttribute="top" id="ryd-fl-aVO"/>
|
||||
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="qK4-am-2Hl" secondAttribute="trailing" constant="30" id="xUl-C7-IqA"/>
|
||||
<constraint firstItem="yLd-6Z-IaF" firstAttribute="leading" secondItem="c3B-11-Nnn" secondAttribute="leading" id="zma-HZ-8Vb"/>
|
||||
</constraints>
|
||||
</visualEffectView>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="2na-Z2-u9Y" firstAttribute="width" secondItem="EiT-Mj-1SZ" secondAttribute="width" id="4dA-8n-C7v"/>
|
||||
<constraint firstItem="2na-Z2-u9Y" firstAttribute="centerY" secondItem="EiT-Mj-1SZ" secondAttribute="centerY" id="O55-qt-7R1"/>
|
||||
<constraint firstItem="2na-Z2-u9Y" firstAttribute="centerX" secondItem="EiT-Mj-1SZ" secondAttribute="centerX" id="dSe-Gv-BQM"/>
|
||||
<constraint firstItem="2na-Z2-u9Y" firstAttribute="height" secondItem="EiT-Mj-1SZ" secondAttribute="height" id="hu6-Xm-VtI"/>
|
||||
<constraint firstItem="ls5-I3-hMR" firstAttribute="top" secondItem="EiT-Mj-1SZ" secondAttribute="top" id="O6b-Af-UWg"/>
|
||||
<constraint firstItem="ls5-I3-hMR" firstAttribute="leading" secondItem="EiT-Mj-1SZ" secondAttribute="leading" id="OTa-DV-nY1"/>
|
||||
<constraint firstAttribute="trailing" secondItem="ls5-I3-hMR" secondAttribute="trailing" id="S6O-Rs-Cnd"/>
|
||||
<constraint firstAttribute="bottom" secondItem="ls5-I3-hMR" secondAttribute="bottom" id="hL3-Sx-v9S"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<point key="canvasLocation" x="-53.5" y="-162"/>
|
||||
<point key="canvasLocation" x="37.5" y="147"/>
|
||||
</window>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="NSApplicationIcon" width="128" height="128"/>
|
||||
<image name="NSApplicationIcon" width="32" height="32"/>
|
||||
</resources>
|
||||
</document>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="17506" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14460.31"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="17506"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
@@ -14,20 +14,20 @@
|
||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||
<customView id="c22-O7-iKe">
|
||||
<rect key="frame" x="0.0" y="0.0" width="791" height="589"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="786" height="554"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<subviews>
|
||||
<customView translatesAutoresizingMaskIntoConstraints="NO" id="y0e-GG-izO">
|
||||
<rect key="frame" x="0.0" y="0.0" width="791" height="589"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="786" height="554"/>
|
||||
<subviews>
|
||||
<progressIndicator wantsLayer="YES" horizontalHuggingPriority="750" verticalHuggingPriority="750" maxValue="100" bezeled="NO" indeterminate="YES" style="spinning" translatesAutoresizingMaskIntoConstraints="NO" id="arN-Pa-Zux">
|
||||
<rect key="frame" x="380" y="279" width="32" height="32"/>
|
||||
<rect key="frame" x="377" y="261" width="32" height="32"/>
|
||||
<connections>
|
||||
<binding destination="-2" name="animate" keyPath="loading" id="4Sy-Cj-3UZ"/>
|
||||
</connections>
|
||||
</progressIndicator>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Ihm-Ui-xRh">
|
||||
<rect key="frame" x="290" y="242" width="211" height="17"/>
|
||||
<rect key="frame" x="288" y="225" width="211" height="16"/>
|
||||
<textFieldCell key="cell" lineBreakMode="clipping" title="Getting latest data... Please wait..." id="S2v-Df-W0w">
|
||||
<font key="font" usesAppearanceFont="YES"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
@@ -49,15 +49,66 @@
|
||||
</binding>
|
||||
</connections>
|
||||
</customView>
|
||||
<customView translatesAutoresizingMaskIntoConstraints="NO" id="4gW-Wz-KbZ">
|
||||
<rect key="frame" x="0.0" y="0.0" width="786" height="554"/>
|
||||
<subviews>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="3Np-5q-xRo">
|
||||
<rect key="frame" x="284" y="425" width="218" height="35"/>
|
||||
<textFieldCell key="cell" lineBreakMode="clipping" title="No Data Available" id="WDl-1p-B7p">
|
||||
<font key="font" metaFont="systemThin" size="30"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="qKQ-Pd-1H7">
|
||||
<rect key="frame" x="265" y="149" width="256" height="256"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="256" id="EFm-8K-mFN"/>
|
||||
<constraint firstAttribute="width" constant="256" id="dy3-Ix-Ru7"/>
|
||||
</constraints>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyUpOrDown" image="NSApplicationIcon" id="gLF-aJ-vlK"/>
|
||||
</imageView>
|
||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="4GV-g7-iLV">
|
||||
<rect key="frame" x="344" y="102" width="98" height="32"/>
|
||||
<buttonCell key="cell" type="push" title="Refresh" bezelStyle="rounded" image="NSRefreshFreestandingTemplate" imagePosition="leading" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="8Xy-jP-dKA">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="refresh:" target="-2" id="wFY-oR-M6L"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="3Np-5q-xRo" firstAttribute="centerX" secondItem="qKQ-Pd-1H7" secondAttribute="centerX" id="FD2-jE-SGr"/>
|
||||
<constraint firstItem="4GV-g7-iLV" firstAttribute="top" secondItem="qKQ-Pd-1H7" secondAttribute="bottom" constant="20" id="HSw-gS-95R"/>
|
||||
<constraint firstItem="qKQ-Pd-1H7" firstAttribute="centerX" secondItem="4gW-Wz-KbZ" secondAttribute="centerX" id="JCY-w7-n0I"/>
|
||||
<constraint firstItem="qKQ-Pd-1H7" firstAttribute="centerY" secondItem="4gW-Wz-KbZ" secondAttribute="centerY" id="Mgn-xM-4uG"/>
|
||||
<constraint firstItem="qKQ-Pd-1H7" firstAttribute="top" secondItem="3Np-5q-xRo" secondAttribute="bottom" constant="20" id="aaw-ST-kxf"/>
|
||||
<constraint firstItem="4GV-g7-iLV" firstAttribute="centerX" secondItem="qKQ-Pd-1H7" secondAttribute="centerX" id="vw9-CS-2lQ"/>
|
||||
</constraints>
|
||||
<connections>
|
||||
<binding destination="-2" name="hidden" keyPath="loading" id="xYW-br-j0Z"/>
|
||||
<binding destination="-2" name="hidden2" keyPath="self.items" previousBinding="xYW-br-j0Z" id="VTf-UQ-DhU">
|
||||
<dictionary key="options">
|
||||
<integer key="NSMultipleValuesPlaceholder" value="-1"/>
|
||||
<integer key="NSNoSelectionPlaceholder" value="-1"/>
|
||||
<integer key="NSNotApplicablePlaceholder" value="-1"/>
|
||||
<integer key="NSNullPlaceholder" value="-1"/>
|
||||
<string key="NSValueTransformerName">Notarize.IsNotEmpty</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
</connections>
|
||||
</customView>
|
||||
<scrollView borderType="none" autohidesScrollers="YES" horizontalLineScroll="32" horizontalPageScroll="10" verticalLineScroll="32" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YfE-Rw-vXm">
|
||||
<rect key="frame" x="0.0" y="0.0" width="791" height="589"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="786" height="554"/>
|
||||
<clipView key="contentView" drawsBackground="NO" copiesOnScroll="NO" id="jMg-EM-3u0">
|
||||
<rect key="frame" x="0.0" y="0.0" width="791" height="589"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="786" height="554"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" columnSelection="YES" multipleSelection="NO" autosaveColumns="NO" rowHeight="30" rowSizeStyle="automatic" headerView="tru-nL-4Nv" viewBased="YES" id="oOe-qW-nZ3">
|
||||
<rect key="frame" x="0.0" y="0.0" width="791" height="564"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="786" height="529"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<size key="intercellSpacing" width="3" height="2"/>
|
||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<tableViewGridLines key="gridStyleMask" horizontal="YES"/>
|
||||
@@ -65,7 +116,6 @@
|
||||
<tableColumns>
|
||||
<tableColumn width="275" minWidth="40" maxWidth="1000" id="Eln-m9-G0Q">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" title="UUID">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||
</tableHeaderCell>
|
||||
@@ -78,7 +128,7 @@
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="9Vq-2S-COa">
|
||||
<rect key="frame" x="1" y="1" width="275" height="30"/>
|
||||
<rect key="frame" x="11" y="1" width="280" height="30"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="B57-Ql-AvZ">
|
||||
@@ -108,9 +158,9 @@
|
||||
</connections>
|
||||
</imageView>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="Ab2-iB-rRT">
|
||||
<rect key="frame" x="24" y="7" width="248" height="17"/>
|
||||
<rect key="frame" x="24" y="9" width="253" height="13"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" selectable="YES" sendsActionOnEndEditing="YES" title="Table View Cell" id="Wh1-g4-y03">
|
||||
<font key="font" metaFont="fixedUser" size="11"/>
|
||||
<font key="font" usesAppearanceFont="YES"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
@@ -136,7 +186,6 @@
|
||||
</tableColumn>
|
||||
<tableColumn width="150" minWidth="40" maxWidth="1000" id="A29-w4-mOr">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" title="Date">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||
</tableHeaderCell>
|
||||
@@ -149,7 +198,7 @@
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="0Op-pU-bvM">
|
||||
<rect key="frame" x="279" y="1" width="150" height="30"/>
|
||||
<rect key="frame" x="294" y="1" width="150" height="30"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="09o-ka-h6V">
|
||||
@@ -178,7 +227,6 @@
|
||||
</tableColumn>
|
||||
<tableColumn width="50" minWidth="40" maxWidth="1000" id="mub-zn-Ehu">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" title="Status">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||
</tableHeaderCell>
|
||||
@@ -191,7 +239,7 @@
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="mIa-xm-IaL">
|
||||
<rect key="frame" x="432" y="1" width="50" height="30"/>
|
||||
<rect key="frame" x="447" y="1" width="50" height="30"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="rTh-gx-u7f">
|
||||
@@ -217,9 +265,8 @@
|
||||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
</tableColumn>
|
||||
<tableColumn width="304" minWidth="40" maxWidth="1000" id="4kz-5j-cdK">
|
||||
<tableColumn width="270" minWidth="40" maxWidth="1000" id="4kz-5j-cdK">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" title="Message">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||
</tableHeaderCell>
|
||||
@@ -232,11 +279,11 @@
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="a0C-v9-jpd">
|
||||
<rect key="frame" x="485" y="1" width="304" height="30"/>
|
||||
<rect key="frame" x="500" y="1" width="274" height="30"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="Htf-9O-HfB">
|
||||
<rect key="frame" x="0.0" y="8" width="304" height="14"/>
|
||||
<rect key="frame" x="0.0" y="8" width="240" height="14"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" selectable="YES" sendsActionOnEndEditing="YES" title="Table View Cell" id="qAC-Pe-dzF">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
@@ -246,11 +293,41 @@
|
||||
<binding destination="a0C-v9-jpd" name="value" keyPath="objectValue.message" id="imO-yf-BBq"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<button translatesAutoresizingMaskIntoConstraints="NO" id="9LR-mA-ejX">
|
||||
<rect key="frame" x="248" y="5" width="16.5" height="20"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="16" id="oce-eh-do7"/>
|
||||
<constraint firstAttribute="height" constant="16" id="pVl-48-3rY"/>
|
||||
</constraints>
|
||||
<buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="NSQuickLookTemplate" imagePosition="only" alignment="center" imageScaling="proportionallyUpOrDown" inset="2" id="6Rt-0Q-4Jj">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="a0C-v9-jpd" name="argument" keyPath="objectValue" id="SF1-A4-wnX">
|
||||
<dictionary key="options">
|
||||
<string key="NSSelectorName">showInfo:</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="a0C-v9-jpd" name="hidden" keyPath="objectValue.logURL" id="QJW-MN-wYd">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">NSIsNil</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="-2" name="target" keyPath="self" previousBinding="SF1-A4-wnX" id="CLU-f4-FB0">
|
||||
<dictionary key="options">
|
||||
<string key="NSSelectorName">showInfo:</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstAttribute="trailing" secondItem="9LR-mA-ejX" secondAttribute="trailing" constant="10" id="3Iv-i9-wuK"/>
|
||||
<constraint firstItem="9LR-mA-ejX" firstAttribute="centerY" secondItem="Htf-9O-HfB" secondAttribute="centerY" id="IAD-cp-5Xd"/>
|
||||
<constraint firstItem="Htf-9O-HfB" firstAttribute="centerY" secondItem="a0C-v9-jpd" secondAttribute="centerY" id="KYd-sb-upO"/>
|
||||
<constraint firstAttribute="trailing" secondItem="Htf-9O-HfB" secondAttribute="trailing" constant="2" id="NVl-PL-5ph"/>
|
||||
<constraint firstItem="Htf-9O-HfB" firstAttribute="leading" secondItem="a0C-v9-jpd" secondAttribute="leading" constant="2" id="kM0-Oe-QY0"/>
|
||||
<constraint firstItem="9LR-mA-ejX" firstAttribute="leading" secondItem="Htf-9O-HfB" secondAttribute="trailing" constant="10" id="x9i-0v-pM7"/>
|
||||
</constraints>
|
||||
<connections>
|
||||
<outlet property="textField" destination="Htf-9O-HfB" id="smr-M1-6KR"/>
|
||||
@@ -263,12 +340,14 @@
|
||||
<binding destination="scX-MD-094" name="content" keyPath="arrangedObjects" id="o6w-dp-EnJ"/>
|
||||
<binding destination="scX-MD-094" name="selectionIndexes" keyPath="selectionIndexes" previousBinding="o6w-dp-EnJ" id="cT6-ut-G5b"/>
|
||||
<binding destination="scX-MD-094" name="sortDescriptors" keyPath="sortDescriptors" previousBinding="cT6-ut-G5b" id="LVB-12-aeT"/>
|
||||
<outlet property="dataSource" destination="-2" id="9v3-Am-50G"/>
|
||||
<outlet property="delegate" destination="-2" id="gkG-z5-vqD"/>
|
||||
</connections>
|
||||
</tableView>
|
||||
</subviews>
|
||||
</clipView>
|
||||
<scroller key="horizontalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="qkh-yU-UA0">
|
||||
<rect key="frame" x="0.0" y="198" width="676" height="16"/>
|
||||
<rect key="frame" x="0.0" y="548" width="786" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
<scroller key="verticalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="NO" id="x2G-CM-hRQ">
|
||||
@@ -276,99 +355,49 @@
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
<tableHeaderView key="headerView" wantsLayer="YES" id="tru-nL-4Nv">
|
||||
<rect key="frame" x="0.0" y="0.0" width="791" height="25"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="786" height="25"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</tableHeaderView>
|
||||
<connections>
|
||||
<binding destination="-2" name="hidden" keyPath="loading" id="DZt-gS-AT9"/>
|
||||
<binding destination="-2" name="hidden2" keyPath="self.items" previousBinding="DZt-gS-AT9" id="7SZ-ux-Gh8">
|
||||
<binding destination="-2" name="hidden2" keyPath="self.items" previousBinding="DZt-gS-AT9" id="lEZ-NG-lkf">
|
||||
<dictionary key="options">
|
||||
<integer key="NSMultipleValuesPlaceholder" value="-1"/>
|
||||
<integer key="NSNoSelectionPlaceholder" value="-1"/>
|
||||
<integer key="NSNotApplicablePlaceholder" value="-1"/>
|
||||
<integer key="NSNullPlaceholder" value="-1"/>
|
||||
<string key="NSValueTransformerName">Notarize.ArrayIsEmpty</string>
|
||||
<string key="NSValueTransformerName">Notarize.IsEmpty</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
</connections>
|
||||
</scrollView>
|
||||
<customView translatesAutoresizingMaskIntoConstraints="NO" id="4gW-Wz-KbZ">
|
||||
<rect key="frame" x="0.0" y="0.0" width="791" height="589"/>
|
||||
<subviews>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="3Np-5q-xRo">
|
||||
<rect key="frame" x="287" y="443" width="217" height="36"/>
|
||||
<textFieldCell key="cell" lineBreakMode="clipping" title="No Data Available" id="WDl-1p-B7p">
|
||||
<font key="font" metaFont="systemThin" size="30"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="qKQ-Pd-1H7">
|
||||
<rect key="frame" x="268" y="167" width="256" height="256"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="256" id="EFm-8K-mFN"/>
|
||||
<constraint firstAttribute="width" constant="256" id="dy3-Ix-Ru7"/>
|
||||
</constraints>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyUpOrDown" image="NSApplicationIcon" id="gLF-aJ-vlK"/>
|
||||
</imageView>
|
||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="4GV-g7-iLV">
|
||||
<rect key="frame" x="342" y="119" width="107" height="32"/>
|
||||
<buttonCell key="cell" type="push" title="Refresh" bezelStyle="rounded" image="NSRefreshFreestandingTemplate" imagePosition="leading" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="8Xy-jP-dKA">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="refresh:" target="-2" id="wFY-oR-M6L"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="3Np-5q-xRo" firstAttribute="centerX" secondItem="qKQ-Pd-1H7" secondAttribute="centerX" id="FD2-jE-SGr"/>
|
||||
<constraint firstItem="4GV-g7-iLV" firstAttribute="top" secondItem="qKQ-Pd-1H7" secondAttribute="bottom" constant="20" id="HSw-gS-95R"/>
|
||||
<constraint firstItem="qKQ-Pd-1H7" firstAttribute="centerX" secondItem="4gW-Wz-KbZ" secondAttribute="centerX" id="JCY-w7-n0I"/>
|
||||
<constraint firstItem="qKQ-Pd-1H7" firstAttribute="centerY" secondItem="4gW-Wz-KbZ" secondAttribute="centerY" id="Mgn-xM-4uG"/>
|
||||
<constraint firstItem="qKQ-Pd-1H7" firstAttribute="top" secondItem="3Np-5q-xRo" secondAttribute="bottom" constant="20" id="aaw-ST-kxf"/>
|
||||
<constraint firstItem="4GV-g7-iLV" firstAttribute="centerX" secondItem="qKQ-Pd-1H7" secondAttribute="centerX" id="vw9-CS-2lQ"/>
|
||||
</constraints>
|
||||
<connections>
|
||||
<binding destination="-2" name="hidden" keyPath="loading" id="xYW-br-j0Z"/>
|
||||
<binding destination="-2" name="hidden2" keyPath="self.items" previousBinding="xYW-br-j0Z" id="P4I-Ea-MOw">
|
||||
<dictionary key="options">
|
||||
<integer key="NSMultipleValuesPlaceholder" value="-1"/>
|
||||
<integer key="NSNoSelectionPlaceholder" value="-1"/>
|
||||
<integer key="NSNotApplicablePlaceholder" value="-1"/>
|
||||
<integer key="NSNullPlaceholder" value="-1"/>
|
||||
<string key="NSValueTransformerName">Notarize.ArrayIsNotEmpty</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
</connections>
|
||||
</customView>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="YfE-Rw-vXm" firstAttribute="centerY" secondItem="c22-O7-iKe" secondAttribute="centerY" id="2AA-KP-qpA"/>
|
||||
<constraint firstItem="y0e-GG-izO" firstAttribute="height" secondItem="c22-O7-iKe" secondAttribute="height" id="85b-vY-aAN"/>
|
||||
<constraint firstItem="YfE-Rw-vXm" firstAttribute="height" secondItem="c22-O7-iKe" secondAttribute="height" id="D9R-3s-7Er"/>
|
||||
<constraint firstAttribute="bottom" secondItem="YfE-Rw-vXm" secondAttribute="bottom" id="92V-pH-tmB"/>
|
||||
<constraint firstItem="4gW-Wz-KbZ" firstAttribute="centerX" secondItem="c22-O7-iKe" secondAttribute="centerX" id="JNR-aR-bQH"/>
|
||||
<constraint firstItem="YfE-Rw-vXm" firstAttribute="width" secondItem="c22-O7-iKe" secondAttribute="width" id="RPG-qq-pLL"/>
|
||||
<constraint firstItem="4gW-Wz-KbZ" firstAttribute="width" secondItem="c22-O7-iKe" secondAttribute="width" id="aWP-4w-t98"/>
|
||||
<constraint firstItem="4gW-Wz-KbZ" firstAttribute="centerY" secondItem="c22-O7-iKe" secondAttribute="centerY" id="bsR-hV-zQN"/>
|
||||
<constraint firstItem="4gW-Wz-KbZ" firstAttribute="height" secondItem="c22-O7-iKe" secondAttribute="height" id="fOP-mC-eEj"/>
|
||||
<constraint firstItem="y0e-GG-izO" firstAttribute="centerY" secondItem="c22-O7-iKe" secondAttribute="centerY" id="jBd-TP-tQr"/>
|
||||
<constraint firstAttribute="trailing" secondItem="YfE-Rw-vXm" secondAttribute="trailing" id="kTD-DU-5Qq"/>
|
||||
<constraint firstItem="y0e-GG-izO" firstAttribute="centerX" secondItem="c22-O7-iKe" secondAttribute="centerX" id="q1m-8K-XeG"/>
|
||||
<constraint firstItem="YfE-Rw-vXm" firstAttribute="centerX" secondItem="c22-O7-iKe" secondAttribute="centerX" id="wGP-sd-B5Z"/>
|
||||
<constraint firstItem="YfE-Rw-vXm" firstAttribute="leading" secondItem="c22-O7-iKe" secondAttribute="leading" id="sxE-w8-Ief"/>
|
||||
<constraint firstItem="YfE-Rw-vXm" firstAttribute="top" secondItem="c22-O7-iKe" secondAttribute="top" id="u9h-xa-DNR"/>
|
||||
<constraint firstItem="y0e-GG-izO" firstAttribute="width" secondItem="c22-O7-iKe" secondAttribute="width" id="zd5-MY-JRk"/>
|
||||
</constraints>
|
||||
<point key="canvasLocation" x="75.5" y="79.5"/>
|
||||
<point key="canvasLocation" x="75" y="-224"/>
|
||||
</customView>
|
||||
<arrayController selectsInsertedObjects="NO" avoidsEmptySelection="NO" automaticallyRearrangesObjects="YES" id="scX-MD-094">
|
||||
<connections>
|
||||
<binding destination="-2" name="contentArray" keyPath="self.items" id="0Hr-36-gVJ"/>
|
||||
<binding destination="-2" name="contentSet" keyPath="self.items" id="rB8-Xq-XDt"/>
|
||||
</connections>
|
||||
</arrayController>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="NSApplicationIcon" width="128" height="128"/>
|
||||
<image name="NSRefreshFreestandingTemplate" width="14" height="14"/>
|
||||
<image name="NSApplicationIcon" width="32" height="32"/>
|
||||
<image name="NSQuickLookTemplate" width="21" height="13"/>
|
||||
<image name="NSRefreshFreestandingTemplate" width="15" height="15"/>
|
||||
<image name="NSStatusAvailable" width="16" height="16"/>
|
||||
<image name="NSStatusUnavailable" width="16" height="16"/>
|
||||
</resources>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="17506" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14460.31"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="17506"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
@@ -14,11 +14,11 @@
|
||||
</customObject>
|
||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||
<window title="Notarize" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" frameAutosaveName="MainWindow" animationBehavior="default" titlebarAppearsTransparent="YES" titleVisibility="hidden" id="QvC-M9-y7g">
|
||||
<window title="Notarize" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" frameAutosaveName="MainWindow" animationBehavior="default" id="QvC-M9-y7g">
|
||||
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES" fullSizeContentView="YES"/>
|
||||
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
|
||||
<rect key="contentRect" x="196" y="240" width="1000" height="500"/>
|
||||
<rect key="screenRect" x="0.0" y="0.0" width="1920" height="1177"/>
|
||||
<rect key="screenRect" x="0.0" y="0.0" width="1920" height="1175"/>
|
||||
<value key="minSize" type="size" width="1000" height="500"/>
|
||||
<view key="contentView" wantsLayer="YES" id="EiT-Mj-1SZ">
|
||||
<rect key="frame" x="0.0" y="0.0" width="1000" height="500"/>
|
||||
@@ -28,14 +28,14 @@
|
||||
<rect key="frame" x="0.0" y="0.0" width="1000" height="500"/>
|
||||
<subviews>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="cER-yh-PyD">
|
||||
<rect key="frame" x="374" y="398" width="252" height="36"/>
|
||||
<rect key="frame" x="374" y="398" width="252" height="35"/>
|
||||
<textFieldCell key="cell" lineBreakMode="clipping" title="altool is not available" id="W46-Qb-BLg">
|
||||
<font key="font" metaFont="systemThin" size="30"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="osz-bR-rMP">
|
||||
<imageView wantsLayer="YES" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="osz-bR-rMP">
|
||||
<rect key="frame" x="372" y="122" width="256" height="256"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="256" id="lVq-xd-SDe"/>
|
||||
@@ -44,15 +44,15 @@
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyUpOrDown" image="NSApplicationIcon" id="pth-35-ZJs"/>
|
||||
</imageView>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="a5i-eI-2yO">
|
||||
<rect key="frame" x="343" y="85" width="315" height="17"/>
|
||||
<rect key="frame" x="346" y="86" width="308" height="16"/>
|
||||
<textFieldCell key="cell" lineBreakMode="clipping" title="Please install latest version of Xcode and try again..." id="jEq-R4-Isq">
|
||||
<font key="font" metaFont="systemThin" size="13"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="caJ-Is-8xp">
|
||||
<rect key="frame" x="467" y="37" width="66" height="32"/>
|
||||
<button wantsLayer="YES" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="caJ-Is-8xp">
|
||||
<rect key="frame" x="470" y="39" width="60" height="32"/>
|
||||
<buttonCell key="cell" type="push" title="Quit" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="Gp0-Bb-tZO">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
@@ -80,28 +80,27 @@
|
||||
<rect key="frame" x="0.0" y="0.0" width="1000" height="500"/>
|
||||
<subviews>
|
||||
<customView id="pXY-N9-ZRU">
|
||||
<rect key="frame" x="0.0" y="0.0" width="200" height="500"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="220" height="500"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<visualEffectView appearanceType="vibrantDark" blendingMode="behindWindow" material="underWindowBackground" state="followsWindowActiveState" translatesAutoresizingMaskIntoConstraints="NO" id="njS-QH-WfR">
|
||||
<rect key="frame" x="0.0" y="0.0" width="200" height="500"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="220" height="500"/>
|
||||
<subviews>
|
||||
<scrollView borderType="none" autohidesScrollers="YES" horizontalLineScroll="44" horizontalPageScroll="10" verticalLineScroll="44" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6s6-Zi-U9w">
|
||||
<rect key="frame" x="0.0" y="0.0" width="200" height="470"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="220" height="470"/>
|
||||
<clipView key="contentView" drawsBackground="NO" id="Qpm-Cm-Fke">
|
||||
<rect key="frame" x="0.0" y="0.0" width="200" height="470"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="220" height="470"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" columnReordering="NO" columnSelection="YES" columnResizing="NO" multipleSelection="NO" autosaveColumns="NO" rowHeight="42" rowSizeStyle="automatic" viewBased="YES" id="13n-Bw-pPy">
|
||||
<rect key="frame" x="0.0" y="0.0" width="200" height="470"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="220" height="470"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<size key="intercellSpacing" width="3" height="2"/>
|
||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
|
||||
<tableColumns>
|
||||
<tableColumn width="197" minWidth="40" maxWidth="1000" id="dGh-q6-bLv">
|
||||
<tableColumn width="188" minWidth="40" maxWidth="1000" id="dGh-q6-bLv">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||
</tableHeaderCell>
|
||||
@@ -113,10 +112,10 @@
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="HYN-0l-Rb9">
|
||||
<rect key="frame" x="1" y="1" width="197" height="42"/>
|
||||
<rect key="frame" x="11" y="1" width="197" height="42"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="o1R-Ox-0Av">
|
||||
<imageView wantsLayer="YES" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="o1R-Ox-0Av">
|
||||
<rect key="frame" x="5" y="5" width="32" height="32"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="32" id="dm3-qa-Fho"/>
|
||||
@@ -125,7 +124,7 @@
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyUpOrDown" image="Accounts" id="wMV-10-rc2"/>
|
||||
</imageView>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="clD-pW-mXY">
|
||||
<rect key="frame" x="40" y="13" width="133" height="17"/>
|
||||
<rect key="frame" x="40" y="13" width="133" height="16"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="IdH-II-0F8">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
@@ -135,7 +134,7 @@
|
||||
<binding destination="HYN-0l-Rb9" name="value" keyPath="objectValue.username" id="R7L-U5-8iz"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="vVa-vh-gr4">
|
||||
<imageView wantsLayer="YES" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="vVa-vh-gr4">
|
||||
<rect key="frame" x="176" y="13" width="16" height="16"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="16" id="F9F-TH-YUP"/>
|
||||
@@ -185,8 +184,8 @@
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
</scrollView>
|
||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="KHT-Hm-7By">
|
||||
<rect key="frame" x="162" y="-1" width="19" height="21"/>
|
||||
<button wantsLayer="YES" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="KHT-Hm-7By">
|
||||
<rect key="frame" x="182" y="-1" width="19" height="21"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="19" id="EcL-XK-5sH"/>
|
||||
<constraint firstAttribute="width" constant="19" id="xln-pD-rc5"/>
|
||||
@@ -199,8 +198,8 @@
|
||||
<action selector="addAccount:" target="-2" id="VfW-DT-J3H"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="DSc-zQ-Ozj">
|
||||
<rect key="frame" x="181" y="-1" width="19" height="21"/>
|
||||
<button wantsLayer="YES" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="DSc-zQ-Ozj">
|
||||
<rect key="frame" x="201" y="-1" width="19" height="21"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="19" id="UOY-oY-XMH"/>
|
||||
<constraint firstAttribute="width" constant="19" id="huj-mW-syx"/>
|
||||
@@ -235,11 +234,11 @@
|
||||
</constraints>
|
||||
</customView>
|
||||
<customView id="rtG-3L-X4C">
|
||||
<rect key="frame" x="201" y="0.0" width="799" height="500"/>
|
||||
<rect key="frame" x="221" y="0.0" width="779" height="500"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="LaH-3W-s0y">
|
||||
<rect key="frame" x="272" y="122" width="256" height="256"/>
|
||||
<rect key="frame" x="262" y="122" width="256" height="256"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="256" id="30m-Zb-xZi"/>
|
||||
<constraint firstAttribute="height" constant="256" id="xSA-4x-iZN"/>
|
||||
@@ -254,7 +253,7 @@
|
||||
</connections>
|
||||
</imageView>
|
||||
<customView translatesAutoresizingMaskIntoConstraints="NO" id="EvW-Vu-3hB">
|
||||
<rect key="frame" x="0.0" y="0.0" width="799" height="500"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="779" height="500"/>
|
||||
<connections>
|
||||
<binding destination="-2" name="hidden" keyPath="self.controller" id="2yG-pe-Lq0">
|
||||
<dictionary key="options">
|
||||
@@ -309,9 +308,9 @@
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="Accounts" width="512" height="512"/>
|
||||
<image name="NSAddTemplate" width="11" height="11"/>
|
||||
<image name="NSApplicationIcon" width="128" height="128"/>
|
||||
<image name="NSRemoveTemplate" width="11" height="11"/>
|
||||
<image name="NSAddTemplate" width="14" height="13"/>
|
||||
<image name="NSApplicationIcon" width="32" height="32"/>
|
||||
<image name="NSRemoveTemplate" width="14" height="4"/>
|
||||
<image name="NSStatusAvailable" width="16" height="16"/>
|
||||
</resources>
|
||||
</document>
|
||||
|
||||
Binary file not shown.
@@ -12,7 +12,7 @@ Notarize
|
||||
|
||||
### About
|
||||
|
||||
Notarization status monitoring tool for macOS, supprting multiple developer accounts.
|
||||
Notarization status monitoring tool for macOS, supporting multiple developer accounts.
|
||||
|
||||

|
||||
|
||||
|
||||
+1
-1
Submodule Submodules/GitHubUpdates updated: 0567ebdc56...aa498b2e60
+1
-1
Submodule Submodules/xcconfig updated: 070b41109d...2759045e0b
Reference in New Issue
Block a user