mirror of
https://github.com/macports/pallet.git
synced 2026-07-12 18:18:47 -07:00
Copying Pallet from gsoc09-gui branch to contrib
git-svn-id: https://svn.macports.org/repository/macports/contrib/Pallet@65496 d073be05-634f-4543-b044-5fe20cf6d1d6
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
//
|
||||
// NotificationsListener.h
|
||||
// MPGUI
|
||||
//
|
||||
// Created by Juan Germán Castañeda Echevarría on 8/4/09.
|
||||
// Copyright 2009 UNAM. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import <MacPorts/MPNotifications.h>
|
||||
|
||||
|
||||
@interface ActivityController : NSObject {
|
||||
IBOutlet NSTextField *currentTask;
|
||||
IBOutlet NSTableView *operations;
|
||||
IBOutlet NSProgressIndicator *progress;
|
||||
BOOL busy;
|
||||
}
|
||||
|
||||
@property BOOL busy;
|
||||
|
||||
- (void)subscribeToNotifications;
|
||||
- (void)gotMPMSG:(NSNotification *)notification;
|
||||
- (void)gotMPINFO:(NSNotification *)notification;
|
||||
- (void)gotMPDEFAULT:(NSNotification *)notification;
|
||||
- (void)gotMPERROR:(NSNotification *)notification;
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,76 @@
|
||||
//
|
||||
// NotificationsListener.m
|
||||
// MPGUI
|
||||
//
|
||||
// Created by Juan Germán Castañeda Echevarría on 8/4/09.
|
||||
// Copyright 2009 UNAM. All rights reserved.
|
||||
//
|
||||
|
||||
#import "ActivityController.h"
|
||||
|
||||
|
||||
@implementation ActivityController
|
||||
|
||||
@synthesize busy;
|
||||
|
||||
- (void)awakeFromNib {
|
||||
[progress setUsesThreadedAnimation:YES];
|
||||
[self setBusy:NO];
|
||||
[self subscribeToNotifications];
|
||||
}
|
||||
|
||||
- (void)subscribeToNotifications {
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||
selector:@selector(gotMPMSG:)
|
||||
name:MPMSG object:nil];
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||
selector:@selector(gotMPDEFAULT:)
|
||||
name:MPDEFAULT object:nil];
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||
selector:@selector(gotMPINFO:)
|
||||
name:MPINFO object:nil];
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||
selector:@selector(gotMPERROR:)
|
||||
name:MPERROR object:nil];
|
||||
// [[NSNotificationCenter defaultCenter] addObserver:self
|
||||
// selector:@selector()
|
||||
// name:MPWARN object:nil];
|
||||
// [[NSNotificationCenter defaultCenter] addObserver:self
|
||||
// selector:@selector()
|
||||
// name:MPDEBUG object:nil];
|
||||
}
|
||||
|
||||
- (void)gotMPINFO:(NSNotification *)notification {
|
||||
NSString *msg = [[notification userInfo] objectForKey:MPMESSAGE];
|
||||
NSLog(@"GOT MPINFO NOTIFICATION: %@", msg);
|
||||
// Starting up: A port command has been started
|
||||
if ([msg isEqual:@"Starting up"]) {
|
||||
[currentTask setStringValue:[[notification userInfo] objectForKey:MPMETHOD]];
|
||||
[self setBusy:YES];
|
||||
return;
|
||||
}
|
||||
// Shutting down: The command has finished
|
||||
if ([msg isEqual:@"Shutting down"]) {
|
||||
[currentTask setStringValue:@"" ];
|
||||
[self setBusy:NO];
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)gotMPMSG:(NSNotification *)notification {
|
||||
NSString *msg = [[notification userInfo] objectForKey:MPMESSAGE];
|
||||
NSLog(@"GOT MPMSG NOTIFICATION: %@", msg);
|
||||
}
|
||||
|
||||
- (void)gotMPDEFAULT:(NSNotification *)notification {
|
||||
NSString *msg = [[notification userInfo] objectForKey:MPMESSAGE];
|
||||
NSLog(@"GOT MPDEFAULT NOTIFICATION: %@", msg);
|
||||
}
|
||||
|
||||
- (void)gotMPERROR:(NSNotification *)notification {
|
||||
NSString *msg = [[notification userInfo] objectForKey:MPMESSAGE];
|
||||
NSLog(@"GOT ERROR NOTIFICATION: %@", msg);
|
||||
//TODO: Display an alert
|
||||
}
|
||||
|
||||
@end
|
||||
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>Application.icns</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.macports.${PRODUCT_NAME:identifier}</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>10.5.0</string>
|
||||
<key>NSMainNibFile</key>
|
||||
<string>MainMenu</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>NSApplication</string>
|
||||
<key>LSMinimumSystemVersionByArchitecture</key>
|
||||
<dict>
|
||||
<key>i386</key>
|
||||
<string>10.5.0</string>
|
||||
<key>x86_64</key>
|
||||
<string>10.6.0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
@@ -0,0 +1,85 @@
|
||||
//
|
||||
// MPActionLauncher.h
|
||||
// MPGUI
|
||||
//
|
||||
// Created by Juan Germán Castañeda Echevarría on 6/15/09.
|
||||
// Copyright 2009 UNAM. All rights reserved.
|
||||
//
|
||||
|
||||
/*!
|
||||
@header MPActionLauncher
|
||||
The MPActionLauncher allows acces to a shared per thread MacPorts Framework
|
||||
wrapper to excecute MacPorts actions. It performs all the actions in another
|
||||
thread in order to leave the GUI responsive.
|
||||
*/
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import <MacPorts/MacPorts.h>
|
||||
|
||||
/*!
|
||||
@class MPActionLauncher
|
||||
@abstract Wrapper for MacPorts Framework actions
|
||||
@discussion Contains a shared per thread MacPorts Framework wrapper
|
||||
*/
|
||||
@interface MPActionLauncher : NSObject {
|
||||
NSArray *ports;
|
||||
NSTask *actionTool;
|
||||
NSConnection *connectionToActionTool;
|
||||
BOOL isLoading;
|
||||
}
|
||||
/*!
|
||||
@var ports
|
||||
@abstract An array of available MPPorts
|
||||
*/
|
||||
@property (copy) NSArray *ports;
|
||||
|
||||
@property NSTask *actionTool;
|
||||
|
||||
/*!
|
||||
@var isLoading
|
||||
@abstract Tells whether the instance is loading the ports array or not
|
||||
*/
|
||||
@property BOOL isLoading;
|
||||
|
||||
/*!
|
||||
@brief Return singleton shared MPActionLauncher instance
|
||||
*/
|
||||
+ (MPActionLauncher*)sharedInstance;
|
||||
|
||||
/*!
|
||||
@brief Loads the MPPorts array with the available ports current PKGPath in another thread
|
||||
*/
|
||||
- (void)loadPorts;
|
||||
|
||||
/*!
|
||||
@brief Installs a single port in another thread
|
||||
@param port MPPort that represents the port to install
|
||||
*/
|
||||
- (void)installPort:(MPPort *)port;
|
||||
|
||||
/*!
|
||||
@brief Uninstalls a single port in another thread
|
||||
@param port MPPort that represents the port to install
|
||||
*/
|
||||
- (void)uninstallPort:(MPPort *)port;
|
||||
|
||||
/*!
|
||||
@brief Upgrades a single port in another thread
|
||||
@param port MPPort that represents the port to upgrade
|
||||
*/
|
||||
- (void)upgradePort:(MPPort *)port;
|
||||
|
||||
|
||||
/*!
|
||||
@brief Syncs the MacPorts installation in another thread
|
||||
*/
|
||||
- (void)sync;
|
||||
|
||||
/*!
|
||||
@brief Selfupdates the MacPorts installation in another thread
|
||||
*/
|
||||
- (void)selfupdate;
|
||||
|
||||
- (void)cancelPortProcess;
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,81 @@
|
||||
//
|
||||
// MPActionLauncher.m
|
||||
// MPGUI
|
||||
//
|
||||
// Created by Juan Germán Castañeda Echevarría on 6/15/09.
|
||||
// Copyright 2009 UNAM. All rights reserved.
|
||||
//
|
||||
|
||||
#import "MPActionLauncher.h"
|
||||
|
||||
static MPActionLauncher *sharedActionLauncher = nil;
|
||||
|
||||
#pragma mark Implementation
|
||||
@implementation MPActionLauncher
|
||||
|
||||
@synthesize ports, isLoading, actionTool;
|
||||
|
||||
+ (MPActionLauncher*) sharedInstance {
|
||||
|
||||
if (sharedActionLauncher == nil) {
|
||||
[[self alloc] init]; // assignment not done here
|
||||
}
|
||||
|
||||
return sharedActionLauncher;
|
||||
}
|
||||
|
||||
- (id)init {
|
||||
if (sharedActionLauncher == nil) {
|
||||
ports = [NSMutableArray arrayWithCapacity:1];
|
||||
sharedActionLauncher = self;
|
||||
}
|
||||
return sharedActionLauncher;
|
||||
}
|
||||
|
||||
- (void)loadPorts {
|
||||
[self setIsLoading:YES];
|
||||
NSDictionary *allPorts = [[MPMacPorts sharedInstance] search:MPPortsAll];
|
||||
NSDictionary *installedPorts = [[MPRegistry sharedRegistry] installed];
|
||||
|
||||
[self willChangeValueForKey:@"ports"];
|
||||
for (id port in installedPorts) {
|
||||
[[allPorts objectForKey:port] setStateFromReceipts:[installedPorts objectForKey:port]];
|
||||
}
|
||||
ports = [allPorts allValues];
|
||||
[self didChangeValueForKey:@"ports"];
|
||||
|
||||
[self setIsLoading:NO];
|
||||
}
|
||||
|
||||
- (void)installPort:(MPPort *)port {
|
||||
NSError * error;
|
||||
NSArray *empty = [NSArray arrayWithObject: @""];
|
||||
[port installWithOptions:empty variants:empty error:&error];
|
||||
}
|
||||
|
||||
- (void)uninstallPort:(MPPort *)port {
|
||||
NSError * error;
|
||||
[port uninstallWithVersion:@"" error:&error];
|
||||
}
|
||||
|
||||
- (void)upgradePort:(MPPort *)port {
|
||||
NSError * error;
|
||||
[port upgradeWithError:&error];
|
||||
}
|
||||
|
||||
- (void)sync {
|
||||
NSError * error;
|
||||
[[MPMacPorts sharedInstance] sync:&error];
|
||||
}
|
||||
|
||||
- (void)selfupdate {
|
||||
NSError * error;
|
||||
[[MPMacPorts sharedInstance] selfUpdate:&error];
|
||||
}
|
||||
|
||||
- (void)cancelPortProcess {
|
||||
// TODO: display confirmation dialog
|
||||
[[MPMacPorts sharedInstance] cancelCurrentCommand];
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,31 @@
|
||||
//
|
||||
// MPActionsController.h
|
||||
// MPGUI
|
||||
//
|
||||
// Created by Juan Germán Castañeda Echevarría on 6/19/09.
|
||||
// Copyright 2009 UNAM. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import "MPActionLauncher.h"
|
||||
#import "PortsTableController.h"
|
||||
#import "ActivityController.h"
|
||||
|
||||
|
||||
@interface MPActionsController : NSObject {
|
||||
IBOutlet NSArrayController *ports;
|
||||
IBOutlet PortsTableController *tableController;
|
||||
IBOutlet ActivityController *activityController;
|
||||
|
||||
IBOutlet NSToolbarItem *cancel;
|
||||
}
|
||||
|
||||
- (IBAction)openPreferences:(id)sender;
|
||||
- (IBAction)install:(id)sender;
|
||||
- (IBAction)uninstall:(id)sender;
|
||||
- (IBAction)upgrade:(id)sender;
|
||||
- (IBAction)sync:(id)sender;
|
||||
- (IBAction)selfupdate:(id)sender;
|
||||
- (IBAction)cancel:(id)sender;
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,92 @@
|
||||
//
|
||||
// MPActionsController.m
|
||||
// MPGUI
|
||||
//
|
||||
// Created by Juan Germán Castañeda Echevarría on 6/19/09.
|
||||
// Copyright 2009 UNAM. All rights reserved.
|
||||
//
|
||||
|
||||
#import "MPActionsController.h"
|
||||
|
||||
|
||||
@implementation MPActionsController
|
||||
|
||||
- (IBAction)openPreferences:(id)sender {
|
||||
[NSBundle loadNibNamed:@"Preferences" owner:self];
|
||||
}
|
||||
|
||||
- (IBAction)install:(id)sender {
|
||||
NSArray *selectedPorts = [ports selectedObjects];
|
||||
for (id port in selectedPorts) {
|
||||
[[MPActionLauncher sharedInstance]
|
||||
performSelectorInBackground:@selector(installPort:) withObject:port];
|
||||
}
|
||||
}
|
||||
|
||||
- (IBAction)uninstall:(id)sender {
|
||||
NSArray *selectedPorts = [ports selectedObjects];
|
||||
for (id port in selectedPorts) {
|
||||
[[MPActionLauncher sharedInstance]
|
||||
performSelectorInBackground:@selector(uninstallPort:) withObject:port];
|
||||
}
|
||||
}
|
||||
|
||||
- (IBAction)upgrade:(id)sender {
|
||||
NSArray *selectedPorts = [ports selectedObjects];
|
||||
for (id port in selectedPorts) {
|
||||
[[MPActionLauncher sharedInstance]
|
||||
performSelectorInBackground:@selector(upgradePort:) withObject:port];
|
||||
}
|
||||
}
|
||||
|
||||
- (IBAction)sync:(id)sender {
|
||||
[[MPActionLauncher sharedInstance]
|
||||
performSelectorInBackground:@selector(sync) withObject:nil];
|
||||
}
|
||||
|
||||
- (IBAction)selfupdate:(id)sender {
|
||||
[[MPActionLauncher sharedInstance]
|
||||
performSelectorInBackground:@selector(selfupdate) withObject:nil];
|
||||
}
|
||||
|
||||
- (IBAction)cancel:(id)sender {
|
||||
[[MPMacPorts sharedInstance] cancelCurrentCommand];
|
||||
}
|
||||
|
||||
-(BOOL)validateToolbarItem:(NSToolbarItem *)toolbarItem {
|
||||
BOOL enable = ![activityController busy];
|
||||
if ([[toolbarItem itemIdentifier] isEqual:[cancel itemIdentifier]]) {
|
||||
// Cancel button is enabled when busy
|
||||
return !enable;
|
||||
}
|
||||
|
||||
return enable;
|
||||
}
|
||||
|
||||
#pragma mark App Delegate
|
||||
|
||||
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
|
||||
[tableController hidePredicateEditor:self];
|
||||
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
|
||||
NSString *pkgPath = [defaults objectForKey:@"PKGPath"];
|
||||
if (pkgPath == nil) {
|
||||
[self openPreferences:self];
|
||||
} else {
|
||||
[MPMacPorts setPKGPath:pkgPath];
|
||||
[[MPActionLauncher sharedInstance]
|
||||
performSelectorInBackground:@selector(loadPorts) withObject:nil];
|
||||
}
|
||||
}
|
||||
|
||||
- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)theApplication {
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (void)applicationWillTerminate:(NSNotification *)aNotification {
|
||||
// I should check if it is running also
|
||||
if (![[NSFileManager defaultManager] isWritableFileAtPath:[MPMacPorts PKGPath]]) {
|
||||
[[MPActionLauncher sharedInstance] cancelPortProcess];
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,16 @@
|
||||
//
|
||||
// MPPortTableView.h
|
||||
// MPGUI
|
||||
//
|
||||
// Created by Juan Germán Castañeda Echevarría on 7/14/09.
|
||||
// Copyright 2009 UNAM. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
|
||||
@interface MPPortTableView : NSTableView {
|
||||
IBOutlet NSPanel *quickLookPanel;
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,34 @@
|
||||
//
|
||||
// MPPortTableView.m
|
||||
// MPGUI
|
||||
//
|
||||
// Created by Juan Germán Castañeda Echevarría on 7/14/09.
|
||||
// Copyright 2009 UNAM. All rights reserved.
|
||||
//
|
||||
|
||||
#import "MPPortTableView.h"
|
||||
|
||||
|
||||
@implementation MPPortTableView
|
||||
|
||||
-(id)init {
|
||||
[quickLookPanel setFloatingPanel:YES];
|
||||
[super init];
|
||||
return self;
|
||||
}
|
||||
|
||||
-(void)keyDown:(NSEvent *)theEvent {
|
||||
if ([[theEvent characters] characterAtIndex:0] == ' ' ||
|
||||
([[theEvent characters] characterAtIndex:0] == 27 && [quickLookPanel isVisible])) {
|
||||
if ([quickLookPanel isVisible]) {
|
||||
[quickLookPanel close];
|
||||
} else {
|
||||
[quickLookPanel makeKeyAndOrderFront:self];
|
||||
[quickLookPanel makeFirstResponder:self];
|
||||
}
|
||||
} else {
|
||||
[super keyDown:theEvent];
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
//
|
||||
// Prefix header for all source files of the 'MPGUI' target in the 'MPGUI' project
|
||||
//
|
||||
|
||||
#ifdef __OBJC__
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#endif
|
||||
@@ -0,0 +1,57 @@
|
||||
//
|
||||
// PortsListController.h
|
||||
// MPGUI
|
||||
//
|
||||
// Created by Juan Germán Castañeda Echevarría on 6/12/09.
|
||||
// Copyright 2009 UNAM. All rights reserved.
|
||||
//
|
||||
|
||||
/*!
|
||||
@header PortsTableController
|
||||
This is the controller responsible of managing search operations in the
|
||||
ports table. This uses a NSPredicateEditor to implement the advanced search
|
||||
and a NSPredicate to filter the NSArrayController which contains all the
|
||||
available ports.
|
||||
*/
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import "MPActionLauncher.h"
|
||||
|
||||
/*!
|
||||
@class PortsTableController
|
||||
@abstract Wrapper for MacPorts Framework actions
|
||||
@discussion Contains a shared per thread MacPorts Framework wrapper
|
||||
*/
|
||||
@interface PortsTableController : NSObject {
|
||||
IBOutlet NSTableView *portsTableView;
|
||||
IBOutlet NSPredicateEditor *predicateEditor;
|
||||
IBOutlet NSWindow *mainWindow;
|
||||
|
||||
// NSPredicateEditor management
|
||||
NSPredicate *predicate;
|
||||
NSInteger rowCount;
|
||||
}
|
||||
|
||||
/*!
|
||||
@var predicate
|
||||
@abstract The NSPredicate which filters the ports table
|
||||
*/
|
||||
@property (copy) NSPredicate *predicate;
|
||||
|
||||
/*!
|
||||
@brief Creates a NSPredicate based in the rows of the NSPredicateEditor
|
||||
@param sender The object that sends the action
|
||||
*/
|
||||
- (IBAction)advancedSearch:(id)sender;
|
||||
|
||||
/*!
|
||||
@brief Creates a NSPredicate based in the search text field
|
||||
@param sender The object that sends the action
|
||||
*/
|
||||
- (IBAction)basicSearch:(id)sender;
|
||||
|
||||
|
||||
- (IBAction)hidePredicateEditor:(id)sender;
|
||||
|
||||
@end
|
||||
|
||||
@@ -0,0 +1,109 @@
|
||||
//
|
||||
// PortsListController.m
|
||||
// MPGUI
|
||||
//
|
||||
// Created by Juan Germán Castañeda Echevarría on 6/12/09.
|
||||
// Copyright 2009 UNAM. All rights reserved.
|
||||
//
|
||||
|
||||
#import "PortsTableController.h"
|
||||
|
||||
#pragma mark Private Methods
|
||||
@interface PortsTableController (Private)
|
||||
|
||||
- (void)changePredicateEditorSize:(NSInteger) newRowCount;
|
||||
|
||||
@end
|
||||
|
||||
#pragma mark Implementation
|
||||
@implementation PortsTableController
|
||||
|
||||
@synthesize predicate;
|
||||
|
||||
- (id)init {
|
||||
// This is the number of rows shown in the xib file
|
||||
rowCount = 1;
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark PredicateEditor delegate
|
||||
|
||||
- (void)ruleEditorRowsDidChange:(NSNotification *)notification {
|
||||
[self changePredicateEditorSize:[predicateEditor numberOfRows]];
|
||||
NSLog(@"rileEditorRowsDidChange");
|
||||
}
|
||||
|
||||
#pragma mark Search
|
||||
|
||||
- (IBAction)advancedSearch:(id)sender {
|
||||
NSPredicate* newPredicate = [predicateEditor objectValue];
|
||||
NSLog(@"Advanced Predicate: %@", [newPredicate predicateFormat]);
|
||||
|
||||
if([newPredicate isNotEqualTo:predicate]) {
|
||||
[self setPredicate:[NSPredicate predicateWithFormat:[newPredicate predicateFormat]]];
|
||||
}
|
||||
}
|
||||
|
||||
- (IBAction)basicSearch:(id)sender {
|
||||
// Change internal NSPredicate and the NSPredicateEditor to match the basic query
|
||||
NSString *name = [sender stringValue];
|
||||
if([name isEqual:@""]) {
|
||||
[self setPredicate:nil];
|
||||
[predicateEditor setObjectValue:nil];
|
||||
} else {
|
||||
NSArray *subpredicates = [NSArray arrayWithObject:[NSPredicate predicateWithFormat:@"name CONTAINS %@", name]];
|
||||
NSPredicate *newPredicate = [NSCompoundPredicate andPredicateWithSubpredicates:subpredicates];
|
||||
// I know what I am doing to you, so I dont want to be your delegate for now
|
||||
[predicateEditor setDelegate:nil];
|
||||
[predicateEditor setObjectValue:newPredicate];
|
||||
[self setPredicate:newPredicate];
|
||||
[self changePredicateEditorSize:[predicateEditor numberOfRows]];
|
||||
// Now I want to know what you do :)
|
||||
[predicateEditor setDelegate:self];
|
||||
NSLog(@"Basic Predicate: %@", [newPredicate predicateFormat]);
|
||||
}
|
||||
}
|
||||
|
||||
- (IBAction)hidePredicateEditor:(id)sender {
|
||||
[self changePredicateEditorSize:0];
|
||||
}
|
||||
|
||||
#pragma mark Private Methods
|
||||
|
||||
- (void)changePredicateEditorSize:(NSInteger) newRowCount {
|
||||
NSLog(@"ROWS: %d", newRowCount);
|
||||
if (newRowCount == rowCount)
|
||||
return;
|
||||
|
||||
if (newRowCount == 0) {
|
||||
[self setPredicate:[NSPredicate predicateWithFormat:@"name LIKE '*'"]];
|
||||
}
|
||||
|
||||
NSScrollView* tableScrollView = [portsTableView enclosingScrollView];
|
||||
NSUInteger oldOutlineViewMask = [tableScrollView autoresizingMask];
|
||||
|
||||
NSScrollView* predicateEditorScrollView = [predicateEditor enclosingScrollView];
|
||||
NSUInteger oldPredicateEditorViewMask = [predicateEditorScrollView autoresizingMask];
|
||||
|
||||
[tableScrollView setAutoresizingMask:NSViewWidthSizable | NSViewMaxYMargin];
|
||||
[predicateEditorScrollView setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];
|
||||
|
||||
BOOL growing = (newRowCount > rowCount);
|
||||
|
||||
CGFloat heightDifference = fabs([predicateEditor rowHeight] * (newRowCount - rowCount));
|
||||
|
||||
NSSize sizeChange = [predicateEditor convertSize:NSMakeSize(0, heightDifference) toView:nil];
|
||||
|
||||
NSRect windowFrame = [mainWindow frame];
|
||||
windowFrame.size.height += growing ? sizeChange.height : -sizeChange.height;
|
||||
windowFrame.origin.y -= growing ? sizeChange.height : -sizeChange.height;
|
||||
[mainWindow setFrame:windowFrame display:YES animate:YES];
|
||||
|
||||
|
||||
[tableScrollView setAutoresizingMask:oldOutlineViewMask];
|
||||
[predicateEditorScrollView setAutoresizingMask:oldPredicateEditorViewMask];
|
||||
|
||||
rowCount = newRowCount;
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,429 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.03">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1050</int>
|
||||
<string key="IBDocument.SystemVersion">9J61</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">677</string>
|
||||
<string key="IBDocument.AppKitVersion">949.46</string>
|
||||
<string key="IBDocument.HIToolboxVersion">353.00</string>
|
||||
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<integer value="2"/>
|
||||
</object>
|
||||
<object class="NSArray" key="IBDocument.PluginDependencies">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>com.apple.InterfaceBuilderKit</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSCustomObject" id="1001">
|
||||
<string key="NSClassName">NSObject</string>
|
||||
</object>
|
||||
<object class="NSCustomObject" id="1003">
|
||||
<string key="NSClassName">FirstResponder</string>
|
||||
</object>
|
||||
<object class="NSCustomObject" id="1004">
|
||||
<string key="NSClassName">NSApplication</string>
|
||||
</object>
|
||||
<object class="NSWindowTemplate" id="540806231">
|
||||
<int key="NSWindowStyleMask">15</int>
|
||||
<int key="NSWindowBacking">2</int>
|
||||
<string key="NSWindowRect">{{196, 394}, {477, 116}}</string>
|
||||
<int key="NSWTFlags">1677722624</int>
|
||||
<string key="NSWindowTitle">Preferences</string>
|
||||
<string key="NSWindowClass">NSWindow</string>
|
||||
<nil key="NSViewClass"/>
|
||||
<string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string>
|
||||
<object class="NSView" key="NSWindowView" id="615275372">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">256</int>
|
||||
<object class="NSMutableArray" key="NSSubviews">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSTextField" id="707613289">
|
||||
<reference key="NSNextResponder" ref="615275372"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{17, 79}, {60, 17}}</string>
|
||||
<reference key="NSSuperview" ref="615275372"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="476929583">
|
||||
<int key="NSCellFlags">68288064</int>
|
||||
<int key="NSCellFlags2">272630784</int>
|
||||
<string key="NSContents">Tcl path:</string>
|
||||
<object class="NSFont" key="NSSupport" id="135612064">
|
||||
<string key="NSName">LucidaGrande</string>
|
||||
<double key="NSSize">1.300000e+01</double>
|
||||
<int key="NSfFlags">1044</int>
|
||||
</object>
|
||||
<reference key="NSControlView" ref="707613289"/>
|
||||
<object class="NSColor" key="NSBackgroundColor" id="317531640">
|
||||
<int key="NSColorSpace">6</int>
|
||||
<string key="NSCatalogName">System</string>
|
||||
<string key="NSColorName">controlColor</string>
|
||||
<object class="NSColor" key="NSColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MC42NjY2NjY2OQA</bytes>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSColor" key="NSTextColor" id="689169118">
|
||||
<int key="NSColorSpace">6</int>
|
||||
<string key="NSCatalogName">System</string>
|
||||
<string key="NSColorName">controlTextColor</string>
|
||||
<object class="NSColor" key="NSColor" id="1019754084">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MAA</bytes>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSTextField" id="140782020">
|
||||
<reference key="NSNextResponder" ref="615275372"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{82, 77}, {273, 22}}</string>
|
||||
<reference key="NSSuperview" ref="615275372"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="559211659">
|
||||
<int key="NSCellFlags">-2072904127</int>
|
||||
<int key="NSCellFlags2">272630784</int>
|
||||
<string key="NSContents"/>
|
||||
<reference key="NSSupport" ref="135612064"/>
|
||||
<reference key="NSControlView" ref="140782020"/>
|
||||
<bool key="NSDrawsBackground">YES</bool>
|
||||
<object class="NSColor" key="NSBackgroundColor">
|
||||
<int key="NSColorSpace">6</int>
|
||||
<string key="NSCatalogName">System</string>
|
||||
<string key="NSColorName">textBackgroundColor</string>
|
||||
<object class="NSColor" key="NSColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSColor" key="NSTextColor">
|
||||
<int key="NSColorSpace">6</int>
|
||||
<string key="NSCatalogName">System</string>
|
||||
<string key="NSColorName">textColor</string>
|
||||
<reference key="NSColor" ref="1019754084"/>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSButton" id="259885027">
|
||||
<reference key="NSNextResponder" ref="615275372"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{363, 77}, {94, 19}}</string>
|
||||
<reference key="NSSuperview" ref="615275372"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="749224624">
|
||||
<int key="NSCellFlags">-2080244224</int>
|
||||
<int key="NSCellFlags2">134217728</int>
|
||||
<string key="NSContents">Select...</string>
|
||||
<object class="NSFont" key="NSSupport">
|
||||
<string key="NSName">LucidaGrande</string>
|
||||
<double key="NSSize">1.200000e+01</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<reference key="NSControlView" ref="259885027"/>
|
||||
<int key="NSButtonFlags">-2038152961</int>
|
||||
<int key="NSButtonFlags2">164</int>
|
||||
<string key="NSAlternateContents"/>
|
||||
<string key="NSKeyEquivalent"/>
|
||||
<int key="NSPeriodicDelay">400</int>
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSTextField" id="784669975">
|
||||
<reference key="NSNextResponder" ref="615275372"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{29, 20}, {431, 42}}</string>
|
||||
<reference key="NSSuperview" ref="615275372"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="808105839">
|
||||
<int key="NSCellFlags">67239424</int>
|
||||
<int key="NSCellFlags2">1346502656</int>
|
||||
<string key="NSContents">This is usually /Library/Tcl. Since this demo version is tested with MacPorts 1.8 your current installation may not fully work but you can always install a non privileged installation of MacPorts 1.8.</string>
|
||||
<object class="NSFont" key="NSSupport">
|
||||
<string key="NSName">LucidaGrande</string>
|
||||
<double key="NSSize">1.100000e+01</double>
|
||||
<int key="NSfFlags">3100</int>
|
||||
</object>
|
||||
<reference key="NSControlView" ref="784669975"/>
|
||||
<reference key="NSBackgroundColor" ref="317531640"/>
|
||||
<reference key="NSTextColor" ref="689169118"/>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<string key="NSFrameSize">{477, 116}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
</object>
|
||||
<string key="NSScreenRect">{{0, 0}, {1280, 778}}</string>
|
||||
<string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string>
|
||||
</object>
|
||||
<object class="NSUserDefaultsController" id="457243387">
|
||||
<bool key="NSSharedInstance">YES</bool>
|
||||
</object>
|
||||
<object class="NSCustomObject" id="357012729">
|
||||
<string key="NSClassName">PreferencesController</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<object class="NSMutableArray" key="connectionRecords">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBBindingConnection" key="connection">
|
||||
<string key="label">value: values.PKGPath</string>
|
||||
<reference key="source" ref="140782020"/>
|
||||
<reference key="destination" ref="457243387"/>
|
||||
<object class="NSNibBindingConnector" key="connector">
|
||||
<reference key="NSSource" ref="140782020"/>
|
||||
<reference key="NSDestination" ref="457243387"/>
|
||||
<string key="NSLabel">value: values.PKGPath</string>
|
||||
<string key="NSBinding">value</string>
|
||||
<string key="NSKeyPath">values.PKGPath</string>
|
||||
<int key="NSNibBindingConnectorVersion">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<int key="connectionID">9</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">selectPKGPath:</string>
|
||||
<reference key="source" ref="357012729"/>
|
||||
<reference key="destination" ref="259885027"/>
|
||||
</object>
|
||||
<int key="connectionID">15</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBOutletConnection" key="connection">
|
||||
<string key="label">pkgPathField</string>
|
||||
<reference key="source" ref="357012729"/>
|
||||
<reference key="destination" ref="140782020"/>
|
||||
</object>
|
||||
<int key="connectionID">16</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<object class="NSArray" key="orderedObjects">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<object class="NSArray" key="object" id="1002">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="1001"/>
|
||||
<reference key="parent" ref="1002"/>
|
||||
<string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="1003"/>
|
||||
<reference key="parent" ref="1002"/>
|
||||
<string key="objectName">First Responder</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-3</int>
|
||||
<reference key="object" ref="1004"/>
|
||||
<reference key="parent" ref="1002"/>
|
||||
<string key="objectName">Application</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1</int>
|
||||
<reference key="object" ref="540806231"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference ref="615275372"/>
|
||||
</object>
|
||||
<reference key="parent" ref="1002"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">2</int>
|
||||
<reference key="object" ref="615275372"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference ref="707613289"/>
|
||||
<reference ref="140782020"/>
|
||||
<reference ref="259885027"/>
|
||||
<reference ref="784669975"/>
|
||||
</object>
|
||||
<reference key="parent" ref="540806231"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">3</int>
|
||||
<reference key="object" ref="707613289"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference ref="476929583"/>
|
||||
</object>
|
||||
<reference key="parent" ref="615275372"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">4</int>
|
||||
<reference key="object" ref="476929583"/>
|
||||
<reference key="parent" ref="707613289"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">5</int>
|
||||
<reference key="object" ref="140782020"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference ref="559211659"/>
|
||||
</object>
|
||||
<reference key="parent" ref="615275372"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">6</int>
|
||||
<reference key="object" ref="559211659"/>
|
||||
<reference key="parent" ref="140782020"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">7</int>
|
||||
<reference key="object" ref="457243387"/>
|
||||
<reference key="parent" ref="1002"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">10</int>
|
||||
<reference key="object" ref="259885027"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference ref="749224624"/>
|
||||
</object>
|
||||
<reference key="parent" ref="615275372"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">11</int>
|
||||
<reference key="object" ref="749224624"/>
|
||||
<reference key="parent" ref="259885027"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">12</int>
|
||||
<reference key="object" ref="784669975"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference ref="808105839"/>
|
||||
</object>
|
||||
<reference key="parent" ref="615275372"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">13</int>
|
||||
<reference key="object" ref="808105839"/>
|
||||
<reference key="parent" ref="784669975"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">14</int>
|
||||
<reference key="object" ref="357012729"/>
|
||||
<reference key="parent" ref="1002"/>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="flattenedProperties">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSMutableArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>-1.IBPluginDependency</string>
|
||||
<string>-2.IBPluginDependency</string>
|
||||
<string>-3.IBPluginDependency</string>
|
||||
<string>1.IBEditorWindowLastContentRect</string>
|
||||
<string>1.IBPluginDependency</string>
|
||||
<string>1.IBWindowTemplateEditedContentRect</string>
|
||||
<string>1.NSWindowTemplate.visibleAtLaunch</string>
|
||||
<string>10.IBPluginDependency</string>
|
||||
<string>11.IBPluginDependency</string>
|
||||
<string>12.IBPluginDependency</string>
|
||||
<string>13.IBPluginDependency</string>
|
||||
<string>14.IBPluginDependency</string>
|
||||
<string>2.IBPluginDependency</string>
|
||||
<string>3.IBPluginDependency</string>
|
||||
<string>4.IBPluginDependency</string>
|
||||
<string>5.IBPluginDependency</string>
|
||||
<string>6.IBPluginDependency</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>com.apple.InterfaceBuilderKit</string>
|
||||
<string>com.apple.InterfaceBuilderKit</string>
|
||||
<string>{{219, 400}, {477, 116}}</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>{{219, 400}, {477, 116}}</string>
|
||||
<boolean value="YES"/>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<nil key="activeLocalization"/>
|
||||
<object class="NSMutableDictionary" key="localizations">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">18</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">PreferencesController</string>
|
||||
<string key="superclassName">NSObject</string>
|
||||
<object class="NSMutableDictionary" key="actions">
|
||||
<string key="NS.key.0">selectPKGPath:</string>
|
||||
<string key="NS.object.0">id</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSMutableArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>pkgPathField</string>
|
||||
<string>preferencesWindow</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>NSTextField</string>
|
||||
<string>NSWindow</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">PreferencesController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.LastKnownRelativeProjectPath">MPGUI.xcodeproj</string>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
</data>
|
||||
</archive>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user