Merge branch 'master' into 10.10

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
This commit is contained in:
Oleg Krupnov 2015-07-17 12:18:06 +03:00
parent 07f848c379
commit 4643fd9d71
6 changed files with 447 additions and 172 deletions

View File

@ -65,6 +65,7 @@ static DFSystemProfileDataType _systemProfileDataTypes = DFSystemProfileData_All
// system profile controls
@property (nonatomic, assign) IBOutlet NSView* systemProfileContainer;
@property (nonatomic, assign) IBOutlet NSButton* includeSystemProfileCheckBox;
@property (nonatomic, assign) IBOutlet NSButton* seeDetailsButton;
// email controls
@property (nonatomic, assign) IBOutlet NSButton* includeEmailCheckBox;
@ -103,6 +104,7 @@ static DFSystemProfileDataType _systemProfileDataTypes = DFSystemProfileData_All
BOOL _isSendingReport;
BOOL _isFetchingSystemProfile;
NSRect _emailBounceIconSavedFrame;
NSPopover* _detailsPopover;
}
//-------------------------------------------------------------------------------------------------
@ -122,6 +124,7 @@ static DFSystemProfileDataType _systemProfileDataTypes = DFSystemProfileData_All
- (void)dealloc
{
[self cancelAllPendingStuff];
[_detailsPopover release];
[super dealloc];
}
@ -411,11 +414,19 @@ static DFSystemProfileDataType _systemProfileDataTypes = DFSystemProfileData_All
//-------------------------------------------------------------------------------------------------
- (IBAction)showDetails:(id)sender
{
if (!_detailsWindow.isVisible)
{
[_detailsWindow center];
}
[_detailsWindow makeKeyAndOrderFront:self];
if (_detailsPopover == nil)
{
_detailsPopover = [[NSPopover alloc] init];
_detailsPopover.behavior = NSPopoverBehaviorTransient;
NSViewController* detailsPopoverController = [[[NSViewController alloc] init] autorelease];
// TODO: replace window with view in xib, when all locales will be updated
detailsPopoverController.view = _detailsWindow.contentView;
_detailsPopover.contentViewController = detailsPopoverController;
}
[_detailsPopover showRelativeToRect:_seeDetailsButton.bounds
ofView:_seeDetailsButton
preferredEdge:NSMinYEdge];
}
@ -716,7 +727,6 @@ static DFSystemProfileDataType _systemProfileDataTypes = DFSystemProfileData_All
_systemProfileFetcher = nil;
_isFetchingSystemProfile = NO;
self.systemProfile = nil;
[_detailsWindow orderOut:self];
[self updateProgressMode];
}
@ -806,7 +816,6 @@ static DFSystemProfileDataType _systemProfileDataTypes = DFSystemProfileData_All
{
[self cancelAllPendingStuff];
[self.window orderOut:self];
[_detailsWindow orderOut:self];
[_singleton release];
_singleton = nil;
}

View File

@ -6,32 +6,66 @@
#import <Cocoa/Cocoa.h>
//-------------------------------------------------------------------------------------------------
// Kinds of data to retrieve from system profile
// Kinds of data to retrieve from system_profiler tool
// Note: there can be more data types depending on the OS X version, use system_profiler -listDataTypes to list all
typedef enum : UInt64
{
DFSystemProfileData_None = 0,
DFSystemProfileData_Audio = 1L << 0,
DFSystemProfileData_AudioBuiltIn = 1L << 1,
DFSystemProfileData_Bluetooth = 1L << 2,
DFSystemProfileData_CardReader = 1L << 3,
DFSystemProfileData_Diagnostics = 1L << 4,
DFSystemProfileData_DiscBurning = 1L << 5,
DFSystemProfileData_EthernetCards = 1L << 6,
DFSystemProfileData_FireWire = 1L << 7,
DFSystemProfileData_GraphicsDisplays = 1L << 8,
DFSystemProfileData_Hardware = 1L << 9,
DFSystemProfileData_Memory = 1L << 10,
DFSystemProfileData_Network = 1L << 11,
DFSystemProfileData_PrinterSoftware = 1L << 12,
DFSystemProfileData_Printers = 1L << 13,
DFSystemProfileData_SerialATA = 1L << 14,
DFSystemProfileData_Software = 1L << 15,
DFSystemProfileData_Thunderbolt = 1L << 16,
DFSystemProfileData_USB = 1L << 17,
DFSystemProfileData_WiFi = 1L << 18,
DFSystemProfileData_ATA = 1L << 19,
DFSystemProfileData_All = 0xFFFFFFFFFFFFFFFF,
DFSystemProfileData_All = 0,
DFSystemProfileData_AirPort = 1L << 0, // SPAirPortDataType
DFSystemProfileData_Applications = 1L << 1, // SPApplicationsDataType
DFSystemProfileData_Audio = 1L << 2, // SPAudioDataType
DFSystemProfileData_Bluetooth = 1L << 3, // SPBluetoothDataType
DFSystemProfileData_Camera = 1L << 4, // SPCameraDataType
DFSystemProfileData_CardReader = 1L << 5, // SPCardReaderDataType
DFSystemProfileData_Component = 1L << 6, // SPComponentDataType
DFSystemProfileData_ConfigurationProfile = 1L << 7, // SPConfigurationProfileDataType
DFSystemProfileData_DeveloperTools = 1L << 8, // SPDeveloperToolsDataType
DFSystemProfileData_Diagnostics = 1L << 9, // SPDiagnosticsDataType
DFSystemProfileData_DisabledSoftware = 1L << 10, // SPDisabledSoftwareDataType
DFSystemProfileData_DiscBurning = 1L << 11, // SPDiscBurningDataType
DFSystemProfileData_EthernetCards = 1L << 12, // SPEthernetDataType
DFSystemProfileData_Extensions = 1L << 13, // SPExtensionsDataType
DFSystemProfileData_Firewall = 1L << 14, // SPFirewallDataType
DFSystemProfileData_FireWire = 1L << 15, // SPFireWireDataType
DFSystemProfileData_FibreChannel = 1L << 16, // SPFibreChannelDataType
DFSystemProfileData_Fonts = 1L << 17, // SPFontsDataType
DFSystemProfileData_Frameworks = 1L << 18, // SPFrameworksDataType
DFSystemProfileData_Displays = 1L << 19, // SPDisplaysDataType
DFSystemProfileData_Hardware = 1L << 20, // SPHardwareDataType
DFSystemProfileData_HardwareRAID = 1L << 21, // SPHardwareRAIDDataType
DFSystemProfileData_InstallHistory = 1L << 22, // SPInstallHistoryDataType
DFSystemProfileData_Logs = 1L << 23, // SPLogsDataType
DFSystemProfileData_ManagedClient = 1L << 24, // SPManagedClientDataType
DFSystemProfileData_Memory = 1L << 25, // SPMemoryDataType
DFSystemProfileData_Network = 1L << 26, // SPNetworkDataType
DFSystemProfileData_NetworkLocations = 1L << 27, // SPNetworkLocationDataType
DFSystemProfileData_NetworkVolume = 1L << 28, // SPNetworkVolumeDataType
DFSystemProfileData_NVMe = 1L << 29, // SPNVMeDataType
DFSystemProfileData_ParallelATA = 1L << 30, // SPParallelATADataType
DFSystemProfileData_ParallelSCSI = 1L << 31, // SPParallelSCSIDataType
DFSystemProfileData_PCI = 1L << 32, // SPPCIDataType
DFSystemProfileData_Power = 1L << 33, // SPPowerDataType
DFSystemProfileData_PrefPane = 1L << 34, // SPPrefPaneDataType
DFSystemProfileData_PrinterSoftware = 1L << 35, // SPPrintersSoftwareDataType
DFSystemProfileData_Printers = 1L << 36, // SPPrintersDataType
DFSystemProfileData_SAS = 1L << 37, // SPSASDataType
DFSystemProfileData_SerialATA = 1L << 38, // SPSerialATADataType
DFSystemProfileData_Software = 1L << 39, // SPSoftwareDataType
DFSystemProfileData_SPI = 1L << 40, // SPSPIDataType
DFSystemProfileData_StartupItem = 1L << 41, // SPStartupItemDataType
DFSystemProfileData_Storage = 1L << 42, // SPStorageDataType
DFSystemProfileData_SyncServices = 1L << 43, // SPSyncServicesDataType
DFSystemProfileData_Thunderbolt = 1L << 44, // SPThunderboltDataType
DFSystemProfileData_UniversalAccess = 1L << 45, // SPUniversalAccessDataType
DFSystemProfileData_USB = 1L << 46, // SPUSBDataType
DFSystemProfileData_WWAN = 1L << 47, // SPWWANDataType
} DFSystemProfileDataType;

View File

@ -9,52 +9,108 @@
#import "ApplicationSandboxInfo.h"
//-------------------------------------------------------------------------------------------------
static const char* const kSectionHeaders[] =
static NSString* kDataTypeIds[] =
{
"Audio:",
"Audio (Built In):",
"Bluetooth:",
"Card Reader:",
"Diagnostics:",
"Disc Burning:",
"Ethernet Cards:",
"FireWire:",
"Graphics/Displays:",
"Hardware:",
"Memory:",
"Network:",
"Printer Software:",
"Printers:",
"Serial-ATA:",
"Software:",
"Thunderbolt:",
"USB:",
"Wi-Fi:",
"ATA:"
@"SPAirPortDataType",
@"SPApplicationsDataType",
@"SPAudioDataType",
@"SPBluetoothDataType",
@"SPCameraDataType",
@"SPCardReaderDataType",
@"SPComponentDataType",
@"SPConfigurationProfileDataType",
@"SPDeveloperToolsDataType",
@"SPDiagnosticsDataType",
@"SPDisabledSoftwareDataType",
@"SPDiscBurningDataType",
@"SPEthernetDataType",
@"SPExtensionsDataType",
@"SPFirewallDataType",
@"SPFireWireDataType",
@"SPFibreChannelDataType",
@"SPFontsDataType",
@"SPFrameworksDataType",
@"SPDisplaysDataType",
@"SPHardwareDataType",
@"SPHardwareRAIDDataType",
@"SPInstallHistoryDataType",
@"SPLogsDataType",
@"SPManagedClientDataType",
@"SPMemoryDataType",
@"SPNetworkDataType",
@"SPNetworkLocationDataType",
@"SPNetworkVolumeDataType",
@"SPNVMeDataType",
@"SPParallelATADataType",
@"SPParallelSCSIDataType",
@"SPPCIDataType",
@"SPPowerDataType",
@"SPPrefPaneDataType",
@"SPPrintersSoftwareDataType",
@"SPPrintersDataType",
@"SPSASDataType",
@"SPSerialATADataType",
@"SPSoftwareDataType",
@"SPSPIDataType",
@"SPStartupItemDataType",
@"SPStorageDataType",
@"SPSyncServicesDataType",
@"SPThunderboltDataType",
@"SPUniversalAccessDataType",
@"SPUSBDataType",
@"SPWWANDataType"
};
static const DFSystemProfileDataType kSectionTypes[] =
static const DFSystemProfileDataType kDataTypes[] =
{
DFSystemProfileData_AirPort,
DFSystemProfileData_Applications,
DFSystemProfileData_Audio,
DFSystemProfileData_AudioBuiltIn,
DFSystemProfileData_Bluetooth,
DFSystemProfileData_Camera,
DFSystemProfileData_CardReader,
DFSystemProfileData_Component,
DFSystemProfileData_ConfigurationProfile,
DFSystemProfileData_DeveloperTools,
DFSystemProfileData_Diagnostics,
DFSystemProfileData_DisabledSoftware,
DFSystemProfileData_DiscBurning,
DFSystemProfileData_EthernetCards,
DFSystemProfileData_Extensions,
DFSystemProfileData_Firewall,
DFSystemProfileData_FireWire,
DFSystemProfileData_GraphicsDisplays,
DFSystemProfileData_FibreChannel,
DFSystemProfileData_Fonts,
DFSystemProfileData_Frameworks,
DFSystemProfileData_Displays,
DFSystemProfileData_Hardware,
DFSystemProfileData_HardwareRAID,
DFSystemProfileData_InstallHistory,
DFSystemProfileData_Logs,
DFSystemProfileData_ManagedClient,
DFSystemProfileData_Memory,
DFSystemProfileData_Network,
DFSystemProfileData_NetworkLocations,
DFSystemProfileData_NetworkVolume,
DFSystemProfileData_NVMe,
DFSystemProfileData_ParallelATA,
DFSystemProfileData_ParallelSCSI,
DFSystemProfileData_PCI,
DFSystemProfileData_Power,
DFSystemProfileData_PrefPane,
DFSystemProfileData_PrinterSoftware,
DFSystemProfileData_Printers,
DFSystemProfileData_SAS,
DFSystemProfileData_SerialATA,
DFSystemProfileData_Software,
DFSystemProfileData_SPI,
DFSystemProfileData_StartupItem,
DFSystemProfileData_Storage,
DFSystemProfileData_SyncServices,
DFSystemProfileData_Thunderbolt,
DFSystemProfileData_UniversalAccess,
DFSystemProfileData_USB,
DFSystemProfileData_WiFi,
DFSystemProfileData_ATA
DFSystemProfileData_WWAN
};
//-------------------------------------------------------------------------------------------------
@ -70,7 +126,7 @@ static const DFSystemProfileDataType kSectionTypes[] =
//-------------------------------------------------------------------------------------------------
+ (void)initialize
{
NSAssert(sizeof(kSectionHeaders) / sizeof(kSectionHeaders[0]) == sizeof(kSectionTypes) / sizeof(kSectionTypes[0]), @"The number of section headers doesn't match the number of section types.");
NSAssert(sizeof(kDataTypeIds) / sizeof(kDataTypeIds[0]) == sizeof(kDataTypes) / sizeof(kDataTypes[0]), @"The number of data types doesn't match the number of data type ids.");
}
//-------------------------------------------------------------------------------------------------
@ -104,7 +160,8 @@ static const DFSystemProfileDataType kSectionTypes[] =
if (data != nil)
{
[_profile release];
_profile = [[self filteredProfileFromData:data dataTypes:_dataTypes] retain];
NSString* newProfile = [NSString stringWithUTF8String:data.bytes];
_profile = [newProfile retain];
}
}
_isDoneFetching = YES;
@ -112,67 +169,6 @@ static const DFSystemProfileDataType kSectionTypes[] =
[self.delegate systemProfileFetcherDidFinish:self];
}
//-------------------------------------------------------------------------------------------------
- (NSString*)filteredProfileFromData:(NSData*)data
dataTypes:(DFSystemProfileDataType)dataTypes
{
NSMutableString* profile = [NSMutableString string];
const char* endOfString = (const char*)data.bytes + data.length;
char* currLine = (char*)data.bytes;
BOOL isCurrLineSectionHeader = YES;
BOOL isSectionIncluded = YES;
// cycle of characters
for (char* cp = (char*)data.bytes; cp <= endOfString; ++cp)
{
// detect end of line
if (*cp == '\n' || cp == endOfString)
{
// analyze line if not empty
NSUInteger currLineLength = (NSUInteger)(cp - currLine);
if (currLineLength > 0)
{
// this is a section header
if (isCurrLineSectionHeader)
{
for (NSUInteger i = 0; i < sizeof(kSectionHeaders) / sizeof(kSectionHeaders[0]); ++i)
{
if (strncmp(currLine, kSectionHeaders[i], strlen(kSectionHeaders[i])) == 0)
{
isSectionIncluded = (kSectionTypes[i] & _dataTypes) != 0;
break;
}
}
}
}
// include the line
if (isSectionIncluded)
{
NSString* currLineString = [[[NSString alloc] initWithBytes:currLine length:currLineLength encoding:NSUTF8StringEncoding] autorelease];
[profile appendString:currLineString];
[profile appendString:@"\n"];
}
// new line
currLine = cp + 1;
isCurrLineSectionHeader = YES;
}
else
{
// detect section header
if (cp == currLine)
{
if (*cp == ' ')
{
isCurrLineSectionHeader = NO;
}
}
}
}
return profile;
}
//-------------------------------------------------------------------------------------------------
- (void)fetchDataTypes:(DFSystemProfileDataType)dataTypes
{
@ -194,7 +190,23 @@ static const DFSystemProfileDataType kSectionTypes[] =
_scriptTask = [[NSTask alloc] init];
_scriptTask.launchPath = @"/usr/sbin/system_profiler";
_scriptTask.arguments = @[@"-detailLevel", @"mini"];
NSMutableArray* arguments = [NSMutableArray array];
if (dataTypes != DFSystemProfileData_All)
{
for (NSUInteger i = 0; i < sizeof(kDataTypeIds) / sizeof(kDataTypeIds[0]); ++i)
{
DFSystemProfileDataType currDataType = kDataTypes[i];
if ((currDataType & dataTypes) != 0)
{
[arguments addObject:kDataTypeIds[i]];
}
}
}
[arguments addObject:@"-detailLevel"];
[arguments addObject:@"mini"];
_scriptTask.arguments = arguments;
_scriptTask.standardOutput = _scriptPipe;
@try
{

View File

@ -15,8 +15,14 @@
if ([self.delegate conformsToProtocol:@protocol(GenericAnimationDelegate)])
{
[(id<GenericAnimationDelegate>)self.delegate animation:self
didProgress:progress];
// it was found that sometimes the auto-release of objects during animation is postponed
// which may cause build-up of significant amount of used memory
// so auto-release explicitly
@autoreleasepool
{
[(id<GenericAnimationDelegate>)self.delegate animation:self
didProgress:progress];
}
}
}

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="6254" systemVersion="14B25" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="7706" systemVersion="14D136" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
<dependencies>
<deployment version="1060" identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="6254"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="7706"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="DFCrashReportWindowController">
@ -37,9 +37,9 @@
<autoresizingMask key="autoresizingMask"/>
<subviews>
<button verticalHuggingPriority="750" id="10" userLabel="Send Button">
<rect key="frame" x="402" y="9" width="136" height="25"/>
<rect key="frame" x="388" y="5" width="158" height="32"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
<buttonCell key="cell" type="roundTextured" title="Send Crash Report" bezelStyle="texturedRounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="11">
<buttonCell key="cell" type="push" title="Send Crash Report" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="11">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
<string key="keyEquivalent" base64-UTF8="YES">
@ -52,9 +52,9 @@ DQ
</connections>
</button>
<button verticalHuggingPriority="750" id="50" userLabel="Cancel button">
<rect key="frame" x="303" y="9" width="91" height="25"/>
<rect key="frame" x="305" y="5" width="83" height="32"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
<buttonCell key="cell" type="roundTextured" title="Cancel" bezelStyle="texturedRounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="51">
<buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="51">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
@ -117,7 +117,7 @@ DQ
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<textView importsGraphics="NO" richText="NO" findStyle="panel" continuousSpellChecking="YES" allowsUndo="YES" usesRuler="YES" usesFontPanel="YES" verticallyResizable="YES" spellingCorrection="YES" smartInsertDelete="YES" id="25" customClass="DFPlaceholderTextView">
<rect key="frame" x="0.0" y="0.0" width="406" height="79"/>
<rect key="frame" x="0.0" y="0.0" width="408" height="79"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<size key="minSize" width="406" height="79"/>
@ -152,7 +152,7 @@ DQ
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<textView editable="NO" importsGraphics="NO" richText="NO" findStyle="panel" continuousSpellChecking="YES" usesRuler="YES" usesFontPanel="YES" verticallyResizable="YES" spellingCorrection="YES" smartInsertDelete="YES" id="33">
<rect key="frame" x="0.0" y="0.0" width="384" height="160"/>
<rect key="frame" x="0.0" y="0.0" width="408" height="160"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<size key="minSize" width="384" height="160"/>
@ -196,11 +196,11 @@ DQ
</subviews>
</customView>
<progressIndicator horizontalHuggingPriority="750" verticalHuggingPriority="750" minValue="16" maxValue="100" doubleValue="16" bezeled="NO" indeterminate="YES" controlSize="small" style="spinning" id="13" userLabel="Progress Indicator">
<rect key="frame" x="20" y="12" width="16" height="16"/>
<rect key="frame" x="20" y="14" width="16" height="16"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
</progressIndicator>
<textField hidden="YES" verticalHuggingPriority="750" id="84" userLabel="Sending Report Progress Label">
<rect key="frame" x="41" y="13" width="257" height="13"/>
<rect key="frame" x="41" y="16" width="257" height="13"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Sending report…" id="85">
<font key="font" metaFont="system" size="10"/>
@ -209,19 +209,19 @@ DQ
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" id="14" userLabel="Fetching System Profile Progress Label">
<rect key="frame" x="41" y="13" width="257" height="13"/>
<rect key="frame" x="41" y="16" width="257" height="13"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Fetching system profile…" id="15">
<font key="font" metaFont="system" size="10"/>
<font key="font" metaFont="smallSystem"/>
<color key="textColor" red="0.32549021" green="0.32549021" blue="0.32549021" alpha="1" colorSpace="calibratedRGB"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField hidden="YES" verticalHuggingPriority="750" id="16" userLabel="Anonymous Label">
<rect key="frame" x="17" y="13" width="281" height="13"/>
<rect key="frame" x="17" y="16" width="281" height="13"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Crash report data are anonymous" id="17">
<font key="font" metaFont="system" size="10"/>
<font key="font" metaFont="smallSystem"/>
<color key="textColor" red="0.32549021" green="0.32549021" blue="0.32549021" alpha="1" colorSpace="calibratedRGB"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>

View File

@ -2,13 +2,13 @@
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1060</int>
<string key="IBDocument.SystemVersion">14B25</string>
<string key="IBDocument.InterfaceBuilderVersion">6254</string>
<string key="IBDocument.AppKitVersion">1343.16</string>
<string key="IBDocument.HIToolboxVersion">755.00</string>
<string key="IBDocument.SystemVersion">14D136</string>
<string key="IBDocument.InterfaceBuilderVersion">7706</string>
<string key="IBDocument.AppKitVersion">1347.57</string>
<string key="IBDocument.HIToolboxVersion">758.70</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="NS.object.0">6254</string>
<string key="NS.object.0">7706</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
<string>NSButton</string>
@ -64,7 +64,7 @@
<object class="NSComboBox" id="736959860">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">290</int>
<string key="NSFrame">{{133, 56}, {356, 26}}</string>
<string key="NSFrame">{{133, 55}, {356, 26}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="402117669"/>
@ -105,7 +105,7 @@
<object class="NSComboTableView" key="NSTableView" id="624827021">
<reference key="NSNextResponder"/>
<int key="NSvFlags">274</int>
<string key="NSFrameSize">{13, 0}</string>
<string key="NSFrameSize">{15, 0}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
@ -115,7 +115,7 @@
<reference key="NSControlTarget" ref="858023548"/>
<array class="NSMutableArray" key="NSTableColumns">
<object class="NSTableColumn">
<double key="NSWidth">10</double>
<double key="NSWidth">12</double>
<double key="NSMinWidth">10</double>
<double key="NSMaxWidth">1000</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
@ -125,7 +125,7 @@
<object class="NSFont" key="NSSupport">
<bool key="IBIsSystemFont">YES</bool>
<double key="NSSize">12</double>
<int key="NSfFlags">4883</int>
<int key="NSfFlags">787</int>
</object>
<object class="NSColor" key="NSBackgroundColor">
<int key="NSColorSpace">3</int>
@ -169,7 +169,7 @@
</object>
<double key="NSRowHeight">19</double>
<string key="NSAction">tableViewAction:</string>
<int key="NSTvFlags">-765427712</int>
<int key="NSTvFlags">-767524864</int>
<reference key="NSDelegate" ref="858023548"/>
<reference key="NSDataSource" ref="858023548"/>
<reference key="NSTarget" ref="858023548"/>
@ -297,7 +297,7 @@
<nil key="NSTextFinder"/>
<int key="NSPreferredTextFinderStyle">1</int>
</object>
<int key="NSTVFlags">6</int>
<int key="NSTVFlags">70</int>
<string key="NSMaxSize">{930, 10000000}</string>
<nil key="NSDelegate"/>
</object>
@ -508,7 +508,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA</bytes>
<string key="NSFrame">{{17, -1}, {452, 17}}</string>
<reference key="NSSuperview" ref="711692537"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="130278497"/>
<reference key="NSNextKeyView" ref="505252764"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="668010066">
<int key="NSCellFlags">68157504</int>
@ -532,10 +532,10 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA</bytes>
<object class="NSButton" id="505252764">
<reference key="NSNextResponder" ref="711692537"/>
<int key="NSvFlags">289</int>
<string key="NSFrame">{{382, 17}, {84, 17}}</string>
<string key="NSFrame">{{373, 9}, {98, 28}}</string>
<reference key="NSSuperview" ref="711692537"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="764176366"/>
<reference key="NSNextKeyView" ref="130278497"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="931103130">
<int key="NSCellFlags">-2080374784</int>
@ -543,12 +543,14 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA</bytes>
<string key="NSContents">See Details…</string>
<reference key="NSSupport" ref="26"/>
<reference key="NSControlView" ref="505252764"/>
<int key="NSButtonFlags">-2038153216</int>
<int key="NSButtonFlags2">164</int>
<int key="NSButtonFlags">-2038022144</int>
<int key="NSButtonFlags2">129</int>
<reference key="NSAlternateImage" ref="26"/>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">400</int>
<int key="NSPeriodicInterval">75</int>
<int key="NSAuxButtonType">7</int>
</object>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
@ -558,7 +560,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA</bytes>
<string key="NSFrame">{{-2, 17}, {338, 18}}</string>
<reference key="NSSuperview" ref="711692537"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="505252764"/>
<reference key="NSNextKeyView" ref="764176366"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="1048625102">
<int key="NSCellFlags">-2080374784</int>
@ -591,7 +593,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA</bytes>
<object class="NSProgressIndicator" id="445548636">
<reference key="NSNextResponder" ref="742424490"/>
<int key="NSvFlags">1316</int>
<string key="NSFrame">{{0, 14}, {16, 16}}</string>
<string key="NSFrame">{{0, 15}, {16, 16}}</string>
<reference key="NSSuperview" ref="742424490"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="605199443"/>
@ -602,7 +604,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA</bytes>
<object class="NSTextField" id="271145032">
<reference key="NSNextResponder" ref="742424490"/>
<int key="NSvFlags">-2147483358</int>
<string key="NSFrame">{{21, 15}, {228, 14}}</string>
<string key="NSFrame">{{21, 16}, {231, 14}}</string>
<reference key="NSSuperview" ref="742424490"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="46102588"/>
@ -625,7 +627,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA</bytes>
<object class="NSTextField" id="605199443">
<reference key="NSNextResponder" ref="742424490"/>
<int key="NSvFlags">-2147483358</int>
<string key="NSFrame">{{21, 15}, {228, 14}}</string>
<string key="NSFrame">{{21, 16}, {231, 14}}</string>
<reference key="NSSuperview" ref="742424490"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="271145032"/>
@ -646,7 +648,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA</bytes>
<int key="NSTextFieldAlignmentRectInsetsVersion">1</int>
</object>
</array>
<string key="NSFrame">{{20, 0}, {246, 51}}</string>
<string key="NSFrame">{{20, 0}, {250, 46}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="445548636"/>
@ -655,7 +657,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA</bytes>
<object class="NSButton" id="1001022318">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">289</int>
<string key="NSFrame">{{359, 9}, {127, 25}}</string>
<string key="NSFrame">{{355, 5}, {137, 32}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
@ -666,18 +668,20 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA</bytes>
<reference key="NSSupport" ref="483274555"/>
<reference key="NSControlView" ref="1001022318"/>
<int key="NSButtonFlags">-2038284288</int>
<int key="NSButtonFlags2">163</int>
<int key="NSButtonFlags2">129</int>
<reference key="NSAlternateImage" ref="483274555"/>
<string key="NSAlternateContents"/>
<string type="base64-UTF8" key="NSKeyEquivalent">DQ</string>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
<int key="NSAuxButtonType">7</int>
</object>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
<object class="NSButton" id="46102588">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">289</int>
<string key="NSFrame">{{274, 9}, {77, 25}}</string>
<string key="NSFrame">{{272, 5}, {83, 32}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1001022318"/>
@ -689,18 +693,20 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA</bytes>
<reference key="NSSupport" ref="483274555"/>
<reference key="NSControlView" ref="46102588"/>
<int key="NSButtonFlags">-2038284288</int>
<int key="NSButtonFlags2">163</int>
<int key="NSButtonFlags2">129</int>
<reference key="NSAlternateImage" ref="483274555"/>
<string key="NSAlternateContents"/>
<string type="base64-UTF8" key="NSKeyEquivalent">Gw</string>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
<int key="NSAuxButtonType">7</int>
</object>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
<object class="NSSegmentedControl" id="204540706">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">266</int>
<string key="NSFrame">{{21, 376}, {478, 25}}</string>
<string key="NSFrame">{{23, 376}, {461, 25}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="522181527"/>
@ -712,7 +718,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA</bytes>
<reference key="NSControlView" ref="204540706"/>
<array class="NSMutableArray" key="NSSegmentImages">
<object class="NSSegmentItem">
<double key="NSSegmentItemWidth">152</double>
<double key="NSSegmentItemWidth">153</double>
<string key="NSSegmentItemLabel">General Question</string>
<bool key="NSSegmentItemSelected">YES</bool>
<int key="NSSegmentItemImageScaling">0</int>
@ -729,14 +735,14 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA</bytes>
<int key="NSSegmentItemImageScaling">0</int>
</object>
</array>
<int key="NSSegmentStyle">2</int>
<int key="NSSegmentStyle">4</int>
</object>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
<object class="NSCustomView" id="402117669">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">289</int>
<string key="NSFrame">{{448, 60}, {20, 18}}</string>
<string key="NSFrame">{{448, 59}, {20, 18}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="742424490"/>
@ -748,7 +754,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA</bytes>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="204540706"/>
</object>
<string key="NSScreenRect">{{0, 0}, {2560, 1417}}</string>
<string key="NSScreenRect">{{0, 0}, {1440, 877}}</string>
<string key="NSMinSize">{492, 416}</string>
<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
<double key="NSContentBorderThicknessMinY">45</double>
@ -821,7 +827,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA</bytes>
<nil key="NSTextFinder"/>
<int key="NSPreferredTextFinderStyle">1</int>
</object>
<int key="NSTVFlags">6</int>
<int key="NSTVFlags">70</int>
<string key="NSMaxSize">{463, 10000000}</string>
<nil key="NSDelegate"/>
</object>
@ -910,7 +916,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA</bytes>
<string key="NSFrameSize">{427, 340}</string>
<reference key="NSNextKeyView" ref="309559659"/>
</object>
<string key="NSScreenRect">{{0, 0}, {2560, 1417}}</string>
<string key="NSScreenRect">{{0, 0}, {1440, 877}}</string>
<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
<bool key="NSWindowIsRestorable">YES</bool>
</object>
@ -1133,6 +1139,14 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA</bytes>
</object>
<int key="connectionID">143</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">seeDetailsButton</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="505252764"/>
</object>
<int key="connectionID">146</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">delegate</string>
@ -1427,8 +1441,8 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA</bytes>
<reference key="object" ref="711692537"/>
<array class="NSMutableArray" key="children">
<reference ref="431450619"/>
<reference ref="505252764"/>
<reference ref="764176366"/>
<reference ref="505252764"/>
</array>
<reference key="parent" ref="1006"/>
<string key="objectName">System Profile Container</string>
@ -1596,6 +1610,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA</bytes>
<string key="102.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="103.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="104.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<reference key="105.IBNSViewMetadataGestureRecognizers" ref="0"/>
<string key="105.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="109.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="110.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
@ -1620,6 +1635,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA</bytes>
<string key="16.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="17.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="18.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<reference key="2.IBNSViewMetadataGestureRecognizers" ref="0"/>
<string key="2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="23.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="24.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
@ -1655,9 +1671,207 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA</bytes>
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">143</int>
<int key="maxID">146</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">DFBounceIconView</string>
<string key="superclassName">NSView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">../../Views/DFBounceIconView.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">DFComboBoxCell</string>
<string key="superclassName">NSComboBoxCell</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">../../Views/DFComboBoxCell.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">DFFeedbackWindowController</string>
<string key="superclassName">NSWindowController</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">../../DFFeedbackWindowController.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">DFFeedbackWindowController</string>
<dictionary class="NSMutableDictionary" key="actions">
<string key="cancel:">id</string>
<string key="close:">id</string>
<string key="emailChanged:">id</string>
<string key="includeEmailCheckBoxChanged:">id</string>
<string key="includeSystemProfileCheckBoxDidChange:">id</string>
<string key="sendReport:">id</string>
<string key="showDetails:">id</string>
<string key="tabsSegmentedControlChanged:">id</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="actionInfosByName">
<object class="IBActionInfo" key="cancel:">
<string key="name">cancel:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="close:">
<string key="name">close:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="emailChanged:">
<string key="name">emailChanged:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="includeEmailCheckBoxChanged:">
<string key="name">includeEmailCheckBoxChanged:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="includeSystemProfileCheckBoxDidChange:">
<string key="name">includeSystemProfileCheckBoxDidChange:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="sendReport:">
<string key="name">sendReport:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="showDetails:">
<string key="name">showDetails:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="tabsSegmentedControlChanged:">
<string key="name">tabsSegmentedControlChanged:</string>
<string key="candidateClassName">id</string>
</object>
</dictionary>
<dictionary class="NSMutableDictionary" key="outlets">
<string key="detailsProgressIndicator">NSProgressIndicator</string>
<string key="detailsProgressLabel">NSTextField</string>
<string key="detailsTextContainer">NSView</string>
<string key="detailsTextView">NSTextView</string>
<string key="detailsWindow">NSWindow</string>
<string key="emailBounceIcon">DFBounceIconView</string>
<string key="emailComboBox">NSComboBox</string>
<string key="includeEmailCheckBox">NSButton</string>
<string key="includeSystemProfileCheckBox">NSButton</string>
<string key="profilingProgressLabel">NSTextField</string>
<string key="progressContainer">NSView</string>
<string key="progressIndicator">NSProgressIndicator</string>
<string key="seeDetailsButton">NSButton</string>
<string key="sendButton">NSButton</string>
<string key="sendingProgressLabel">NSTextField</string>
<string key="systemProfileContainer">NSView</string>
<string key="tabView">DFKeyTabView</string>
<string key="tabsSegmentedControl">NSSegmentedControl</string>
<string key="textContainer">NSView</string>
<string key="textView">DFPlaceholderTextView</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
<object class="IBToOneOutletInfo" key="detailsProgressIndicator">
<string key="name">detailsProgressIndicator</string>
<string key="candidateClassName">NSProgressIndicator</string>
</object>
<object class="IBToOneOutletInfo" key="detailsProgressLabel">
<string key="name">detailsProgressLabel</string>
<string key="candidateClassName">NSTextField</string>
</object>
<object class="IBToOneOutletInfo" key="detailsTextContainer">
<string key="name">detailsTextContainer</string>
<string key="candidateClassName">NSView</string>
</object>
<object class="IBToOneOutletInfo" key="detailsTextView">
<string key="name">detailsTextView</string>
<string key="candidateClassName">NSTextView</string>
</object>
<object class="IBToOneOutletInfo" key="detailsWindow">
<string key="name">detailsWindow</string>
<string key="candidateClassName">NSWindow</string>
</object>
<object class="IBToOneOutletInfo" key="emailBounceIcon">
<string key="name">emailBounceIcon</string>
<string key="candidateClassName">DFBounceIconView</string>
</object>
<object class="IBToOneOutletInfo" key="emailComboBox">
<string key="name">emailComboBox</string>
<string key="candidateClassName">NSComboBox</string>
</object>
<object class="IBToOneOutletInfo" key="includeEmailCheckBox">
<string key="name">includeEmailCheckBox</string>
<string key="candidateClassName">NSButton</string>
</object>
<object class="IBToOneOutletInfo" key="includeSystemProfileCheckBox">
<string key="name">includeSystemProfileCheckBox</string>
<string key="candidateClassName">NSButton</string>
</object>
<object class="IBToOneOutletInfo" key="profilingProgressLabel">
<string key="name">profilingProgressLabel</string>
<string key="candidateClassName">NSTextField</string>
</object>
<object class="IBToOneOutletInfo" key="progressContainer">
<string key="name">progressContainer</string>
<string key="candidateClassName">NSView</string>
</object>
<object class="IBToOneOutletInfo" key="progressIndicator">
<string key="name">progressIndicator</string>
<string key="candidateClassName">NSProgressIndicator</string>
</object>
<object class="IBToOneOutletInfo" key="seeDetailsButton">
<string key="name">seeDetailsButton</string>
<string key="candidateClassName">NSButton</string>
</object>
<object class="IBToOneOutletInfo" key="sendButton">
<string key="name">sendButton</string>
<string key="candidateClassName">NSButton</string>
</object>
<object class="IBToOneOutletInfo" key="sendingProgressLabel">
<string key="name">sendingProgressLabel</string>
<string key="candidateClassName">NSTextField</string>
</object>
<object class="IBToOneOutletInfo" key="systemProfileContainer">
<string key="name">systemProfileContainer</string>
<string key="candidateClassName">NSView</string>
</object>
<object class="IBToOneOutletInfo" key="tabView">
<string key="name">tabView</string>
<string key="candidateClassName">DFKeyTabView</string>
</object>
<object class="IBToOneOutletInfo" key="tabsSegmentedControl">
<string key="name">tabsSegmentedControl</string>
<string key="candidateClassName">NSSegmentedControl</string>
</object>
<object class="IBToOneOutletInfo" key="textContainer">
<string key="name">textContainer</string>
<string key="candidateClassName">NSView</string>
</object>
<object class="IBToOneOutletInfo" key="textView">
<string key="name">textView</string>
<string key="candidateClassName">DFPlaceholderTextView</string>
</object>
</dictionary>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">../../DFFeedbackWindowController.m</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">DFKeyTabView</string>
<string key="superclassName">NSTabView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">../../Views/DFKeyTabView.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">DFPlaceholderTextView</string>
<string key="superclassName">NSTextView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">../../Views/DFPlaceholderTextView.h</string>
</object>
</object>
</array>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes"/>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
<bool key="IBDocument.previouslyAttemptedUpgradeToXcode5">NO</bool>