PDA

View Full Version : New source release pushed to github


Tim Wood
2012-02-03, 10:48 AM
Enjoy!

[r161025] Document picker polish and performance and various other fixes.

Configurations:
- A few minor tweaks for Xcode 4.3.
- Add -DDEBUG and -DDEBUG_$(USER) to INFOPLIST_PREPROCESSOR_DEFINITIONS.

Overall:
- Fix up new warnings from Xcode 4.3.
- Start using the 'context' passing KVO remove method when available.

OmniBase:
- Fixed System framework detection for Xcode 4.3.
- Rewrote OBFinishPorting macros so they emit a string with a specific
format into the executable. This allows searching for all uses with:

strings MyApp.app/MyApp | grep OBFinishPorting

OmniFoundation:
- Added OFCheckForInstruments() and make OFObject abort if inline retain
counts are on while Instruments is trying to track retains.
- Fix parsing for ICU date formats that have quoted dots as literals.
- Weakly link new Security.framework symbols for 10.6 compatibility
- Added block-based helper to OFXMLElement -addElement:childBlock:

OmniFileStore:
- Fixed a bug in OFSDAVOperation where it would stream error content
from HTTP errors to its target as though it were normal content.
- Added block-based asynchronous read/write APIs to OFSFileManager.
- Added user default for disallowing our uses of iCloud support completely.
- Rewrote uniquification of file names to be done on the action queue,
locale/case insensitive.
- Added a OFSDocumentStoreScope wrapper object instead of an enum so we can
better support multiple ubiquitous scopes.
- Updated many OFSDocumentStore methods to take OFSDocumentStoreScope
parameters where needed.
- Removed file coordination over whole Documents directory since coordinated
reads of parent directories don't block anything useful.
- Fixed up issues with document renaming
- Added more support for avoiding full rescans of containers when just
adding a single file.
- Only create file items on the main queue, serializing possible updates
from background actions.
- Deal with missing public UTI for zip more reliably.
- Moved OFSDocumentStoreFilter from OmniUI.

OmniQuartz:
- CALayer animation logging can be configured on a per layer tree basis
- Added helpers for caching/flattening/scaling CFImageRefs

OmniAppKit:
- Fixed #ifdef guarding use of -supplementalTargetForAction:sender:.
- Make OAFindController's outlets retained.
- Added NSError support in OAScriptToolbarHelper/OAWorkflow.
- Improved default indicator buttons and added a new (x) image.
- Added -eachAttachment: block iterator to NSAttributedString.
- Added NSNib utility methods to help transition to more reasonable retain
semantic methods can the old NSBundle methods.
- Switched some callers to new NSNib helper methods.
- Fixed bug in OAFontDescriptor with changing family name on a descriptor
with implied symbolic attributes.
- Added OAToolbarItem -menuFormRepresentation for target selection.

OmniInspector:
- Better handle automatic termination for writing inspector preferences

OmniUI:
- Re-added images that got accidentally removed
- Fixed some leaks
- Updated keyboard avoidance handling to deal better with iOS 5.1
- Stacked slices inspectors scroll the first responder into view when the
keyboard appears/disappears
- Stacked slices inspectors validate available slices more consistently
- Document closing activity indicator color can be customized by the
document view controller
- Handle more types of NSErrors when displaying them.
- Added a default tools toolbar item icon
- The document store now tells its delegate when an item moved; we move the
cached previews rather than regenerating them
- Preview generation is now asynchronous with completion handlers, allowing
more of it to run on a background queue
- Preview image compression and writing is now done on a background queue to
keep the UI interactive
- Better handle possible crashes in preview generation so we end up with a
placeholder on the next run, rather than crashing again on the next run
(should this ever happen).
- Add a background task while generating a preview so we finish and close
the document (lowering our memory use while backgrounded). This also
avoids weird race conditions with UIDocument closing and activating when
the document is deleted in the backgrounded interval
- Report better errors when attempting to open a document that has
disappeared (since iTunes writes don't provoke NSFilePresenter/Coordinator
right now, sadly).
- Deal with oddity in UIDocument where a failed open leaves the document
still as a file presenter -- closing the "not open" document fixes it.
- Prefer to generate previews for files that are scrolled into view, making
preview generation feel faster
- Use OFSDocumentStoreFilter to control the visible documents in the picker.
- Moved the edit/drag recognizer to the document picker scroll view, now
that we have two of them.
- Fixed animation/flicker in various duplicating/renaming cases.
- Fix updating of the document title toolbar item when renaming documents
while they are open.
- Improve document picker animation when rotating the device
- Duplicate previews when duplicating files rather than generating them by
loading the file
- Add a confirmation menu when duplicating more than one document at a time
- Disable all the support for document picker folders for now
- Preview generation uses the improved OQ functions for caching flattened
images (meaning they are fully read and rendered off disk). Important for
performance and so CGImageRef doesn't get confused if we rename a preview
file due to the document file being renamed.
- Preview caching tries to deal with /var/mobile vs /var/private/mobile in a
more reliably way.
- Document renaming now handles hardware, split, undocked keyboards better
when transitioning between states and rotating.
- Improved document renaming view layout and rotation handling
- Added returnKeyType support to OUIEditableFrame
- Added OUIEditableFrameTextDid{BeginEditing,EndEditing,Ch ange}Notification
- Fixed possible zombie when changing a text attribute over multiple spans
- Moved the selection loupe to the root view controller's view rather than
the window, lest it be in the wrong coordinate system.
- Release the text inspector when it isn't in use -- it isn't used that
often and this lowers our memory use.
- Made tapping on OUIEditableLabeledValueCell easier (for example, in
WebDAV/iDisk setup text fields)
- Crossfade the non-document portions of the screen when opening/closing
documents.
- Fixed renaming of open documents via the file name toolbar item
- Improved reliability of Inbox handling and zip extraction when files are
tapped on in Mail
- Fixed issues with downloading wrappers from WebDAV

TextEditor sample:
- Fix document open/close animation rects
- Fixed leaks
- Fixed sizing of the document title toolbar item
- Updated for new preview generation API. Added comments for developers
doing so in their own apps.