Skip to content

Commit

Permalink
Major XCC improvments
Browse files Browse the repository at this point in the history
This patch contains the following:

 - FSEvent is now at files level instead of folders level. This allows to drop the registry in plist and improve the performances
 - When you remove a J file, the mirrored H file is removed too
 - .xcodecapp-ignore has been added to the FSEvent stream. ignored token are updated in live
 - By default XCC ignores all .git, .svn, .hg .xCodeSupport, Frameworks and Build folders
 - When you quit XCC without stop listening of the project, at next launch it will resume on the same project
 - Help has been added
 - Help is displayed at first user launch
 - The Error & Warning table doesn't pop ups automatically, instead it displays Growl (you can then open the panel for more informations)
 - The code has been refactored into several classes, one for UI thing, another one for XCC worker
 - Several bugs has been fixed
 - The about window now displays the version number
 - The main window has been removed
 - Several other small enhancements.

This is XCC 2.0.
  • Loading branch information
Antoine Mercadal committed Nov 3, 2011
1 parent 7e6ed01 commit c77b35c
Show file tree
Hide file tree
Showing 18 changed files with 1,454 additions and 1,291 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -134,9 +134,10 @@
9EEC448A135749D200615446 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0420;
ORGANIZATIONNAME = "280 North, Inc.";
};
buildConfigurationList = 9EEC448D135749D200615446 /* Build configuration list for PBXProject "Another" */;
buildConfigurationList = 9EEC448D135749D200615446 /* Build configuration list for PBXProject "scrollview" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
Expand Down Expand Up @@ -323,7 +324,7 @@
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
9EEC448D135749D200615446 /* Build configuration list for PBXProject "Another" */ = {
9EEC448D135749D200615446 /* Build configuration list for PBXProject "scrollview" */ = {
isa = XCConfigurationList;
buildConfigurations = (
9EEC44C3135749D300615446 /* Debug */,
Expand All @@ -339,6 +340,7 @@
9EEC44C7135749D300615446 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
9EEC44C8135749D300615446 /* Build configuration list for PBXNativeTarget "AnotherTests" */ = {
isa = XCConfigurationList;
Expand All @@ -347,6 +349,7 @@
9EEC44CA135749D300615446 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -134,9 +134,10 @@
9EEC448A135749D200615446 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0420;
ORGANIZATIONNAME = "280 North, Inc.";
};
buildConfigurationList = 9EEC448D135749D200615446 /* Build configuration list for PBXProject "Another" */;
buildConfigurationList = 9EEC448D135749D200615446 /* Build configuration list for PBXProject "NibAppRemixed" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
Expand Down Expand Up @@ -323,7 +324,7 @@
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
9EEC448D135749D200615446 /* Build configuration list for PBXProject "Another" */ = {
9EEC448D135749D200615446 /* Build configuration list for PBXProject "NibAppRemixed" */ = {
isa = XCConfigurationList;
buildConfigurations = (
9EEC44C3135749D300615446 /* Debug */,
Expand All @@ -339,6 +340,7 @@
9EEC44C7135749D300615446 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
9EEC44C8135749D300615446 /* Build configuration list for PBXNativeTarget "AnotherTests" */ = {
isa = XCConfigurationList;
Expand All @@ -347,6 +349,7 @@
9EEC44CA135749D300615446 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
Expand Down
45 changes: 10 additions & 35 deletions Tools/xcodecapp-cocoa/AppController.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,67 +17,42 @@
*/

#import <Cocoa/Cocoa.h>
#import <CoreServices/CoreServices.h>
#import "PRHEmptyGrowlDelegate.h"
#import "TNXCodeCapp.h"

@interface AppController : NSObject <NSMenuDelegate>
{
IBOutlet NSButton *buttonOpenXCode;
IBOutlet NSButton *buttonStart;
IBOutlet NSButton *buttonStop;
IBOutlet NSMenu *statusMenu;
IBOutlet NSMenuItem *menuItemOpenXCode;
IBOutlet NSMenuItem *menuItemStart;
IBOutlet NSMenuItem *menuItemStop;
IBOutlet NSMenuItem *menuItemProjectName;
IBOutlet NSPanel *errorsPanel;
IBOutlet NSProgressIndicator *spinner;
IBOutlet NSTableView *errorsTable;
IBOutlet NSTextField *labelCurrentPath;
IBOutlet NSTextField *labelPath;
IBOutlet NSTextField *labelStatus;
IBOutlet NSWindow *mainWindow;
IBOutlet NSWindow *helpWindow;
IBOutlet NSTextView *helpTextView;
IBOutlet NSTextField *labelVersion;

FSEventStreamRef stream;
NSDate *appStartedTimestamp;
NSFileManager *fm;
TNXCodeCapp *_xcc;
NSImage *_iconActive;
NSImage *_iconInactive;
NSMutableArray *errorList;
NSMutableArray *ignoredFilePaths;
NSMutableArray *modifiedXIBs;
NSMutableDictionary *pathModificationDates;
NSNumber *lastEventId;
NSImage *_iconWorking;
NSStatusItem *_statusItem;
NSString *currentProjectName;
NSString *parserPath;
NSString *XCodeSupportPBXPath;
NSString *XCodeSupportProjectName;
NSString *XCodeTemplatePBXPath;
NSString *_profilePath;
NSURL *currentProjectURL;
NSURL *XCodeSupportFolder;
NSURL *XCodeSupportProject;
NSURL *XCodeSupportProjectSources;
PRHEmptyGrowlDelegate *growlDelegateRef;
}

- (BOOL)isObjJFile:(NSString*)path;
- (BOOL)isPathMatchingIgnoredPaths:(NSString*)aPath;
- (BOOL)isXIBFile:(NSString *)path;
- (BOOL)prepareXCodeSupportProject;
- (BOOL)validateMenuItem:(NSMenuItem*)menuItem;
- (NSURL*)shadowURLForSourceURL:(NSURL*)aSourceURL;
- (void)handleFileModification:(NSString*)path ignoreDate:(BOOL)shouldIgnoreDate;
- (void)initializeEventStreamWithPath:(NSString*)aPath;
- (void)registerDefaults;
- (void)updateErrorTable;
- (void)updateLastEventId:(uint64_t)eventId;
- (void)growlWithTitle:(NSString *)aTitle message:(NSString *)aMessage;

- (IBAction)chooseFolder:(id)aSender;
- (IBAction)clearErrors:(id)sender;
- (IBAction)openXCode:(id)aSender;
- (IBAction)stopListener:(id)aSender;
- (IBAction)openHelp:(id)aSender;

- (BOOL)applicationShouldHandleReopen:(NSApplication *)theApplication hasVisibleWindows:(BOOL)flag;
- (CGFloat)tableView:(NSTableView *)tableView heightOfRow:(int)aRow;
- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row;
- (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView;
Expand Down
Loading

0 comments on commit c77b35c

Please sign in to comment.