Commit Graph
1156 Commits
Author SHA1 Message Date
Aparajita Fishman 9e7346f1e8 New: new index.html with loading progress by default.
Previously, the index[-debug].html in the default capp templates did not include a loading progress function. We just had the plain spinner, which gave no visible sign of progress.

Now the capp templates include a progress function and a nice iOS7-ish progress thermometer	is displayed during loading (except when run directly from source). 'jake debug' and 'jake release' will now generate the application/image sizes needed to display loading progress. The old spinner.gif has been removed.

In addition, the message displayed when JavaScript is unavailable has been simplified and shows a link to www.enable-javascript.com instead of the missing link to our old site.
2013-08-02 17:49:45 -04:00
Aparajita Fishman a5e62ed132 Fixed: NSMenu autoEnablesItems was not supported by nib2cib. 2013-07-22 21:13:15 -04:00
Aparajita Fishman 90fe91d63e Formatting: @ignore requires /*! comment, whitespace cleanup 2013-07-17 13:28:17 -04:00
Aparajita Fishman 083310c44f Fixed: nib2cib did not allow xibs or images to be in subdirectories of Resources.
Previously, nib2cib would not correctly calculate the app/resource directories if the xib was in a subdirectory of Resources. Also, image resources in subdirectories did not have the subdirectory encoded with the image name.

Now xibs and images may be anywhere under Resources.

Fixes #1960.
2013-07-14 18:11:31 -04:00
Alexander Ljungberg 72169e54d8 New: nib2cib support for runtime attributes of point, size, rect and range types.
This change adds nib2cib support for `NSValue` when the value represents a NSPoint, NSSize, NSRect or an NSRange, which enables user defined runtime attributes of these types to be set in Xcode and then properly decoded in a Cappuccino app.
2013-06-13 13:24:36 +01:00
Udo Schneider 6a516873b7 New: Added "Resources" directory to cap Framework template
Added a new folder "Resources" in Tools/capp/Resources/Templates/Framework/. As the folder is empty be default for frameworks it contains a .gitignore file to be able to add it to git.

Motivation is to prevent (spelling) mistakes when manually creating a Resource folder for Frameworks (e.g. "Ressources").
2013-06-01 13:13:05 +02:00
Aparajita Fishman 668eb1f8c4 Fixed: in some cases nib2cib would write to stdout, which wasn't captured by XcodeCapp.
Previously, only stderr was checked for response text. In some edge cases it would write an error message to stdout. In addition, the default error message provided when the return status was non-zero and the output was empty was implemented incorrectly.

Now all output from nib2cib is correctly captured.

Also updated help to indicate how to enable debug logging.
2013-05-25 19:23:10 -04:00
Aparajita Fishman eb859d42a4 Fixed: framework image names without @framework would cause nib2cib to fail.
I wasn't properly handling the case where _resourcePathForName would be called with a nil framework.
2013-05-14 07:54:08 -04:00
Aparajita Fishman e047212f5f New: xcc --reset resets the Xcode support before opening the project.
This will help in cases where the project is way out of sync and crashes XCC.
2013-05-12 16:18:41 -04:00
Aparajita Fishman 574672f15f Fixed: some error handling needed improving.
- Added ~/narwhal/bin to executable paths.
- Hopefully clearer error message when an executable is missing.
- Log PATH when executable is missing.
- Catch parse exceptions when parsing parser.j errors, log the returned text.
2013-05-11 09:34:23 -04:00
Aparajita Fishman 9b3676fa4f New: missing image/framework in xib is reported as an error.
Previously, if an image or framework in image@framework was missing, it was just a warning, and conversion would continue.

Now an exception is raised and conversion stops.
2013-05-10 09:27:47 -04:00
Aparajita Fishman 75b3bf22e6 New: added xcc executable to open a project in XcodeCapp from command line.
Usage: xcc [directory]

Updated help accordingly.
2013-05-09 16:48:37 -04:00
Aparajita Fishman 86d7ec4180 New: added "Show in Finder" item to XcodeCapp.
Shows the Cappuccino project folder. If Path Finder is installed, it says "Show in Path Finder" and that is used.

Reorganized the menu a bit and updated the help.
2013-05-09 09:26:44 -04:00
Aparajita Fishman a63bb155c2 New: nib2cib gives a more helpful message when unsupported classes are encountered.
Previously users saw the generic "-[CPKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (NSFoo)" message, which was not particularly instructive.

Now the message is: "NSFoo objects are not supported by nib2cib."

Closes #1923
2013-05-09 07:35:27 -04:00
Aparajita Fishman e7ad1a1f7a New: bumped XcodeCapp version. 2013-05-09 07:02:53 -04:00
Aparajita Fishman 2e0b204b8d Fixed: Xcode project was being saved when no modifications were made.
Saving the project requires the xib to be selected again if it was being edited, which is not so nice.

Now we check the project's modified flag before saving and lazy-create the groups.
2013-05-08 22:28:07 -04:00
Aparajita Fishman 77f8136e79 New: give a download link for XcodeCapp 3. 2013-05-08 11:01:21 -04:00
Aparajita Fishman 14eff74652 Docs: updated XCC help. 2013-05-08 10:19:46 -04:00
Aparajita Fishman 14fec1a608 Fixed: deleted xib or cib files were not processed correctly.
Now, deleting a xib file will delete its corresponding cib. Deleting the cib will mark its corresponding xib for updating.
2013-05-08 10:19:25 -04:00
Aparajita Fishman 7034635b8e Fixed: converting xib with Autolayout gave confusing error message.
Previously, attempting to nib2cib a xib with autolayout would give an error message that there was no class to archive NSLayoutConstraint, which was meaningless to most people.

Now an error message that says exactly why it failed and how to fix it is given.
2013-05-08 09:57:00 -04:00
Aparajita Fishman 19aee142de Fixed: headers were incorrect or missing. 2013-05-08 09:54:13 -04:00
Aparajita Fishman 218eed7e97 Fixed: Frameworks/Source was being ignored during directory scans.
Formatting tweaks also.
2013-05-07 19:00:55 -04:00
Aparajita Fishman 1e828b2e8d New: changed terminology from "Reset Project" to "Synchronize Project". 2013-05-07 12:39:59 -04:00
Aparajita Fishman 4c94691b6f Fixed: merge with master added spurious files. 2013-05-07 12:39:31 -04:00
Aparajita Fishman 2b273b1e12 Fixed: capp templates were missing configuration for new features.
- The new compiler requires the OBJJ_INCLUDE_PATHS environment variable to be set.
- The new XcodeCapp 3 support for Frameworks/Source requires that directory to be excluded from builds.
2013-05-07 12:38:58 -04:00
Aparajita Fishman 97f93a031f Merge branch 'refs/heads/master' into XcodeCapp3 2013-05-06 17:45:48 -04:00
Antoine Mercadal 21301cae21 Merge pull request #1912 from Dogild/CornerView
Fixed: CornerView in TableViews from cibs are not sized well
2013-05-06 13:13:31 -07:00
Aparajita Fishman 2abe573bfe Fixed: XcodeCapp would attempt to build on non-Mac OS X platforms. 2013-05-05 22:18:50 -04:00
Aparajita Fishman 0aad32ba86 Fixed: building on 10.6 failed.
There are features of Objective-C 2.0 used in XcodeCapp that cannot be compiled with Xcode 4.2, which is the maximum version that runs on OS X 10.6. Users on 10.6 would see compile errors.

Now a check for OS X 10.7+ is done, and on any version earlier than that, the user is presented with a message telling them to download XcodeCapp from the web site.
2013-05-05 16:13:43 -04:00
Aparajita Fishman a24aacdb3e Fixed: pbxprojModifier was not working on OS X 10.6.
It turns out it never worked on 10.6. I had to modify mod_pbxproj.py to make it work. In the process I was able to make it faster by skipping conversion to JSON.

Also, a backup of the pbxproj file is made before saving, just in case.
2013-05-05 10:37:52 -04:00
Aparajita Fishman d2b1968dec Fixed: About window icon was small in OS X 10.6
Previously I was using the app icns file for the image. Now I have a separate retina-ready image for the About window.
2013-05-03 12:14:48 -04:00
Aparajita Fishman 9ee7535039 Tweaked the parser error messages 2013-05-03 12:12:46 -04:00
Aparajita Fishman d723c7306a Fixed: XCC was crashing on startup in OS X 10.6
The Lumberjack logging library was using a function not present in 10.6.

This commit reverts to an earlier release that works with 10.6.
2013-05-03 12:12:15 -04:00
Aparajita Fishman 2b5cf1a56d Fixed: renamed jsc to narwhal-jsc.
Also put the list of mandatory executables in Info.plist.
2013-05-02 17:52:21 -04:00
Aparajita Fishman 1f4b49c461 Fixed: missing help.pdf. 2013-05-02 17:38:25 -04:00
Aparajita Fishman e20f2b75f0 Fixed: Lumberjack files were missing. 2013-05-02 17:24:29 -04:00
Aparajita Fishman 550401dffe New: XcodeCapp 3 total overhaul part 2.
Whew, a complete overhaul of my previous complete overhaul. Changes in no particular order:

- Redesigned the About box.
- Converted tabs to spaces.
- Using Lumberjack for (much better) logging. When debugging, copious logging goes only to Xcode's console, not to the system log. In the release build, only basic info and errors goes to the system log.
- Reformatted the help using Pages, it's a PDF now (so I can use better fonts).
- Massive optimization across the board. All time-consuming operations are done with NSOperation, which uses Grand Central Dispatch, and can be interrupted. So the XCC menu remains fully responsive during source processing.
- Updates to the Xcode project are coalesced so only one read/update/write operation is done.
- Instead of launching a shell and reading the .profile, the target executable is directly launched, but it must reside somewhere in the default binary path + /usr/local/bin:/usr/local/narwhal/bin:~/bin. If jsc, python, objj and nib2cib cannot be found in that path, the user is alerted and XCC quits.
- Added a preference (true by default) to automatically load the Xcode project when a project is opened.
- Added a preference to turn off per-file processing notifications.
- Added a hidden preference to set the log level. Useful for debugging a user's release build.
- Redesigned the Preferences window.
- Renamed some methods/properties, eliminated some unused properties.
- All of the windows remember their position.
- Moved the fsevent_callback into XcodeCapp.m.
- Fixed a bug in mod_pbxproj.py not setting the type of PBXFileReferences which are directories to "folder".
- Added support for categories in parser.j. Woo-hoo!
- Rewrote pbxprojModifier.py to use a class.
- Renamed the Xcode project group names to "Cocoa Classes" and "Cappuccino Source". Within "Cappuccino Source", framework code is kept in a "Frameworks" group.
- Shadow filenames are all project-relative now, thus *much* shorter.
- pbxprojModifier.py keeps the groups and files in the project in sorted order: Resource folders are at the top, followed by Cocoa Classes, followed by Cappuccino Source. Within Cocoa Classes, non-framework files come first, followed by framework files, followed by xcc_general_include.h.
- If either .XcodeSupport or the .xcodeproj is missing, the other is regenerated to ensure they stay in sync.
- A compatibility version for .XcodeSupport is stored inside it in Info.plist. If that version < the app's compatibility version, the project is reset. This ensures that format changes in the future will not result in projects in an unknown state.
- If the Xcode project cannot be opened, the user is alerted and given the option of regenerating the project.
- Resetting the project deletes all .cibs to force the .xibs to be regenerated.
- All possible FSEvents are dealt with individually now, and in a way that (hopefully) maintains sync between Cappuccino and XCC.
- A file descriptor to the Xcode project is kept open so that If the project path changes it can be relocated. If it does move, the user is alerted ad given the option of reloading the project or quitting.
- If one of the watched paths changes, the project is reloaded.
- Xcode creates temporary files, they are properly filtered out now when handling FSEvents.
- NSRegularExpression was being used before, but that is OS X 10.7 only. NSPredicate is used instead now.
-
2013-05-02 17:04:46 -04:00
Aparajita Fishman 6de967345c Removed unused constant 2013-04-27 09:04:36 -04:00
Aparajita Fishman 52a53fb8d1 Fixed: if .xcodeproj was missing, it was not created.
Now if either .XcodeSupport or the .xcodeproj is missing, both are recreated to ensure they are in sync.

Also, when trying to open the Xcode project, if it is missing or cannot be opened, an alert is displayed and the user is given the option of regenerating the project.

Some code cleanup as well.
2013-04-26 14:27:47 -04:00
Aparajita Fishman 811c7444df New: added documentation for using framework images.
This documentation is also in the nib2cib man page, but who will read that?
2013-04-26 11:41:42 -04:00
Aparajita Fishman a5a9bbf1a7 Fixed: XcodeCapp would attempt to open a path that did not exist or was not a directory.
The first defense against this is to validate the recent menu items to ensure they exist and are directories. If not, the item is disabled.

The next time a project is opened, the missing project is pruned from the recent menu.

The second defense is a check when an attempt is made to open a project.
2013-04-26 11:30:12 -04:00
Aparajita Fishman 12cf674595 Fixed: warning notification said "Error parsing…" instead of "Warning parsing…"
I was missing the variable in a test.
2013-04-26 11:07:37 -04:00
Aparajita Fishman 2d8d68dc5e Fixed: Jakefile for XcodeCapp did not install symlink correctly.
FILE.exists was being used to test for the existence of the symlink in /Applications, but that doesn't work.

The correct way is to use ln -sfh. Note that the -h was missing before, which prevents an existing target symlink from being followed, which is why the symlink would end up inside XcodeCapp.app.
2013-04-25 23:22:37 -04:00
Aparajita Fishman fc8ca14743 Updated XcodeCapp 3 help to reflect new features. 2013-04-25 19:27:18 -04:00
Aparajita Fishman 15cf818b1e Fixed: not enough space around status icon. 2013-04-25 19:03:10 -04:00
Aparajita Fishman cf9b630401 Fixed: Xcode created temporary files which were being processed.
When saving a xib, Xcode creates a temporary file with the name <filename>~.xib. The file event listener would sometimes pick this up and XcodeCapp would attempt to process it, but by the time nib2cib was launched it would be gone, generating an error.

Now .xib files whose filenames end with ~ are ignored.
2013-04-25 19:02:46 -04:00
Aparajita Fishman 3cc6b8dfbe New: better icons for XcodeCapp 3 2013-04-25 19:00:20 -04:00
Aparajita Fishman bf6ce64209 New: XcodeCapp 3 tweaks...
- Renamed XcodeSupport to .XcodeSupport.
- Added "Reset Project" to menu, it closes the project in Xcode if necessary, removes .XcodeSupport and .xcodeproj, then reloads.
- Added separate preferences for showing errors panel on warnings/errors. You may not want to see the panel if there are category warnings.
- New status icons (again).
- If an error occurs, the status icon turns red when all processing is done.
- Reworked notifications. Objective-J parsing is notified when done. Xib conversion notifies at beginning and end, because it typically takes a few seconds. Individual file notifications are suppressed if a project is being loaded.
2013-04-25 13:11:22 -04:00
Aparajita Fishman 949af39041 New: the highest first launch version is saved.
The effect is that each minor point release (3.1 -> 3.2) will cause the help to display the first time it is launched, so that the user is encouraged to find out what is new.
2013-04-24 18:41:26 -04:00
Aparajita Fishman 2104c838bd Fixed: Resources directories in Frameworks/Source/<framework> were not picked up by XcodeCapp.
XcodeCapp would add a folder reference in the project for user framework Resources directories in Frameworks/Debug, but it didn't add references for framework Resources directories in Frameworks/Source.
2013-04-24 18:11:53 -04:00