added search button
change show button to eye icon fixed issue where 'reloadItem' (outline view) didn't reload row customized 'no items found' label in bottom pane refactor/code cleanup added 'reloadBinary' method for VT callbacks added header image
@@ -121,6 +121,7 @@
|
||||
|
||||
//'no items' found label for bottom pane
|
||||
@property (weak) IBOutlet NSTextField *noItemsLabel;
|
||||
@property (weak) IBOutlet NSButton *searchButton;
|
||||
|
||||
/* METHODS */
|
||||
- (IBAction)switchView:(id)sender;
|
||||
@@ -136,11 +137,11 @@
|
||||
-(void)applyPreferences;
|
||||
|
||||
//update a single row
|
||||
-(void)itemProcessed:(Binary*)fileObj rowIndex:(NSUInteger)rowIndex;
|
||||
//-(void)itemProcessed:(Binary*)fileObj rowIndex:(NSUInteger)rowIndex;
|
||||
|
||||
//action
|
||||
// ->invoked when user clicks 'About/Info' or Objective-See logo in main UI
|
||||
-(void)displayScanStats;
|
||||
//-(void)displayScanStats;
|
||||
|
||||
-(IBAction)scanButtonHandler:(id)sender;
|
||||
|
||||
@@ -183,5 +184,10 @@
|
||||
//VT callback to reload a binary
|
||||
-(void)reloadBinary:(Binary*)binary;
|
||||
|
||||
//save button handler
|
||||
-(IBAction)saveResults:(id)sender;
|
||||
|
||||
//search button handler
|
||||
-(IBAction)search:(id)sender;
|
||||
|
||||
@end
|
||||
|
||||
@@ -15,10 +15,11 @@
|
||||
|
||||
#import "Task.h"
|
||||
|
||||
//TODO: bottom pane's progress indicator: center via autolayout
|
||||
//TODO: full VT queue!! - flush
|
||||
//TODO: on filter, reset scanning for bottom item (hideDylib)
|
||||
//TODO: network info window
|
||||
|
||||
//TODO: add IPV6 :: as 0.0.0.0? (since we do this for IPV4 i think)
|
||||
//TODO: filter out dup'd networks (airportd 0:0..) -not sure want to do this
|
||||
|
||||
|
||||
@implementation AppDelegate
|
||||
|
||||
@@ -44,6 +45,7 @@
|
||||
@synthesize topPane;
|
||||
@synthesize taskEnumerator;
|
||||
@synthesize viewSelector;
|
||||
@synthesize searchButton;
|
||||
|
||||
|
||||
//@synthesize taskScrollView;
|
||||
@@ -62,10 +64,6 @@
|
||||
//make window front
|
||||
[NSApp activateIgnoringOtherApps:YES];
|
||||
|
||||
//set initial view
|
||||
// ->default is flat (non-tree) view
|
||||
//[self changeViewController:[self.viewSelector selectedItem].tag];
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -159,72 +157,19 @@
|
||||
//set flag
|
||||
self.bottomViewController.isBottomPane = YES;
|
||||
|
||||
//set input
|
||||
//self.bottomViewController.tableItems = currentTask.dylibs;
|
||||
|
||||
//add subview
|
||||
[self.bottomPane addSubview:[self.bottomViewController view]];
|
||||
|
||||
//[self.bottomPane addSubview:self.noItemsLabel];
|
||||
|
||||
//set frame
|
||||
[[self.bottomViewController view] setFrame:[self.bottomPane bounds]];
|
||||
|
||||
//set default msg
|
||||
//add 'items' not found msg
|
||||
[self.bottomViewController.view addSubview:self.noItemsLabel];
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//set delegate
|
||||
// ->ensures our 'windowWillClose' method, which has logic to fully exit app
|
||||
self.window.delegate = self;
|
||||
|
||||
|
||||
|
||||
|
||||
//kick off thread to begin enumerating shared objects
|
||||
// ->this takes awhile, so do it now!
|
||||
//[self.sharedItemEnumerator start];
|
||||
|
||||
//instantiate all plugins objects
|
||||
//self.plugins = [self instantiatePlugins];
|
||||
|
||||
//set selected plugin to first
|
||||
//self.selectedPlugin = [self.plugins firstObject];
|
||||
|
||||
//dbg msg
|
||||
//NSLog(@"KNOCKKNOCK: registered plugins: %@", self.plugins);
|
||||
|
||||
//pre-populate category table w/ each plugin title
|
||||
//[self.categoryTableController initTable:self.plugins];
|
||||
|
||||
//make category table active/selected
|
||||
//[[self.categoryTableController.categoryTableView window] makeFirstResponder:self.categoryTableController.categoryTableView];
|
||||
|
||||
//hide status msg
|
||||
// ->when user clicks scan, will show up..
|
||||
//[self.statusText setStringValue:@""];
|
||||
|
||||
//hide progress indicator
|
||||
//self.progressIndicator.hidden = YES;
|
||||
|
||||
//init button label
|
||||
// ->start scan
|
||||
//[self.scanButtonLabel setStringValue:START_SCAN];
|
||||
|
||||
//set version info
|
||||
//[self.versionString setStringValue:[NSString stringWithFormat:@"version: %@", getAppVersion()]];
|
||||
|
||||
//init tracking areas
|
||||
//[self initTrackingAreas];
|
||||
|
||||
//set delegate
|
||||
// ->ensures our 'windowWillClose' method, which has logic to fully exit app
|
||||
//self.window.delegate = self;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -394,36 +339,30 @@
|
||||
row = [self.taskTableController.filteredItems indexOfObject:item];
|
||||
}
|
||||
|
||||
//sanity check
|
||||
if(NSNotFound == row)
|
||||
{
|
||||
//bail
|
||||
goto bail;
|
||||
}
|
||||
|
||||
//begin updates
|
||||
[tableView beginUpdates];
|
||||
|
||||
//reload row
|
||||
[tableView reloadDataForRowIndexes:[NSIndexSet indexSetWithIndex:(row)] columnIndexes:[NSIndexSet indexSetWithIndex:0]];
|
||||
|
||||
//end updates
|
||||
[tableView endUpdates];
|
||||
|
||||
}
|
||||
//reload item
|
||||
// ->tree view, so no need to worry about filtering
|
||||
else
|
||||
{
|
||||
//begin updates
|
||||
[tableView beginUpdates];
|
||||
|
||||
//reload
|
||||
[(NSOutlineView*)tableView reloadItem:item];
|
||||
|
||||
//end updates
|
||||
[tableView endUpdates];
|
||||
//get row
|
||||
row = [(NSOutlineView*)tableView rowForItem:item];
|
||||
}
|
||||
|
||||
//sanity check
|
||||
if(NSNotFound == row)
|
||||
{
|
||||
//bail
|
||||
goto bail;
|
||||
}
|
||||
|
||||
//begin updates
|
||||
[tableView beginUpdates];
|
||||
|
||||
//reload row
|
||||
[tableView reloadDataForRowIndexes:[NSIndexSet indexSetWithIndex:(row)] columnIndexes:[NSIndexSet indexSetWithIndex:0]];
|
||||
|
||||
//end updates
|
||||
[tableView endUpdates];
|
||||
}
|
||||
//bottom pane
|
||||
else
|
||||
@@ -508,6 +447,9 @@ bail:
|
||||
|
||||
//set table items
|
||||
self.bottomViewController.tableItems = self.currentTask.dylibs;
|
||||
|
||||
//if there is none
|
||||
self.noItemsLabel.stringValue = @"no dylibs found";
|
||||
|
||||
break;
|
||||
|
||||
@@ -517,6 +459,9 @@ bail:
|
||||
///set table items
|
||||
self.bottomViewController.tableItems = self.currentTask.files;
|
||||
|
||||
//if there is none
|
||||
self.noItemsLabel.stringValue = @"no files found";
|
||||
|
||||
break;
|
||||
|
||||
//networking
|
||||
@@ -525,6 +470,9 @@ bail:
|
||||
//set table items
|
||||
self.bottomViewController.tableItems = self.currentTask.connections;
|
||||
|
||||
//if there is none
|
||||
self.noItemsLabel.stringValue = @"no network connections found";
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -562,12 +510,14 @@ bail:
|
||||
//no items?
|
||||
if(0 == self.bottomViewController.tableItems.count)
|
||||
{
|
||||
//how
|
||||
self.noItemsLabel.hidden = NO;
|
||||
|
||||
}
|
||||
//no items?
|
||||
//got items?
|
||||
else
|
||||
{
|
||||
//hide
|
||||
self.noItemsLabel.hidden = YES;
|
||||
}
|
||||
|
||||
@@ -640,6 +590,7 @@ bail:
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
//display alert about OS not being supported
|
||||
-(void)showUnsupportedAlert
|
||||
{
|
||||
@@ -680,6 +631,13 @@ bail:
|
||||
//add tracking area to pref button
|
||||
[self.showPreferencesButton addTrackingArea:trackingArea];
|
||||
|
||||
//init tracking area
|
||||
// ->for search button
|
||||
trackingArea = [[NSTrackingArea alloc] initWithRect:[self.searchButton bounds] options:(NSTrackingInVisibleRect|NSTrackingMouseEnteredAndExited | NSTrackingActiveAlways) owner:self userInfo:@{@"tag":[NSNumber numberWithUnsignedInteger:self.searchButton.tag]}];
|
||||
|
||||
//add tracking area to search button
|
||||
[self.searchButton addTrackingArea:trackingArea];
|
||||
|
||||
//init tracking area
|
||||
// ->for logo button
|
||||
trackingArea = [[NSTrackingArea alloc] initWithRect:[self.logoButton bounds] options:(NSTrackingInVisibleRect|NSTrackingMouseEnteredAndExited | NSTrackingActiveAlways) owner:self userInfo:@{@"tag":[NSNumber numberWithUnsignedInteger:self.logoButton.tag]}];
|
||||
@@ -942,6 +900,8 @@ bail:
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
//update the UI to reflect that the fact the scan was stopped
|
||||
// ->set text back to 'start scan', etc...
|
||||
-(void)stopScanUI:(NSString*)statusMsg
|
||||
@@ -989,6 +949,7 @@ bail:
|
||||
|
||||
return;
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
//shows alert stating that that scan is complete (w/ stats)
|
||||
@@ -1167,7 +1128,13 @@ bail:
|
||||
if(PREF_BUTTON_TAG == tag)
|
||||
{
|
||||
//set
|
||||
imageName = @"settings";
|
||||
imageName = @"saveIcon";
|
||||
}
|
||||
//set original search image
|
||||
else if(SEARCH_BUTTON_TAG == tag)
|
||||
{
|
||||
//set
|
||||
imageName = @"search";
|
||||
}
|
||||
//set original logo image
|
||||
else if(LOGO_BUTTON_TAG == tag)
|
||||
@@ -1203,7 +1170,13 @@ bail:
|
||||
if(PREF_BUTTON_TAG == tag)
|
||||
{
|
||||
//set
|
||||
imageName = @"settingsOver";
|
||||
imageName = @"saveIconOver";
|
||||
}
|
||||
//set mouse over search image
|
||||
else if(SEARCH_BUTTON_TAG == tag)
|
||||
{
|
||||
//set
|
||||
imageName = @"searchOver";
|
||||
}
|
||||
//set mouse over logo image
|
||||
else if(LOGO_BUTTON_TAG == tag)
|
||||
@@ -1227,6 +1200,58 @@ bail:
|
||||
return;
|
||||
}
|
||||
|
||||
//invoked when user clicks 'save' icon
|
||||
// ->show popup that allows user to save results
|
||||
-(IBAction)saveResults:(id)sender
|
||||
{
|
||||
//save panel
|
||||
NSSavePanel *panel = nil;
|
||||
|
||||
//output
|
||||
// ->json of all tasks/dylibs, etc
|
||||
__block NSString* output = nil;
|
||||
|
||||
//error
|
||||
__block NSError* error = nil;
|
||||
|
||||
//create panel
|
||||
panel = [NSSavePanel savePanel];
|
||||
|
||||
//suggest file name
|
||||
[panel setNameFieldStringValue:@"tasks.json"];
|
||||
|
||||
//show panel
|
||||
// ->completion handler will invoked when user clicks 'ok'
|
||||
[panel beginWithCompletionHandler:^(NSInteger result)
|
||||
{
|
||||
//only need to handle 'ok'
|
||||
if(NSFileHandlingPanelOKButton == result)
|
||||
{
|
||||
//TODO: generate JSON
|
||||
output = @"test";
|
||||
|
||||
//save JSON to disk
|
||||
if(YES != [output writeToURL:[panel URL] atomically:NO encoding:NSUTF8StringEncoding error:nil])
|
||||
{
|
||||
//err msg
|
||||
NSLog(@"OBJECTIVE-SEE ERROR: saving output to %@ failed with %@", [panel URL], error);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}];
|
||||
|
||||
//bail
|
||||
bail:
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
- (IBAction)search:(id)sender {
|
||||
}
|
||||
|
||||
/*
|
||||
//save results to disk
|
||||
// ->JSON dumped to current directory
|
||||
-(void)saveResults
|
||||
@@ -1330,13 +1355,14 @@ bail:
|
||||
//bail
|
||||
goto bail;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
//bail
|
||||
bail:
|
||||
|
||||
return;
|
||||
}
|
||||
*/
|
||||
|
||||
#pragma mark Menu Handler(s) #pragma mark -
|
||||
|
||||
@@ -1613,7 +1639,8 @@ bail:
|
||||
{
|
||||
//filter
|
||||
//TODO: move into Filter obj
|
||||
[self filterTasks:search.string];
|
||||
//[self filterTasks:search.string];
|
||||
[self.filterObj filterTasks:search.string items:self.taskEnumerator.tasks results:self.taskTableController.filteredItems];
|
||||
|
||||
//set flag
|
||||
self.taskTableController.isFiltered = YES;
|
||||
@@ -1621,6 +1648,23 @@ bail:
|
||||
|
||||
//always reload task (top) pane
|
||||
[self.taskTableController.itemView reloadData];
|
||||
|
||||
//[self.bottomViewController.itemView reloadData];
|
||||
|
||||
//when nothing matches
|
||||
// ->reset current task and bottom pane
|
||||
if( (YES == self.taskTableController.isFiltered) &&
|
||||
(0 == self.taskTableController.filteredItems.count) )
|
||||
{
|
||||
//remove bottom pane's items
|
||||
[self.bottomViewController.tableItems removeAllObjects];
|
||||
|
||||
//reset current task
|
||||
self.currentTask = nil;
|
||||
|
||||
//reload bottom pane
|
||||
[self.bottomViewController.itemView reloadData];
|
||||
}
|
||||
}
|
||||
//bottom pane
|
||||
else if(YES == [aNotification.object isEqualTo:self.filterItemsBox])
|
||||
@@ -1667,7 +1711,6 @@ bail:
|
||||
//filter
|
||||
[self.filterObj filterConnections:search.string items:self.currentTask.connections results:self.bottomViewController.filteredItems];
|
||||
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1680,7 +1723,7 @@ bail:
|
||||
self.bottomViewController.isFiltered = YES;
|
||||
}
|
||||
|
||||
//always reload task (top) pane
|
||||
//always reload item (bottom) pane
|
||||
[self.bottomViewController.itemView reloadData];
|
||||
}
|
||||
|
||||
@@ -1691,47 +1734,6 @@ bail:
|
||||
|
||||
}
|
||||
|
||||
//filter tasks
|
||||
// ->for now, just name & path
|
||||
// TODO filter on everything
|
||||
// TODO: move into task enumerator!?
|
||||
-(void)filterTasks:(NSString*)filterText
|
||||
{
|
||||
//task
|
||||
Task* task = nil;
|
||||
|
||||
//name range
|
||||
NSRange nameRange = {0};
|
||||
|
||||
//path range
|
||||
NSRange pathRange = {0};
|
||||
|
||||
//first reset filter'd items
|
||||
[self.taskTableController.filteredItems removeAllObjects];
|
||||
|
||||
//iterate over all tasks
|
||||
for(NSNumber* taskKey in self.taskEnumerator.tasks)
|
||||
{
|
||||
//extract task
|
||||
task = self.taskEnumerator.tasks[taskKey];
|
||||
|
||||
//init name range
|
||||
nameRange = [task.binary.name rangeOfString:filterText options:NSCaseInsensitiveSearch];
|
||||
|
||||
//init path range
|
||||
pathRange = [task.binary.path rangeOfString:filterText options:NSCaseInsensitiveSearch];
|
||||
|
||||
//check for match
|
||||
if( (NSNotFound != nameRange.location) ||
|
||||
(NSNotFound != pathRange.location) )
|
||||
{
|
||||
//save match
|
||||
[self.taskTableController.filteredItems addObject:task];
|
||||
}
|
||||
|
||||
}//all tasks
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
|
||||
@@ -90,7 +90,10 @@
|
||||
#define PREF_BUTTON_TAG 1001
|
||||
|
||||
//logo button
|
||||
#define LOGO_BUTTON_TAG 1002
|
||||
#define SEARCH_BUTTON_TAG 1002
|
||||
|
||||
//logo button
|
||||
#define LOGO_BUTTON_TAG 1003
|
||||
|
||||
//category table
|
||||
|
||||
|
||||
@@ -27,6 +27,9 @@
|
||||
|
||||
/* METHODS */
|
||||
|
||||
//filter tasks
|
||||
-(void)filterTasks:(NSString*)filterText items:(NSMutableDictionary*)items results:(NSMutableArray*)results;
|
||||
|
||||
//filter dylibs and files
|
||||
-(void)filterFiles:(NSString*)filterText items:(NSMutableArray*)items results:(NSMutableArray*)results;
|
||||
|
||||
|
||||
@@ -42,7 +42,48 @@
|
||||
return self;
|
||||
}
|
||||
|
||||
//TODO: add filter tasks
|
||||
//filter tasks
|
||||
// ->for now, just name & path
|
||||
// TODO filter on everything
|
||||
-(void)filterTasks:(NSString*)filterText items:(NSMutableDictionary*)items results:(NSMutableArray*)results
|
||||
{
|
||||
//task
|
||||
Task* task = nil;
|
||||
|
||||
//name range
|
||||
NSRange nameRange = {0};
|
||||
|
||||
//path range
|
||||
NSRange pathRange = {0};
|
||||
|
||||
//first reset filter'd items
|
||||
[results removeAllObjects];
|
||||
|
||||
//iterate over all tasks
|
||||
for(NSNumber* taskKey in items)
|
||||
{
|
||||
//extract task
|
||||
task = items[taskKey];
|
||||
|
||||
//init name range
|
||||
nameRange = [task.binary.name rangeOfString:filterText options:NSCaseInsensitiveSearch];
|
||||
|
||||
//init path range
|
||||
pathRange = [task.binary.path rangeOfString:filterText options:NSCaseInsensitiveSearch];
|
||||
|
||||
//check for match
|
||||
if( (NSNotFound != nameRange.location) ||
|
||||
(NSNotFound != pathRange.location) )
|
||||
{
|
||||
//save match
|
||||
[results addObject:task];
|
||||
}
|
||||
|
||||
}//all tasks
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//filter dylibs and files
|
||||
|
||||
@@ -36,8 +36,13 @@
|
||||
//file window specific outlets
|
||||
@property (weak) IBOutlet NSTextField *type;
|
||||
|
||||
//network window specific outlets
|
||||
|
||||
@property (weak) IBOutlet NSTextField *connection;
|
||||
@property (weak) IBOutlet NSTextField *protocol;
|
||||
@property (weak) IBOutlet NSTextField *family;
|
||||
@property (weak) IBOutlet NSTextField *state;
|
||||
|
||||
@property (weak) IBOutlet NSTextField *plist;
|
||||
|
||||
|
||||
//window controller
|
||||
|
||||
@@ -61,24 +61,13 @@
|
||||
self.windowController = [[InfoWindowController alloc] initWithWindowNibName:@"FileInfoWindow"];
|
||||
}
|
||||
|
||||
//TODO: file && network info view
|
||||
|
||||
/*TODO: delete this and xibs?
|
||||
|
||||
//load file info window
|
||||
else if(YES == [selectedItem isKindOfClass:[File class]])
|
||||
{
|
||||
//load nib
|
||||
self.windowController = [[InfoWindowController alloc] initWithWindowNibName:@"FileInfoWindow"];
|
||||
}
|
||||
//load extension info window
|
||||
//load networking info window
|
||||
else if(YES == [selectedItem isKindOfClass:[Connection class]])
|
||||
{
|
||||
//load nib
|
||||
self.windowController = [[InfoWindowController alloc] initWithWindowNibName:@"ConnectionInfoWindow"];
|
||||
self.windowController = [[InfoWindowController alloc] initWithWindowNibName:@"NetworkInfoWindow"];
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
//save item
|
||||
self.windowController.itemObj = selectedItem;
|
||||
}
|
||||
@@ -113,6 +102,10 @@
|
||||
//file
|
||||
// ->when showing info about a file
|
||||
File* file = nil;
|
||||
|
||||
//connection
|
||||
// ->when showing info about a connection
|
||||
Connection* connection = nil;
|
||||
|
||||
//handle tasks
|
||||
if(YES == [self.itemObj isKindOfClass:[Task class]])
|
||||
@@ -260,7 +253,7 @@
|
||||
[self.path setStringValue:self.itemObj.path];
|
||||
|
||||
//set type
|
||||
[self.type setStringValue:[self valueForStringItem:((File*)self.itemObj).type default:@"unknown"]];
|
||||
[self.type setStringValue:[self valueForStringItem:file.type default:@"unknown"]];
|
||||
|
||||
//set size
|
||||
[self.size setStringValue:[NSString stringWithFormat:@"%llu bytes", self.itemObj.attributes.fileSize]];
|
||||
@@ -269,37 +262,30 @@
|
||||
[self.date setStringValue:[NSString stringWithFormat:@"%@ (created) / %@ (modified)", self.itemObj.attributes.fileCreationDate, self.itemObj.attributes.fileModificationDate]];
|
||||
}
|
||||
|
||||
/*
|
||||
//handle Extension class
|
||||
if(YES == [self.itemObj isKindOfClass:[Extension class]])
|
||||
//handle Connection class
|
||||
else if(YES == [self.itemObj isKindOfClass:[Connection class]])
|
||||
{
|
||||
//typecast
|
||||
connection = (Connection*)self.itemObj;
|
||||
|
||||
//set icon
|
||||
self.icon.image = getIconForBinary(((Extension*)itemObj).browser, nil);
|
||||
self.icon.image = itemObj.icon;
|
||||
|
||||
//set name
|
||||
[self.name setStringValue:self.itemObj.name];
|
||||
//set connection string
|
||||
[self.name setStringValue:connection.endpoints];
|
||||
|
||||
//set path
|
||||
[self.path setStringValue:self.itemObj.path];
|
||||
//set type
|
||||
[self.type setStringValue:[self valueForStringItem:connection.type default:@"unknown"]];
|
||||
|
||||
//set description
|
||||
// ->optional
|
||||
if(nil != ((Extension*)self.itemObj).details)
|
||||
{
|
||||
//set
|
||||
[self.details setStringValue:[NSString stringWithFormat:@"%@", ((Extension*)self.itemObj).details]];
|
||||
}
|
||||
|
||||
//set id
|
||||
[self.identifier setStringValue:[NSString stringWithFormat:@"%@", ((Extension*)self.itemObj).identifier]];
|
||||
//set proto
|
||||
[self.protocol setStringValue:[self valueForStringItem:connection.proto default:@"unknown"]];
|
||||
|
||||
//set date
|
||||
[self.date setStringValue:[NSString stringWithFormat:@"%@ (created) / %@ (modified)", ((File*)self.itemObj).attributes.fileCreationDate, ((File*)self.itemObj).attributes.fileModificationDate]];
|
||||
//set family
|
||||
[self.family setStringValue:[self valueForStringItem:connection.family default:@"unknown"]];
|
||||
|
||||
//set signing info
|
||||
//[self.sign setStringValue:[(File*)self.itemObj formatSigningInfo]];
|
||||
//set status
|
||||
[self.state setStringValue:[self valueForStringItem:connection.state default:@"unknown"]];
|
||||
}
|
||||
*/
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -695,15 +695,9 @@ NSTableCellView* createNetworkView(NSTableView* tableView, id owner, Connection*
|
||||
//item cell
|
||||
NSTableCellView* connectionCell = nil;
|
||||
|
||||
//connection endpoint
|
||||
NSMutableString* endpoints = nil;
|
||||
|
||||
//connection details
|
||||
NSMutableString* details = nil;
|
||||
|
||||
//alloc string for endpoints
|
||||
endpoints = [NSMutableString string];
|
||||
|
||||
//alloc string for details
|
||||
details = [NSMutableString string];
|
||||
|
||||
@@ -715,54 +709,16 @@ NSTableCellView* createNetworkView(NSTableView* tableView, id owner, Connection*
|
||||
goto bail;
|
||||
}
|
||||
|
||||
//reset icon
|
||||
connectionCell.imageView.image = nil;
|
||||
|
||||
//set icon for TCP sockets
|
||||
//TODO: (re)set default icon!?
|
||||
if(nil != connection.state)
|
||||
{
|
||||
//listening
|
||||
if(YES == [connection.state isEqualToString:SOCKET_LISTENING])
|
||||
{
|
||||
//set
|
||||
connectionCell.imageView.image = [NSImage imageNamed:@"listeningIcon"];
|
||||
}
|
||||
//connected
|
||||
else if(YES == [connection.state isEqualToString:SOCKET_ESTABLISHED])
|
||||
{
|
||||
//set
|
||||
connectionCell.imageView.image = [NSImage imageNamed:@"connectedIcon"];
|
||||
}
|
||||
}
|
||||
|
||||
//set icon for UDP sockets
|
||||
// ->can't listen, so just show em as streaming
|
||||
else if(YES == [connection.type isEqualToString:@"SOCK_DGRAM"])
|
||||
{
|
||||
//set
|
||||
connectionCell.imageView.image = [NSImage imageNamed:@"streamIcon"];
|
||||
}
|
||||
//set icon
|
||||
connectionCell.imageView.image = connection.icon;
|
||||
|
||||
//default
|
||||
// ->(re)set main textfield's color to black
|
||||
connectionCell.textField.textColor = [NSColor blackColor];
|
||||
|
||||
//add local addr/port to endpoint string
|
||||
[endpoints appendString:[NSString stringWithFormat:@"%@:%d", connection.localIPAddr, [connection.localPort unsignedShortValue]]];
|
||||
|
||||
//for remote connections
|
||||
// ->add remote endpoint
|
||||
if( (nil != connection.remoteIPAddr) &&
|
||||
(nil != connection.remotePort) )
|
||||
{
|
||||
//add remote endpoint
|
||||
[endpoints appendString:[NSString stringWithFormat:@" -> %@:%d", connection.remoteIPAddr, [connection.remotePort unsignedShortValue]]];
|
||||
}
|
||||
|
||||
//set main text
|
||||
// ->connection endpoints
|
||||
[connectionCell.textField setStringValue:endpoints];
|
||||
[connectionCell.textField setStringValue:connection.endpoints];
|
||||
|
||||
//set details
|
||||
// ->TCP socket
|
||||
|
||||
@@ -38,8 +38,18 @@
|
||||
//socket state
|
||||
@property(nonatomic, retain)NSString* state;
|
||||
|
||||
//pretty print of connnection
|
||||
@property(nonatomic, retain)NSMutableString* endpoints;
|
||||
|
||||
|
||||
/* METHODS */
|
||||
|
||||
//set icon
|
||||
-(void)setConnectionIcon;
|
||||
|
||||
//return a string representation of the connection
|
||||
-(void)setConnectionString;
|
||||
|
||||
|
||||
|
||||
@end
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
|
||||
@implementation Connection
|
||||
|
||||
@synthesize endpoints;
|
||||
|
||||
//init method
|
||||
-(id)initWithParams:(NSDictionary*)params
|
||||
{
|
||||
@@ -21,6 +23,9 @@
|
||||
self = [super init];
|
||||
if(nil != self)
|
||||
{
|
||||
//alloc string for connection
|
||||
endpoints = [NSMutableString string];
|
||||
|
||||
//extract/save local addr
|
||||
self.localIPAddr = params[KEY_LOCAL_ADDR];
|
||||
|
||||
@@ -44,12 +49,69 @@
|
||||
|
||||
//extract/save state
|
||||
self.state = params[KEY_SOCKET_STATE];
|
||||
|
||||
//set icon
|
||||
[self setConnectionIcon];
|
||||
|
||||
//build/set connection string
|
||||
[self setConnectionString];
|
||||
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
//set icon
|
||||
// ->based on state
|
||||
-(void)setConnectionIcon
|
||||
{
|
||||
//set icon for TCP sockets
|
||||
if(nil != self.state)
|
||||
{
|
||||
//listening
|
||||
if(YES == [self.state isEqualToString:SOCKET_LISTENING])
|
||||
{
|
||||
//set
|
||||
self.icon = [NSImage imageNamed:@"listeningIcon"];
|
||||
}
|
||||
//connected
|
||||
else if(YES == [self.state isEqualToString:SOCKET_ESTABLISHED])
|
||||
{
|
||||
//set
|
||||
self.icon = [NSImage imageNamed:@"connectedIcon"];
|
||||
}
|
||||
}
|
||||
|
||||
//set icon for UDP sockets
|
||||
// ->can't listen, so just show em as streaming
|
||||
else if(YES == [self.type isEqualToString:@"SOCK_DGRAM"])
|
||||
{
|
||||
//set
|
||||
self.icon = [NSImage imageNamed:@"streamIcon"];
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
//build nice string
|
||||
-(void)setConnectionString
|
||||
{
|
||||
//add local addr/port to endpoint string
|
||||
[self.endpoints appendString:[NSString stringWithFormat:@"%@:%d", self.localIPAddr, [self.localPort unsignedShortValue]]];
|
||||
|
||||
//for remote connections
|
||||
// ->add remote endpoint
|
||||
if( (nil != self.remoteIPAddr) &&
|
||||
(nil != self.remotePort) )
|
||||
{
|
||||
//add remote endpoint
|
||||
[self.endpoints appendString:[NSString stringWithFormat:@" -> %@:%d", self.remoteIPAddr, [self.remotePort unsignedShortValue]]];
|
||||
}
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
//convert object to JSON string
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
1D21BC4F172AF43D009D1CFD /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D21BC4E172AF43D009D1CFD /* Cocoa.framework */; };
|
||||
CD001B371AB903040089014A /* kkText.png in Resources */ = {isa = PBXBuildFile; fileRef = CD001B341AB903040089014A /* kkText.png */; };
|
||||
CD001B381AB903040089014A /* logo.png in Resources */ = {isa = PBXBuildFile; fileRef = CD001B351AB903040089014A /* logo.png */; };
|
||||
CD001B391AB903040089014A /* logoApple.png in Resources */ = {isa = PBXBuildFile; fileRef = CD001B361AB903040089014A /* logoApple.png */; };
|
||||
CD02194F1AD34D8B005148A2 /* AboutWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CD02194D1AD34D8B005148A2 /* AboutWindow.xib */; };
|
||||
@@ -84,6 +83,13 @@
|
||||
CDD248341AF5947300232422 /* TAAdaptiveSpaceItem.m in Sources */ = {isa = PBXBuildFile; fileRef = CDD248311AF5947300232422 /* TAAdaptiveSpaceItem.m */; };
|
||||
CDD248351AF5947300232422 /* TAAdaptiveSpaceItemView.m in Sources */ = {isa = PBXBuildFile; fileRef = CDD248331AF5947300232422 /* TAAdaptiveSpaceItemView.m */; };
|
||||
CDD2483B1AF5CC4D00232422 /* Task.m in Sources */ = {isa = PBXBuildFile; fileRef = CDD2483A1AF5CC4D00232422 /* Task.m */; };
|
||||
CDEE76FC1B3FD44500763826 /* saveIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = CDEE76FB1B3FD44500763826 /* saveIcon.png */; };
|
||||
CDEE76FF1B3FD4B000763826 /* saveIconBG.png in Resources */ = {isa = PBXBuildFile; fileRef = CDEE76FD1B3FD4B000763826 /* saveIconBG.png */; };
|
||||
CDEE77001B3FD4B000763826 /* saveIconOver.png in Resources */ = {isa = PBXBuildFile; fileRef = CDEE76FE1B3FD4B000763826 /* saveIconOver.png */; };
|
||||
CDEE77021B3FD55600763826 /* teText.png in Resources */ = {isa = PBXBuildFile; fileRef = CDEE77011B3FD55600763826 /* teText.png */; };
|
||||
CDEE77061B41220300763826 /* search.png in Resources */ = {isa = PBXBuildFile; fileRef = CDEE77031B41220300763826 /* search.png */; };
|
||||
CDEE77071B41220300763826 /* searchBG.png in Resources */ = {isa = PBXBuildFile; fileRef = CDEE77041B41220300763826 /* searchBG.png */; };
|
||||
CDEE77081B41220300763826 /* searchOver.png in Resources */ = {isa = PBXBuildFile; fileRef = CDEE77051B41220300763826 /* searchOver.png */; };
|
||||
CDF08CBF1AC3DE25009B3423 /* logoAppleBG.png in Resources */ = {isa = PBXBuildFile; fileRef = CDF08CBE1AC3DE25009B3423 /* logoAppleBG.png */; };
|
||||
CDF08CC11AC3E8B0009B3423 /* showOver.png in Resources */ = {isa = PBXBuildFile; fileRef = CDF08CC01AC3E8B0009B3423 /* showOver.png */; };
|
||||
CDF08CC31AC3E98D009B3423 /* infoOver.png in Resources */ = {isa = PBXBuildFile; fileRef = CDF08CC21AC3E98D009B3423 /* infoOver.png */; };
|
||||
@@ -133,7 +139,6 @@
|
||||
1D21BC51172AF43D009D1CFD /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
|
||||
1D21BC52172AF43D009D1CFD /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
|
||||
1D21BC53172AF43D009D1CFD /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||
CD001B341AB903040089014A /* kkText.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = kkText.png; path = images/kkText.png; sourceTree = SOURCE_ROOT; };
|
||||
CD001B351AB903040089014A /* logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = logo.png; path = images/logo.png; sourceTree = SOURCE_ROOT; };
|
||||
CD001B361AB903040089014A /* logoApple.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = logoApple.png; path = images/logoApple.png; sourceTree = SOURCE_ROOT; };
|
||||
CD02194D1AD34D8B005148A2 /* AboutWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = AboutWindow.xib; path = UI/AboutWindow.xib; sourceTree = "<group>"; };
|
||||
@@ -239,6 +244,13 @@
|
||||
CDD248331AF5947300232422 /* TAAdaptiveSpaceItemView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TAAdaptiveSpaceItemView.m; path = 3rdParty/TAAdaptiveSpaceItemView.m; sourceTree = "<group>"; };
|
||||
CDD248391AF5CC4D00232422 /* Task.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Task.h; sourceTree = SOURCE_ROOT; };
|
||||
CDD2483A1AF5CC4D00232422 /* Task.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Task.m; sourceTree = SOURCE_ROOT; };
|
||||
CDEE76FB1B3FD44500763826 /* saveIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = saveIcon.png; path = images/saveIcon.png; sourceTree = SOURCE_ROOT; };
|
||||
CDEE76FD1B3FD4B000763826 /* saveIconBG.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = saveIconBG.png; path = images/saveIconBG.png; sourceTree = SOURCE_ROOT; };
|
||||
CDEE76FE1B3FD4B000763826 /* saveIconOver.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = saveIconOver.png; path = images/saveIconOver.png; sourceTree = SOURCE_ROOT; };
|
||||
CDEE77011B3FD55600763826 /* teText.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = teText.png; path = images/teText.png; sourceTree = SOURCE_ROOT; };
|
||||
CDEE77031B41220300763826 /* search.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = search.png; path = images/search.png; sourceTree = SOURCE_ROOT; };
|
||||
CDEE77041B41220300763826 /* searchBG.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = searchBG.png; path = images/searchBG.png; sourceTree = SOURCE_ROOT; };
|
||||
CDEE77051B41220300763826 /* searchOver.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = searchOver.png; path = images/searchOver.png; sourceTree = SOURCE_ROOT; };
|
||||
CDF08CBE1AC3DE25009B3423 /* logoAppleBG.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = logoAppleBG.png; path = images/logoAppleBG.png; sourceTree = SOURCE_ROOT; };
|
||||
CDF08CC01AC3E8B0009B3423 /* showOver.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = showOver.png; path = images/showOver.png; sourceTree = SOURCE_ROOT; };
|
||||
CDF08CC21AC3E98D009B3423 /* infoOver.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = infoOver.png; path = images/infoOver.png; sourceTree = SOURCE_ROOT; };
|
||||
@@ -381,6 +393,13 @@
|
||||
CD6095501A8329FA00E091CD /* images */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CDEE77031B41220300763826 /* search.png */,
|
||||
CDEE77041B41220300763826 /* searchBG.png */,
|
||||
CDEE77051B41220300763826 /* searchOver.png */,
|
||||
CDEE77011B3FD55600763826 /* teText.png */,
|
||||
CDEE76FD1B3FD4B000763826 /* saveIconBG.png */,
|
||||
CDEE76FE1B3FD4B000763826 /* saveIconOver.png */,
|
||||
CDEE76FB1B3FD44500763826 /* saveIcon.png */,
|
||||
CD4D543E1B2FF32C00008030 /* signedAppleIcon.png */,
|
||||
CD4D54251B2EA94C00008030 /* streamIcon.png */,
|
||||
CD4D53D11B23ED4300008030 /* listeningIcon.png */,
|
||||
@@ -407,7 +426,6 @@
|
||||
CDF08CC21AC3E98D009B3423 /* infoOver.png */,
|
||||
CDF08CC01AC3E8B0009B3423 /* showOver.png */,
|
||||
CDF08CBE1AC3DE25009B3423 /* logoAppleBG.png */,
|
||||
CD001B341AB903040089014A /* kkText.png */,
|
||||
CD001B351AB903040089014A /* logo.png */,
|
||||
CD001B361AB903040089014A /* logoApple.png */,
|
||||
CDA81DD11A9970A0009790E2 /* signed.png */,
|
||||
@@ -607,10 +625,13 @@
|
||||
CDA81D691A95B4E9009790E2 /* bug.png in Resources */,
|
||||
CD02195E1AD39A74005148A2 /* ResultsWindow.xib in Resources */,
|
||||
CD3F4D141AF85088002A2647 /* FlatView.xib in Resources */,
|
||||
CDEE76FF1B3FD4B000763826 /* saveIconBG.png in Resources */,
|
||||
CDA81D5B1A95B4B4009790E2 /* InfoPlist.strings in Resources */,
|
||||
CD4D53CA1B20296E00008030 /* unknown.png in Resources */,
|
||||
CDEE77081B41220300763826 /* searchOver.png in Resources */,
|
||||
CDA81D6B1A95B4E9009790E2 /* show.png in Resources */,
|
||||
CDF08CF31ACA6864009B3423 /* browserIcon.png in Resources */,
|
||||
CDEE77061B41220300763826 /* search.png in Resources */,
|
||||
CDAB98A11AEAFAFA00C75B4B /* authorizationIcon.png in Resources */,
|
||||
CD001B391AB903040089014A /* logoApple.png in Resources */,
|
||||
CDF08CEF1ACA677B009B3423 /* launchIcon.png in Resources */,
|
||||
@@ -620,7 +641,9 @@
|
||||
CDF08CF01ACA677B009B3423 /* kernelIcon.png in Resources */,
|
||||
CD4D54261B2EA94C00008030 /* streamIcon.png in Resources */,
|
||||
CDF08CD01AC4C6E8009B3423 /* settingsBG.png in Resources */,
|
||||
CDEE77021B3FD55600763826 /* teText.png in Resources */,
|
||||
CD0219551AD34E4C005148A2 /* kkIcon.png in Resources */,
|
||||
CDEE76FC1B3FD44500763826 /* saveIcon.png in Resources */,
|
||||
CD0219591AD37748005148A2 /* unsigned2.png in Resources */,
|
||||
CD4D54281B2EAC7800008030 /* NetworkInfoWindow.xib in Resources */,
|
||||
CDA81D5C1A95B4B4009790E2 /* MainMenu.xib in Resources */,
|
||||
@@ -630,7 +653,6 @@
|
||||
CDA5F6C61B16E8D4003CE340 /* lockIcon.png in Resources */,
|
||||
CDA81DD41A9970A0009790E2 /* unsigned.png in Resources */,
|
||||
CD7B9FA71ACCAE5E00DF3C71 /* startScanOver.png in Resources */,
|
||||
CD001B371AB903040089014A /* kkText.png in Resources */,
|
||||
CDF08CC11AC3E8B0009B3423 /* showOver.png in Resources */,
|
||||
CD4D54241B2D082300008030 /* DylibInfoWindow.xib in Resources */,
|
||||
CDA81DCC1A9960A3009790E2 /* virusTotalBG.png in Resources */,
|
||||
@@ -645,6 +667,7 @@
|
||||
CD0219501AD34D8B005148A2 /* PrefsWindow.xib in Resources */,
|
||||
CDA81D6C1A95B4E9009790E2 /* showBG.png in Resources */,
|
||||
CD3F4CFF1AF72BC4002A2647 /* TaskInfoWindow.xib in Resources */,
|
||||
CDEE77001B3FD4B000763826 /* saveIconOver.png in Resources */,
|
||||
CDA81D6A1A95B4E9009790E2 /* mainIcon.png in Resources */,
|
||||
CDA81D711A95B4E9009790E2 /* stopScanBG.png in Resources */,
|
||||
CDF08CBF1AC3DE25009B3423 /* logoAppleBG.png in Resources */,
|
||||
@@ -660,6 +683,7 @@
|
||||
CDA81DCA1A9960A3009790E2 /* infoBG.png in Resources */,
|
||||
CDF08CD11AC4C6E8009B3423 /* settings.png in Resources */,
|
||||
CDA81DD31A9970A0009790E2 /* signed.png in Resources */,
|
||||
CDEE77071B41220300763826 /* searchBG.png in Resources */,
|
||||
CDA81E661AA020FD009790E2 /* FileInfoWindow.xib in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
|
||||
@@ -36,11 +36,11 @@
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AppDelegate.m"
|
||||
timestampString = "457155963.943682"
|
||||
timestampString = "457254594.166396"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "775"
|
||||
endingLineNumber = "775"
|
||||
startingLineNumber = "732"
|
||||
endingLineNumber = "732"
|
||||
landmarkName = "-reloadTaskTable"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
@@ -116,11 +116,11 @@
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AppDelegate.m"
|
||||
timestampString = "457149043.732031"
|
||||
timestampString = "457254554.748014"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "320"
|
||||
endingLineNumber = "320"
|
||||
startingLineNumber = "264"
|
||||
endingLineNumber = "264"
|
||||
landmarkName = "-changeViewController"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
@@ -174,11 +174,11 @@
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AppDelegate.m"
|
||||
timestampString = "457155963.943682"
|
||||
timestampString = "457254554.748014"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "479"
|
||||
endingLineNumber = "479"
|
||||
startingLineNumber = "417"
|
||||
endingLineNumber = "417"
|
||||
landmarkName = "-reloadBottomPane:itemView:"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
@@ -190,11 +190,11 @@
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AppDelegate.m"
|
||||
timestampString = "457155963.943682"
|
||||
timestampString = "457254554.748014"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "497"
|
||||
endingLineNumber = "497"
|
||||
startingLineNumber = "435"
|
||||
endingLineNumber = "435"
|
||||
landmarkName = "-reloadBottomPane:itemView:"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
@@ -295,22 +295,6 @@
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AppDelegate.m"
|
||||
timestampString = "457155963.943682"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "1699"
|
||||
endingLineNumber = "1699"
|
||||
landmarkName = "-filterTasks:"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
@@ -334,11 +318,11 @@
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AppDelegate.m"
|
||||
timestampString = "457155963.943682"
|
||||
timestampString = "457254594.166396"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "1468"
|
||||
endingLineNumber = "1468"
|
||||
startingLineNumber = "1493"
|
||||
endingLineNumber = "1493"
|
||||
landmarkName = "-selectBottomPaneContent:"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
@@ -350,11 +334,11 @@
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AppDelegate.m"
|
||||
timestampString = "457155963.943682"
|
||||
timestampString = "457254594.166396"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "1460"
|
||||
endingLineNumber = "1460"
|
||||
startingLineNumber = "1485"
|
||||
endingLineNumber = "1485"
|
||||
landmarkName = "-switchView:"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
@@ -366,11 +350,11 @@
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AppDelegate.m"
|
||||
timestampString = "457155963.943682"
|
||||
timestampString = "457254594.166396"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "1456"
|
||||
endingLineNumber = "1456"
|
||||
startingLineNumber = "1481"
|
||||
endingLineNumber = "1481"
|
||||
landmarkName = "-switchView:"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
@@ -382,11 +366,11 @@
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AppDelegate.m"
|
||||
timestampString = "457155963.943682"
|
||||
timestampString = "457254594.166396"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "1584"
|
||||
endingLineNumber = "1584"
|
||||
startingLineNumber = "1609"
|
||||
endingLineNumber = "1609"
|
||||
landmarkName = "-controlTextDidChange:"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
@@ -398,11 +382,11 @@
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Filter.m"
|
||||
timestampString = "456909793.016924"
|
||||
timestampString = "457245107.734201"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "50"
|
||||
endingLineNumber = "50"
|
||||
startingLineNumber = "91"
|
||||
endingLineNumber = "91"
|
||||
landmarkName = "-filterFiles:items:results:"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
@@ -414,11 +398,11 @@
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AppDelegate.m"
|
||||
timestampString = "457155963.943682"
|
||||
timestampString = "457254594.166396"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "1651"
|
||||
endingLineNumber = "1651"
|
||||
startingLineNumber = "1694"
|
||||
endingLineNumber = "1694"
|
||||
landmarkName = "-controlTextDidChange:"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
@@ -430,11 +414,11 @@
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Filter.m"
|
||||
timestampString = "456909837.519019"
|
||||
timestampString = "457245107.734201"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "84"
|
||||
endingLineNumber = "84"
|
||||
startingLineNumber = "125"
|
||||
endingLineNumber = "125"
|
||||
landmarkName = "-filterConnections:items:results:"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
@@ -471,22 +455,6 @@
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "InfoWindowController.m"
|
||||
timestampString = "457146576.340811"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "250"
|
||||
endingLineNumber = "250"
|
||||
landmarkName = "-configure"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
@@ -510,11 +478,11 @@
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AppDelegate.m"
|
||||
timestampString = "457155963.943682"
|
||||
timestampString = "457254594.166396"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "581"
|
||||
endingLineNumber = "581"
|
||||
startingLineNumber = "530"
|
||||
endingLineNumber = "530"
|
||||
landmarkName = "-reloadBinary:"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
@@ -526,14 +494,110 @@
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AppDelegate.m"
|
||||
timestampString = "457155963.943682"
|
||||
timestampString = "457254594.166396"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "610"
|
||||
endingLineNumber = "610"
|
||||
startingLineNumber = "559"
|
||||
endingLineNumber = "559"
|
||||
landmarkName = "-reloadBinary:"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AppDelegate.m"
|
||||
timestampString = "457254594.166396"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "1173"
|
||||
endingLineNumber = "1173"
|
||||
landmarkName = "-buttonAppearance:shouldReset:"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AppDelegate.m"
|
||||
timestampString = "457254594.166396"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "1185"
|
||||
endingLineNumber = "1185"
|
||||
landmarkName = "-buttonAppearance:shouldReset:"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AppDelegate.m"
|
||||
timestampString = "457254594.166396"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "1070"
|
||||
endingLineNumber = "1070"
|
||||
landmarkName = "-mouseEntered:"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AppDelegate.m"
|
||||
timestampString = "457254594.166396"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "1080"
|
||||
endingLineNumber = "1080"
|
||||
landmarkName = "-mouseExited:"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AppDelegate.m"
|
||||
timestampString = "457254594.166396"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "633"
|
||||
endingLineNumber = "633"
|
||||
landmarkName = "-initTrackingAreas"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AppDelegate.m"
|
||||
timestampString = "457254594.166396"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "1090"
|
||||
endingLineNumber = "1090"
|
||||
landmarkName = "-buttonAppearance:shouldReset:"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
</Breakpoints>
|
||||
</Bucket>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" alternatingRowBackgroundColors="YES" columnReordering="NO" columnResizing="NO" multipleSelection="NO" emptySelection="NO" autosaveColumns="NO" typeSelect="NO" rowHeight="40" rowSizeStyle="automatic" viewBased="YES" id="fb0-7X-Sm6">
|
||||
<rect key="frame" x="0.0" y="0.0" width="1298" height="0.0"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="1304" height="0.0"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<size key="intercellSpacing" width="3" height="2"/>
|
||||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
@@ -73,10 +73,10 @@
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<button toolTip="show in finder" verticalHuggingPriority="750" ambiguous="YES" misplaced="YES" tag="107" translatesAutoresizingMaskIntoConstraints="NO" id="Y4J-KD-8iy">
|
||||
<rect key="frame" x="1263" y="17" width="15" height="15"/>
|
||||
<rect key="frame" x="1263" y="15" width="18" height="18"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="15" id="Nro-9M-6Xg"/>
|
||||
<constraint firstAttribute="width" constant="15" id="rEk-W0-lvD"/>
|
||||
<constraint firstAttribute="height" constant="18" id="Nro-9M-6Xg"/>
|
||||
<constraint firstAttribute="width" constant="18" id="rEk-W0-lvD"/>
|
||||
</constraints>
|
||||
<buttonCell key="cell" type="bevel" bezelStyle="regularSquare" image="show" imagePosition="only" alignment="center" alternateImage="showBG" state="on" imageScaling="proportionallyDown" inset="2" id="Xle-cK-MOQ">
|
||||
<behavior key="behavior" lightByContents="YES"/>
|
||||
@@ -173,8 +173,8 @@
|
||||
<constraint firstItem="eBe-7K-OiH" firstAttribute="leading" secondItem="Dtg-ac-EVZ" secondAttribute="trailing" constant="18" id="Dd1-7F-oi4"/>
|
||||
<constraint firstItem="miW-QO-gna" firstAttribute="leading" secondItem="cG6-PF-La2" secondAttribute="trailing" constant="8" id="J3y-8b-F3q"/>
|
||||
<constraint firstItem="MqO-G8-w9L" firstAttribute="leading" secondItem="aPz-9H-xyy" secondAttribute="trailing" constant="9" id="Rfl-hR-rxD"/>
|
||||
<constraint firstItem="Y4J-KD-8iy" firstAttribute="leading" secondItem="eBe-7K-OiH" secondAttribute="trailing" constant="20" id="TAx-KS-R7a"/>
|
||||
<constraint firstAttribute="trailing" secondItem="Y4J-KD-8iy" secondAttribute="trailing" constant="10" id="iMf-M4-bv0"/>
|
||||
<constraint firstItem="Y4J-KD-8iy" firstAttribute="leading" secondItem="eBe-7K-OiH" secondAttribute="trailing" constant="17" id="TAx-KS-R7a"/>
|
||||
<constraint firstAttribute="trailing" secondItem="Y4J-KD-8iy" secondAttribute="trailing" constant="8" id="iMf-M4-bv0"/>
|
||||
<constraint firstAttribute="trailing" secondItem="gpF-bM-EQR" secondAttribute="trailing" constant="4" id="myW-Ol-OIp"/>
|
||||
<constraint firstItem="Dtg-ac-EVZ" firstAttribute="leading" secondItem="miW-QO-gna" secondAttribute="trailing" constant="8" id="rxd-Fp-O3o"/>
|
||||
<constraint firstItem="gpF-bM-EQR" firstAttribute="leading" secondItem="MqO-G8-w9L" secondAttribute="trailing" constant="10" id="tLu-Y9-F4d"/>
|
||||
@@ -205,10 +205,10 @@
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<button toolTip="show in finder" verticalHuggingPriority="750" ambiguous="YES" misplaced="YES" tag="107" translatesAutoresizingMaskIntoConstraints="NO" id="bau-Td-7ST">
|
||||
<rect key="frame" x="1263" y="17" width="15" height="15"/>
|
||||
<rect key="frame" x="1263" y="15" width="18" height="18"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="15" id="DPj-gb-dIB"/>
|
||||
<constraint firstAttribute="width" constant="15" id="oNg-zE-nJv"/>
|
||||
<constraint firstAttribute="height" constant="18" id="DPj-gb-dIB"/>
|
||||
<constraint firstAttribute="width" constant="18" id="oNg-zE-nJv"/>
|
||||
</constraints>
|
||||
<buttonCell key="cell" type="bevel" bezelStyle="regularSquare" image="show" imagePosition="only" alignment="center" alternateImage="showBG" state="on" imageScaling="proportionallyDown" inset="2" id="PQ1-ho-YTb">
|
||||
<behavior key="behavior" lightByContents="YES"/>
|
||||
@@ -267,7 +267,7 @@
|
||||
<constraint firstAttribute="width" constant="15" id="CAs-CP-Cfn"/>
|
||||
<constraint firstAttribute="height" constant="15" id="Nyk-SH-8p6"/>
|
||||
</constraints>
|
||||
<buttonCell key="cell" type="bevel" bezelStyle="regularSquare" image="info" imagePosition="only" alignment="center" alternateImage="infoBG" state="on" imageScaling="proportionallyDown" inset="2" id="7oW-jB-dbZ">
|
||||
<buttonCell key="cell" type="bevel" bezelStyle="regularSquare" image="info" imagePosition="overlaps" alignment="center" alternateImage="infoBG" state="on" imageScaling="proportionallyDown" inset="2" id="7oW-jB-dbZ">
|
||||
<behavior key="behavior" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
@@ -291,10 +291,10 @@
|
||||
<constraint firstItem="Nvb-5R-deG" firstAttribute="leading" secondItem="FC1-IO-3xs" secondAttribute="trailing" constant="18" id="B3b-K8-iKu"/>
|
||||
<constraint firstItem="d6d-We-r4h" firstAttribute="leading" secondItem="mKM-Ea-CdX" secondAttribute="trailing" constant="9" id="Geb-Pj-PW9"/>
|
||||
<constraint firstItem="FC1-IO-3xs" firstAttribute="leading" secondItem="s79-UC-kl8" secondAttribute="trailing" constant="8" id="Rb2-Pf-nT9"/>
|
||||
<constraint firstAttribute="trailing" secondItem="bau-Td-7ST" secondAttribute="trailing" constant="10" id="YV7-dd-VnF"/>
|
||||
<constraint firstAttribute="trailing" secondItem="bau-Td-7ST" secondAttribute="trailing" constant="8" id="YV7-dd-VnF"/>
|
||||
<constraint firstItem="s79-UC-kl8" firstAttribute="leading" secondItem="AMp-Sl-IUz" secondAttribute="leading" constant="13" id="jUo-Cu-hm3"/>
|
||||
<constraint firstItem="DCt-ke-ecy" firstAttribute="leading" secondItem="d6d-We-r4h" secondAttribute="trailing" constant="10" id="mQm-zs-mcQ"/>
|
||||
<constraint firstItem="bau-Td-7ST" firstAttribute="leading" secondItem="Nvb-5R-deG" secondAttribute="trailing" constant="20" id="p6O-3z-4Kx"/>
|
||||
<constraint firstItem="bau-Td-7ST" firstAttribute="leading" secondItem="Nvb-5R-deG" secondAttribute="trailing" constant="17" id="p6O-3z-4Kx"/>
|
||||
<constraint firstAttribute="trailing" secondItem="DCt-ke-ecy" secondAttribute="trailing" constant="4" id="paK-cH-SPa"/>
|
||||
</constraints>
|
||||
<connections>
|
||||
@@ -314,10 +314,10 @@
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<button toolTip="show in finder" verticalHuggingPriority="750" ambiguous="YES" misplaced="YES" tag="107" translatesAutoresizingMaskIntoConstraints="NO" id="yDq-tI-YQJ">
|
||||
<rect key="frame" x="1263" y="17" width="15" height="15"/>
|
||||
<rect key="frame" x="1263" y="15" width="18" height="18"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="15" id="weN-ut-xDd"/>
|
||||
<constraint firstAttribute="width" constant="15" id="zwd-5o-XMf"/>
|
||||
<constraint firstAttribute="height" constant="18" id="weN-ut-xDd"/>
|
||||
<constraint firstAttribute="width" constant="18" id="zwd-5o-XMf"/>
|
||||
</constraints>
|
||||
<buttonCell key="cell" type="bevel" bezelStyle="regularSquare" image="show" imagePosition="only" alignment="center" alternateImage="showBG" state="on" imageScaling="proportionallyDown" inset="2" id="i29-A9-Sv1">
|
||||
<behavior key="behavior" lightByContents="YES"/>
|
||||
@@ -376,8 +376,8 @@
|
||||
<constraints>
|
||||
<constraint firstAttribute="trailing" secondItem="27e-wh-BEp" secondAttribute="trailing" constant="4" id="Ft1-LY-Scf"/>
|
||||
<constraint firstItem="gwn-Wz-bDY" firstAttribute="leading" secondItem="zC6-7V-PKY" secondAttribute="leading" constant="13" id="GEK-N3-wIC"/>
|
||||
<constraint firstItem="yDq-tI-YQJ" firstAttribute="leading" secondItem="8Vk-bl-kjr" secondAttribute="trailing" constant="20" id="aV6-Hu-Y5b"/>
|
||||
<constraint firstAttribute="trailing" secondItem="yDq-tI-YQJ" secondAttribute="trailing" constant="10" id="fqn-su-UYW"/>
|
||||
<constraint firstItem="yDq-tI-YQJ" firstAttribute="leading" secondItem="8Vk-bl-kjr" secondAttribute="trailing" constant="17" id="aV6-Hu-Y5b"/>
|
||||
<constraint firstAttribute="trailing" secondItem="yDq-tI-YQJ" secondAttribute="trailing" constant="8" id="fqn-su-UYW"/>
|
||||
<constraint firstItem="27e-wh-BEp" firstAttribute="leading" secondItem="tIY-Ij-plN" secondAttribute="trailing" constant="10" id="w6k-vz-Q6U"/>
|
||||
</constraints>
|
||||
<connections>
|
||||
|
||||
@@ -1,141 +1,105 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="7702" systemVersion="14D136" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="7706" systemVersion="14D136" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||
<dependencies>
|
||||
<deployment identifier="macosx"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="7702"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="7706"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<customObject id="-2" userLabel="File's Owner" customClass="InfoWindowController">
|
||||
<connections>
|
||||
<outlet property="connection" destination="NA2-2e-4hN" id="XMN-mp-7hv"/>
|
||||
<outlet property="date" destination="Wbv-SK-w53" id="Li5-qD-Hxq"/>
|
||||
<outlet property="family" destination="Wbv-SK-w53" id="Ed4-yA-B9v"/>
|
||||
<outlet property="hashes" destination="GQc-va-MLN" id="ta6-6g-dzh"/>
|
||||
<outlet property="icon" destination="l8H-S3-g8O" id="P7o-8z-MjY"/>
|
||||
<outlet property="icon" destination="l8H-S3-g8O" id="BO7-3z-ZLM"/>
|
||||
<outlet property="name" destination="NA2-2e-4hN" id="0Lg-xP-m03"/>
|
||||
<outlet property="path" destination="dY9-WD-WAf" id="7Lg-cs-t0f"/>
|
||||
<outlet property="plist" destination="vm8-PU-Bu0" id="9mC-ha-tfK"/>
|
||||
<outlet property="sign" destination="5Rx-Vm-7gm" id="3g2-Ay-zQ4"/>
|
||||
<outlet property="protocol" destination="hLU-fi-qXH" id="tyd-MH-eeo"/>
|
||||
<outlet property="size" destination="hLU-fi-qXH" id="wZf-h4-BKf"/>
|
||||
<outlet property="state" destination="vm8-PU-Bu0" id="7w4-tn-ItA"/>
|
||||
<outlet property="status" destination="vm8-PU-Bu0" id="nbA-pd-Eha"/>
|
||||
<outlet property="type" destination="GQc-va-MLN" id="l7V-wT-132"/>
|
||||
<outlet property="window" destination="F0z-JX-Cv5" id="gIp-Ho-8D9"/>
|
||||
</connections>
|
||||
</customObject>
|
||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||
<window title="File Information" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" oneShot="NO" releasedWhenClosed="NO" animationBehavior="default" id="F0z-JX-Cv5">
|
||||
<window title="Network Information" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" oneShot="NO" releasedWhenClosed="NO" animationBehavior="default" id="F0z-JX-Cv5" userLabel="Network Information">
|
||||
<windowStyleMask key="styleMask" titled="YES" closable="YES" texturedBackground="YES"/>
|
||||
<rect key="contentRect" x="196" y="240" width="646" height="260"/>
|
||||
<rect key="contentRect" x="196" y="240" width="646" height="221"/>
|
||||
<rect key="screenRect" x="0.0" y="0.0" width="1440" height="877"/>
|
||||
<view key="contentView" id="se5-gp-TjO">
|
||||
<rect key="frame" x="0.0" y="0.0" width="646" height="260"/>
|
||||
<rect key="frame" x="0.0" y="-5" width="646" height="221"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="NA2-2e-4hN">
|
||||
<rect key="frame" x="73" y="226" width="553" height="29"/>
|
||||
<rect key="frame" x="73" y="172" width="553" height="29"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" sendsActionOnEndEditing="YES" title="Item Name" id="pYD-IR-Vtv">
|
||||
<font key="font" size="20" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" setsMaxLayoutWidthAtFirstLayout="YES" translatesAutoresizingMaskIntoConstraints="NO" id="dY9-WD-WAf">
|
||||
<rect key="frame" x="75" y="191" width="553" height="34"/>
|
||||
<textFieldCell key="cell" selectable="YES" sendsActionOnEndEditing="YES" title="Item Path" id="MfU-Jb-agl">
|
||||
<font key="font" size="11" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="GMp-1g-TFI">
|
||||
<rect key="frame" x="8" y="149" width="59" height="18"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="hash:" id="fYa-Av-reX">
|
||||
<rect key="frame" x="8" y="110" width="59" height="18"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="type:" id="fYa-Av-reX">
|
||||
<font key="font" size="11" name="Menlo-Bold"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="GQc-va-MLN">
|
||||
<rect key="frame" x="75" y="149" width="555" height="18"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" selectable="YES" allowsUndo="NO" sendsActionOnEndEditing="YES" alignment="left" title="item hash" id="yYo-KQ-DMm">
|
||||
<rect key="frame" x="75" y="110" width="555" height="18"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" selectable="YES" allowsUndo="NO" sendsActionOnEndEditing="YES" alignment="left" title="connection type" id="yYo-KQ-DMm">
|
||||
<font key="font" size="11" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="hLU-fi-qXH">
|
||||
<rect key="frame" x="75" y="129" width="555" height="18"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" selectable="YES" allowsUndo="NO" sendsActionOnEndEditing="YES" alignment="left" title="item size" id="XJ7-Go-bkG">
|
||||
<rect key="frame" x="75" y="90" width="555" height="18"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" selectable="YES" allowsUndo="NO" sendsActionOnEndEditing="YES" alignment="left" title="connection protocol" id="XJ7-Go-bkG">
|
||||
<font key="font" size="11" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Wbv-SK-w53">
|
||||
<rect key="frame" x="75" y="108" width="555" height="18"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" selectable="YES" allowsUndo="NO" sendsActionOnEndEditing="YES" alignment="left" title="item creation/modified" id="hR8-Wz-esN">
|
||||
<font key="font" size="11" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" setsMaxLayoutWidthAtFirstLayout="YES" translatesAutoresizingMaskIntoConstraints="NO" id="5Rx-Vm-7gm">
|
||||
<rect key="frame" x="75" y="51" width="554" height="34"/>
|
||||
<textFieldCell key="cell" selectable="YES" allowsUndo="NO" sendsActionOnEndEditing="YES" alignment="left" title="signing status" id="00d-h4-SPW">
|
||||
<font key="font" size="11" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="vm8-PU-Bu0">
|
||||
<rect key="frame" x="76" y="88" width="554" height="18"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" allowsUndo="NO" sendsActionOnEndEditing="YES" alignment="left" title="plist" id="23w-N2-C5Z">
|
||||
<rect key="frame" x="76" y="49" width="555" height="18"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" selectable="YES" allowsUndo="NO" sendsActionOnEndEditing="YES" alignment="left" title="connection family" id="hR8-Wz-esN">
|
||||
<font key="font" size="11" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="DFa-vc-wFY">
|
||||
<rect key="frame" x="8" y="129" width="59" height="18"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="size:" id="iBS-9J-ok9">
|
||||
<rect key="frame" x="8" y="90" width="59" height="18"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="proto:" id="iBS-9J-ok9">
|
||||
<font key="font" size="11" name="Menlo-Bold"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="tM6-Nq-1Rh">
|
||||
<rect key="frame" x="8" y="108" width="59" height="18"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="time:" id="U3V-A7-jO8">
|
||||
<font key="font" size="11" name="Menlo-Bold"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="hel-J4-4Qt">
|
||||
<rect key="frame" x="8" y="68" width="59" height="18"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="sign:" id="ezp-TW-Xky">
|
||||
<font key="font" size="11" name="Menlo-Bold"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="fAH-dm-SJe">
|
||||
<rect key="frame" x="8" y="88" width="59" height="18"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="list:" id="oqF-UL-ydq">
|
||||
<rect key="frame" x="8" y="49" width="59" height="18"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="family:" id="U3V-A7-jO8">
|
||||
<font key="font" size="11" name="Menlo-Bold"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<box verticalHuggingPriority="750" fixedFrame="YES" title="Box" boxType="separator" titlePosition="noTitle" translatesAutoresizingMaskIntoConstraints="NO" id="Oh7-Ag-bHc">
|
||||
<rect key="frame" x="22" y="181" width="604" height="5"/>
|
||||
<rect key="frame" x="22" y="142" width="604" height="5"/>
|
||||
<color key="borderColor" white="0.0" alpha="0.41999999999999998" colorSpace="calibratedWhite"/>
|
||||
<color key="fillColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<font key="titleFont" metaFont="system"/>
|
||||
</box>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="l8H-S3-g8O">
|
||||
<rect key="frame" x="13" y="202" width="48" height="48"/>
|
||||
<rect key="frame" x="13" y="163" width="48" height="48"/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="bug" id="w3z-uu-XKS"/>
|
||||
</imageView>
|
||||
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="uJq-Bw-lDQ">
|
||||
<rect key="frame" x="552" y="12" width="82" height="32"/>
|
||||
<rect key="frame" x="552" y="13" width="82" height="32"/>
|
||||
<buttonCell key="cell" type="push" title="close" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="RwO-yA-Xwk">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" size="13" name="Menlo-Regular"/>
|
||||
@@ -144,12 +108,28 @@
|
||||
<action selector="closeWindow:" target="-2" id="SSo-9s-xQz"/>
|
||||
</connections>
|
||||
</button>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="vm8-PU-Bu0">
|
||||
<rect key="frame" x="76" y="69" width="554" height="18"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" allowsUndo="NO" sendsActionOnEndEditing="YES" alignment="left" title="connection status" id="23w-N2-C5Z">
|
||||
<font key="font" size="11" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="fAH-dm-SJe">
|
||||
<rect key="frame" x="8" y="69" width="59" height="18"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="state:" id="oqF-UL-ydq">
|
||||
<font key="font" size="11" name="Menlo-Bold"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
</subviews>
|
||||
</view>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="-2" id="0bl-1N-AYu"/>
|
||||
</connections>
|
||||
<point key="canvasLocation" x="430" y="270"/>
|
||||
<point key="canvasLocation" x="430" y="250.5"/>
|
||||
</window>
|
||||
</objects>
|
||||
<resources>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<outlineView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" alternatingRowBackgroundColors="YES" columnReordering="NO" columnResizing="NO" multipleSelection="NO" autosaveColumns="NO" rowHeight="40" rowSizeStyle="automatic" viewBased="YES" indentationPerLevel="16" outlineTableColumn="cLW-QZ-CYz" id="Wr1-No-lg2">
|
||||
<rect key="frame" x="0.0" y="0.0" width="1304" height="0.0"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="1326" height="0.0"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<size key="intercellSpacing" width="3" height="2"/>
|
||||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
@@ -73,10 +73,10 @@
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<button toolTip="show in finder" verticalHuggingPriority="750" ambiguous="YES" misplaced="YES" tag="107" translatesAutoresizingMaskIntoConstraints="NO" id="0m7-AT-Eya">
|
||||
<rect key="frame" x="1288" y="17" width="15" height="15"/>
|
||||
<rect key="frame" x="1288" y="15" width="18" height="18"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="15" id="Tdr-QH-P2k"/>
|
||||
<constraint firstAttribute="height" constant="15" id="hTD-dI-cC7"/>
|
||||
<constraint firstAttribute="width" constant="18" id="Tdr-QH-P2k"/>
|
||||
<constraint firstAttribute="height" constant="18" id="hTD-dI-cC7"/>
|
||||
</constraints>
|
||||
<buttonCell key="cell" type="bevel" bezelStyle="regularSquare" image="show" imagePosition="only" alignment="center" alternateImage="showBG" state="on" imageScaling="proportionallyDown" inset="2" id="9bk-bJ-Zyz">
|
||||
<behavior key="behavior" lightByContents="YES"/>
|
||||
@@ -135,7 +135,7 @@
|
||||
<constraint firstAttribute="height" constant="15" id="4EE-js-ecq"/>
|
||||
<constraint firstAttribute="width" constant="15" id="kAe-AG-RWR"/>
|
||||
</constraints>
|
||||
<buttonCell key="cell" type="bevel" bezelStyle="regularSquare" image="info" imagePosition="only" alignment="center" alternateImage="infoBG" state="on" imageScaling="proportionallyDown" inset="2" id="3jg-7d-Ojq">
|
||||
<buttonCell key="cell" type="bevel" bezelStyle="regularSquare" image="info" imagePosition="overlaps" alignment="center" alternateImage="infoBG" state="on" imageScaling="proportionallyDown" inset="2" id="3jg-7d-Ojq">
|
||||
<behavior key="behavior" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
@@ -171,10 +171,10 @@
|
||||
<constraint firstItem="QSB-ts-KGS" firstAttribute="leading" secondItem="ni5-tf-iVs" secondAttribute="trailing" constant="8" id="2Q3-uZ-8AD"/>
|
||||
<constraint firstItem="Kpb-Mz-fbz" firstAttribute="leading" secondItem="e66-L1-kbk" secondAttribute="trailing" constant="22" id="IAL-i7-0WG"/>
|
||||
<constraint firstItem="Ljf-ew-dFy" firstAttribute="leading" secondItem="IPo-Hz-FA1" secondAttribute="trailing" constant="8" id="J8E-t8-gI1"/>
|
||||
<constraint firstAttribute="trailing" secondItem="201-Tu-53I" secondAttribute="trailing" constant="16" id="JVC-Ka-pOt"/>
|
||||
<constraint firstAttribute="trailing" secondItem="201-Tu-53I" secondAttribute="trailing" constant="18" id="JVC-Ka-pOt"/>
|
||||
<constraint firstItem="jvS-nx-JhV" firstAttribute="leading" secondItem="0gS-xR-4Le" secondAttribute="leading" constant="5" id="P00-iS-abC"/>
|
||||
<constraint firstItem="IPo-Hz-FA1" firstAttribute="leading" secondItem="jvS-nx-JhV" secondAttribute="trailing" constant="10" id="SFT-OI-f7s"/>
|
||||
<constraint firstItem="0m7-AT-Eya" firstAttribute="leading" secondItem="Kpb-Mz-fbz" secondAttribute="trailing" constant="22" id="SKZ-SB-gUV"/>
|
||||
<constraint firstItem="0m7-AT-Eya" firstAttribute="leading" secondItem="Kpb-Mz-fbz" secondAttribute="trailing" constant="17" id="SKZ-SB-gUV"/>
|
||||
<constraint firstItem="JeZ-sa-j9F" firstAttribute="leading" secondItem="Ljf-ew-dFy" secondAttribute="trailing" constant="11" id="Su2-k9-ZuQ"/>
|
||||
<constraint firstItem="201-Tu-53I" firstAttribute="leading" secondItem="JeZ-sa-j9F" secondAttribute="trailing" constant="10" id="Zzh-F4-3Lv"/>
|
||||
<constraint firstItem="e66-L1-kbk" firstAttribute="leading" secondItem="IPo-Hz-FA1" secondAttribute="trailing" constant="13" id="bQs-ue-I0H"/>
|
||||
|
||||
@@ -47,8 +47,4 @@
|
||||
// ->will callback into AppDelegate to reload item
|
||||
-(void)getInfoForItem:(Binary*)item scanID:(NSString*)scanID;
|
||||
|
||||
//call back up to update item in UI
|
||||
// ->will either reload task table (top), or just row in item (bottom) table
|
||||
-(void)updateUI:(Binary*)item;
|
||||
|
||||
@end
|
||||
|
||||
@@ -330,9 +330,8 @@
|
||||
|
||||
}
|
||||
|
||||
//update UI
|
||||
// ->will make item in task or dylib table have updated VT results
|
||||
[self updateUI:item];
|
||||
//call up into app delegate to smartly reload
|
||||
[((AppDelegate*)[[NSApplication sharedApplication] delegate]) reloadBinary:item];
|
||||
|
||||
//exit loop
|
||||
break;
|
||||
@@ -490,12 +489,12 @@ bail:
|
||||
NSURLResponse* httpResponse = nil;
|
||||
|
||||
//remove item's vt info
|
||||
// ->as its about to be outdates
|
||||
// ->as its about to be outdated
|
||||
item.vtInfo = nil;
|
||||
|
||||
//reload UI
|
||||
// ->will change item's VT button back to ...
|
||||
[self updateUI:item];
|
||||
//call up into app delegate to smartly reload
|
||||
// ->it's VT button will be '...'
|
||||
[((AppDelegate*)[[NSApplication sharedApplication] delegate]) reloadBinary:item];
|
||||
|
||||
//init submit URL
|
||||
submitURL = [NSURL URLWithString:[NSString stringWithFormat:@"%@?apikey=%@&resource=%@", VT_SUBMIT_URL, VT_API_KEY, item.hashes[KEY_HASH_MD5]]];
|
||||
@@ -618,9 +617,9 @@ bail:
|
||||
// ->as its about to be outdates
|
||||
item.vtInfo = nil;
|
||||
|
||||
//reload UI
|
||||
// ->will change item's VT button back to ...
|
||||
[self updateUI:item];
|
||||
//call up into app delegate to smartly reload
|
||||
// ->will change item's VT button back to '...'
|
||||
[((AppDelegate*)[[NSApplication sharedApplication] delegate]) reloadBinary:item];
|
||||
|
||||
//init scan url
|
||||
reScanURL = [NSURL URLWithString:[NSString stringWithFormat:@"%@?apikey=%@&resource=%@", VT_RESCAN_URL, VT_API_KEY, item.hashes[KEY_HASH_MD5]]];
|
||||
@@ -668,7 +667,7 @@ bail:
|
||||
//save VT results into item
|
||||
queriedItem.vtInfo = result;
|
||||
|
||||
//callback to smartly reload
|
||||
//call up into app delegate to smartly reload
|
||||
[((AppDelegate*)[[NSApplication sharedApplication] delegate]) reloadBinary:queriedItem];
|
||||
|
||||
|
||||
|
||||
@@ -45,41 +45,27 @@
|
||||
</menu>
|
||||
<window allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" showsToolbarButton="NO" animationBehavior="default" id="371">
|
||||
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES" unifiedTitleAndToolbar="YES"/>
|
||||
<rect key="contentRect" x="0.0" y="0.0" width="1353" height="660"/>
|
||||
<rect key="contentRect" x="0.0" y="0.0" width="1353" height="675"/>
|
||||
<rect key="screenRect" x="0.0" y="0.0" width="1440" height="877"/>
|
||||
<value key="minSize" type="size" width="1000" height="650"/>
|
||||
<value key="maxSize" type="size" width="2000" height="650"/>
|
||||
<value key="minSize" type="size" width="1000" height="660"/>
|
||||
<value key="maxSize" type="size" width="2000" height="660"/>
|
||||
<view key="contentView" id="372">
|
||||
<rect key="frame" x="0.0" y="0.0" width="1353" height="660"/>
|
||||
<rect key="frame" x="0.0" y="-8" width="1353" height="675"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<progressIndicator hidden="YES" horizontalHuggingPriority="750" verticalHuggingPriority="750" fixedFrame="YES" maxValue="100" bezeled="NO" indeterminate="YES" style="spinning" translatesAutoresizingMaskIntoConstraints="NO" id="839">
|
||||
<rect key="frame" x="1157" y="-136" width="32" height="32"/>
|
||||
<rect key="frame" x="1157" y="-121" width="32" height="32"/>
|
||||
</progressIndicator>
|
||||
<textField hidden="YES" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="745">
|
||||
<rect key="frame" x="869" y="-127" width="268" height="18"/>
|
||||
<rect key="frame" x="869" y="-112" width="268" height="18"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="status..." id="748">
|
||||
<font key="font" size="13" name="Menlo-Regular"/>
|
||||
<color key="textColor" red="0.20000000000000001" green="0.67450980392156867" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<segmentedControl verticalHuggingPriority="750" ambiguous="YES" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="gtq-gn-VPL">
|
||||
<rect key="frame" x="465" y="339" width="223" height="24"/>
|
||||
<segmentedCell key="cell" borderStyle="border" alignment="left" style="rounded" trackingMode="selectOne" id="DHY-0u-YD7">
|
||||
<font key="font" metaFont="system"/>
|
||||
<segments>
|
||||
<segment label="dylibs" width="73" selected="YES"/>
|
||||
<segment label="files" width="72" tag="1"/>
|
||||
<segment label="network" tag="2"/>
|
||||
</segments>
|
||||
</segmentedCell>
|
||||
<connections>
|
||||
<action selector="selectBottomPaneContent:" target="494" id="CQa-nn-jVf"/>
|
||||
</connections>
|
||||
</segmentedControl>
|
||||
<searchField wantsLayer="YES" verticalHuggingPriority="750" ambiguous="YES" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="bNA-gy-9Ta">
|
||||
<rect key="frame" x="1133" y="340" width="175" height="22"/>
|
||||
<rect key="frame" x="1143" y="350" width="175" height="22"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="22" id="1yR-lY-9om"/>
|
||||
</constraints>
|
||||
@@ -93,30 +79,60 @@
|
||||
</connections>
|
||||
</searchField>
|
||||
<button ambiguous="YES" misplaced="YES" tag="1001" translatesAutoresizingMaskIntoConstraints="NO" id="gSG-Nq-plb">
|
||||
<rect key="frame" x="9" y="5" width="35" height="32"/>
|
||||
<rect key="frame" x="9" y="30" width="32" height="25"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="35" id="XGt-s5-weq"/>
|
||||
<constraint firstAttribute="height" constant="32" id="wlR-bC-Msz"/>
|
||||
<constraint firstAttribute="width" constant="32" id="XGt-s5-weq"/>
|
||||
<constraint firstAttribute="height" constant="25" id="wlR-bC-Msz"/>
|
||||
</constraints>
|
||||
<buttonCell key="cell" type="bevel" bezelStyle="regularSquare" image="settings" imagePosition="overlaps" alignment="center" alternateImage="settingsBG" imageScaling="proportionallyDown" inset="2" id="1TF-i7-mBn">
|
||||
<buttonCell key="cell" type="bevel" bezelStyle="regularSquare" image="saveIcon" imagePosition="overlaps" alignment="center" alternateImage="saveIconBG" imageScaling="proportionallyDown" inset="2" id="1TF-i7-mBn">
|
||||
<behavior key="behavior" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="showPreferences:" target="494" id="U3q-gH-jC6"/>
|
||||
<action selector="saveResults:" target="494" id="gtU-9T-Adm"/>
|
||||
</connections>
|
||||
</button>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="FRk-Fk-n4f">
|
||||
<rect key="frame" x="6" y="13" width="38" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="center" title="save" id="qeM-6t-Rz6">
|
||||
<font key="font" size="9" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<button ambiguous="YES" misplaced="YES" tag="1002" translatesAutoresizingMaskIntoConstraints="NO" id="UiZ-UI-inM">
|
||||
<rect key="frame" x="67" y="30" width="32" height="25"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="32" id="OtG-JF-PVX"/>
|
||||
<constraint firstAttribute="height" constant="25" id="Suo-pl-wcf"/>
|
||||
</constraints>
|
||||
<buttonCell key="cell" type="bevel" bezelStyle="regularSquare" image="search" imagePosition="overlaps" alignment="center" alternateImage="searchBG" imageScaling="proportionallyDown" inset="2" id="d77-J8-SjG">
|
||||
<behavior key="behavior" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="search:" target="494" id="YU7-xU-gB7"/>
|
||||
</connections>
|
||||
</button>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="MHi-Fa-fbk">
|
||||
<rect key="frame" x="64" y="13" width="38" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="center" title="search" id="tF8-E0-l1A">
|
||||
<font key="font" size="9" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="TNF-7q-Loy" userLabel="Top Pane">
|
||||
<rect key="frame" x="0.0" y="379" width="1353" height="281"/>
|
||||
<rect key="frame" x="-1" y="394" width="1353" height="281"/>
|
||||
</customView>
|
||||
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="E4M-PF-VD0" userLabel="Bottom Pane">
|
||||
<rect key="frame" x="0.0" y="45" width="1353" height="281"/>
|
||||
<rect key="frame" x="-1" y="60" width="1353" height="281"/>
|
||||
<subviews>
|
||||
<progressIndicator horizontalHuggingPriority="750" verticalHuggingPriority="750" fixedFrame="YES" maxValue="100" bezeled="NO" indeterminate="YES" style="spinning" translatesAutoresizingMaskIntoConstraints="NO" id="LMT-Bu-FAk">
|
||||
<rect key="frame" x="660" y="124" width="32" height="32"/>
|
||||
</progressIndicator>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="kIC-ZZ-ldy">
|
||||
<rect key="frame" x="584" y="106" width="184" height="17"/>
|
||||
<textField hidden="YES" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="kIC-ZZ-ldy">
|
||||
<rect key="frame" x="541" y="211" width="271" height="18"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" allowsUndo="NO" sendsActionOnEndEditing="YES" alignment="center" title="no items found" id="LO4-i6-1es">
|
||||
<font key="font" size="13" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
@@ -125,8 +141,8 @@
|
||||
</textField>
|
||||
</subviews>
|
||||
</customView>
|
||||
<button ambiguous="YES" misplaced="YES" tag="1002" translatesAutoresizingMaskIntoConstraints="NO" id="HoI-FQ-vTI">
|
||||
<rect key="frame" x="662" y="5" width="29" height="32"/>
|
||||
<button ambiguous="YES" misplaced="YES" tag="1003" translatesAutoresizingMaskIntoConstraints="NO" id="HoI-FQ-vTI">
|
||||
<rect key="frame" x="662" y="20" width="29" height="32"/>
|
||||
<buttonCell key="cell" type="bevel" bezelStyle="rounded" image="logoApple" imagePosition="only" alignment="center" alternateImage="logoAppleBG" imageScaling="proportionallyDown" inset="2" id="3g8-vm-R7Z">
|
||||
<behavior key="behavior" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
@@ -135,18 +151,29 @@
|
||||
<action selector="logoButtonHandler:" target="494" id="H4C-BT-arE"/>
|
||||
</connections>
|
||||
</button>
|
||||
<segmentedControl verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="gtq-gn-VPL">
|
||||
<rect key="frame" x="565" y="352" width="223" height="24"/>
|
||||
<segmentedCell key="cell" borderStyle="border" alignment="left" style="rounded" trackingMode="selectOne" id="DHY-0u-YD7">
|
||||
<font key="font" metaFont="system"/>
|
||||
<segments>
|
||||
<segment label="dylibs" width="73" selected="YES"/>
|
||||
<segment label="files" width="72" tag="1"/>
|
||||
<segment label="network" tag="2"/>
|
||||
</segments>
|
||||
</segmentedCell>
|
||||
<connections>
|
||||
<action selector="selectBottomPaneContent:" target="494" id="CQa-nn-jVf"/>
|
||||
</connections>
|
||||
</segmentedControl>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstAttribute="centerX" secondItem="gtq-gn-VPL" secondAttribute="centerX" id="2Nh-NZ-P5p"/>
|
||||
<constraint firstAttribute="trailing" secondItem="bNA-gy-9Ta" secondAttribute="trailing" constant="12" id="5N8-Ye-mhe"/>
|
||||
<constraint firstAttribute="centerX" secondItem="HoI-FQ-vTI" secondAttribute="centerX" constant="1" id="EcI-vS-3LG"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<toolbar key="toolbar" implicitIdentifier="EAE4838B-30FD-4B21-8BE5-8564B213BE96" autosavesConfiguration="NO" displayMode="iconAndLabel" sizeMode="regular" id="qEm-Os-zrh">
|
||||
<allowedToolbarItems>
|
||||
<toolbarItem implicitItemIdentifier="NSToolbarShowColorsItem" id="RP7-Aw-wsx"/>
|
||||
<toolbarItem implicitItemIdentifier="33BA6F3A-71D3-476F-B1FA-72F899CFDCA2" label="Toolbar Item" paletteLabel="Toolbar Item" tag="-1" id="1xB-mk-PMD" customClass="TAAdaptiveSpaceItem"/>
|
||||
<toolbarItem implicitItemIdentifier="NSToolbarShowFontsItem" id="NU8-Nm-T2R"/>
|
||||
<toolbarItem implicitItemIdentifier="NSToolbarFlexibleSpaceItem" id="eEO-jq-TLG"/>
|
||||
<toolbarItem implicitItemIdentifier="146A46B5-DE4B-42D4-98E4-7C3A803AC963" label="" paletteLabel="" id="7ph-jg-soj">
|
||||
<nil key="toolTip"/>
|
||||
@@ -191,14 +218,14 @@
|
||||
</connections>
|
||||
</searchField>
|
||||
</toolbarItem>
|
||||
<toolbarItem implicitItemIdentifier="F54A1AEB-291E-4556-8B7E-D1C677012ABF" label="" paletteLabel="" image="kkText" id="UwA-pW-Mg8">
|
||||
<toolbarItem implicitItemIdentifier="F54A1AEB-291E-4556-8B7E-D1C677012ABF" label="" paletteLabel="" image="teText" id="UwA-pW-Mg8">
|
||||
<nil key="toolTip"/>
|
||||
<size key="minSize" width="48" height="48"/>
|
||||
<size key="maxSize" width="330" height="48"/>
|
||||
<imageView key="view" horizontalHuggingPriority="251" verticalHuggingPriority="251" id="aNo-Uq-I0N">
|
||||
<rect key="frame" x="116" y="14" width="330" height="48"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="kkText" id="hwQ-Gs-JPJ"/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="teText" id="hwQ-Gs-JPJ"/>
|
||||
</imageView>
|
||||
</toolbarItem>
|
||||
</allowedToolbarItems>
|
||||
@@ -211,7 +238,7 @@
|
||||
<toolbarItem reference="y4u-t8-Acq"/>
|
||||
</defaultToolbarItems>
|
||||
</toolbar>
|
||||
<point key="canvasLocation" x="662.5" y="340.5"/>
|
||||
<point key="canvasLocation" x="662.5" y="347.5"/>
|
||||
</window>
|
||||
<customObject id="494" customClass="AppDelegate">
|
||||
<connections>
|
||||
@@ -223,7 +250,8 @@
|
||||
<outlet property="logoButton" destination="HoI-FQ-vTI" id="bzc-wu-4Hv"/>
|
||||
<outlet property="noItemsLabel" destination="kIC-ZZ-ldy" id="nOm-8E-tZA"/>
|
||||
<outlet property="progressIndicator" destination="839" id="870"/>
|
||||
<outlet property="showPreferencesButton" destination="gSG-Nq-plb" id="MsG-Ve-uHw"/>
|
||||
<outlet property="searchButton" destination="UiZ-UI-inM" id="neL-LX-ZHh"/>
|
||||
<outlet property="showPreferencesButton" destination="gSG-Nq-plb" id="AQZ-wC-I5a"/>
|
||||
<outlet property="statusText" destination="745" id="871"/>
|
||||
<outlet property="topPane" destination="TNF-7q-Loy" id="KZl-fO-P4O"/>
|
||||
<outlet property="viewSelector" destination="nRz-eH-T6D" id="1YT-Nb-K3a"/>
|
||||
@@ -243,10 +271,12 @@
|
||||
</textField>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="kkText" width="426.48001098632812" height="85.919998168945312"/>
|
||||
<image name="logoApple" width="194" height="236"/>
|
||||
<image name="logoAppleBG" width="194" height="236"/>
|
||||
<image name="settings" width="256" height="256"/>
|
||||
<image name="settingsBG" width="256" height="256"/>
|
||||
<image name="saveIcon" width="256" height="256"/>
|
||||
<image name="saveIconBG" width="256" height="256"/>
|
||||
<image name="search" width="256" height="256"/>
|
||||
<image name="searchBG" width="256" height="256"/>
|
||||
<image name="teText" width="460.55999755859375" height="85.919998168945312"/>
|
||||
</resources>
|
||||
</document>
|
||||
|
||||
|
Before Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 9.4 KiB |
|
After Width: | Height: | Size: 9.7 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 8.0 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 9.7 KiB After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 21 KiB |