Commits on Feb 10, 2012
  1. @tjw

    [r161449] <bug:///77920> (Tapping on two file names at the same time …

    …blocks interaction with the previews)
    It seems that, at least in iOS 5.1, that UIGestureRecognizer queues its actions asynchronously.
    This means that two recognizers can accept and queue actions before the first's action has fired.
    Rather than asserting that we aren't already in the middle of renaming when a rename is started, actually check and just bail if so.
    tjw committed Feb 10, 2012
  2. @tjw

    [r161440] <bug:///77924> (View not scrolling up far enough to see row…

    … you're editing)
    When in landscape mode, it seems that the order of notifications differs on iOS 5.0.1 such that our _keyboardVisible isn't set early enough.
    So, we now listen for UIKeyboardWillShowNotification and set it there. Also, to get the animation started right, we adjust our size in the will-show hook, lest the animation sizing the content be start after the keyboard and the bottom toolbar be hidden temporarily due to lagging behind.
    tjw committed Feb 10, 2012
  3. @tjw

    [r161433] Renamed the editingEnabled property to editingDisabled. Thi…

    …s makes it start out in the correct state for newly created documents.
    tjw committed Feb 10, 2012
Commits on Feb 9, 2012
  1. @tjw
  2. @tjw
  3. @tjw

    [r161389] <bug:///77585> (document layout animation stutters when cre…

    …ating a new document)
    OFSDocumentStore scanItemsWithCompletionHandler: scan-finished-block has a couple of places where the scope is asked for its container URL. This uses -[NSFileManager URLForUbiquityContainerIdentifier:] and I have found out that that can be slow. And, when this is called on each file in the document store, the app can slow down a lot.
    Therefore, I added a couple of convenience functions to generate a NSDictionary cache of the store scope containers and is used within these file loops. Note that a couple of the locations are actually assertions and have been ifdef'd appropriately. In addition, the assertion in OFSDocumentStoreFileItem _updateWithMetadataItem: was redundant and expensive so I commented it out for now.
    tjw committed Feb 9, 2012
  4. @tjw

    [r161412] Updated my commented out clang CC settings. Added one for s…

    …dk=iphone* since the latest clang builds work fine on the hardware.
    tjw committed Feb 9, 2012
  5. @tjw

    [r161181] Only abort() on OFObject inline ref counts being enabled wh…

    …ile using
    Instruments to track leaks in debug builds. This should allow QA to check for
    leaked objects, but they won't have (and don't particularly need) the ref
    count log.
    tjw committed Feb 9, 2012
  6. @tjw
  7. @tjw

    [r161133] Added a new OFSDocumentStoreFileItemFinishedDownloadingNoti…

    notification. Catch this in OUISingleDocumentAppController. Rename
    -[OUIDocumentPreviewGenerator fileItemContentsChanged:] to
    -fileItemNeedsPreviewUpdate: since it can be called for a couple reasons.
    tjw committed Feb 9, 2012
  8. @tjw

    [r161313] Mark a color profile related method as OBFinishPortingLater…

    … instead
    of OBFinishPorting.
    tjw committed Feb 9, 2012
  9. @tjw
  10. @tjw

    [r161213] Make the @synthesize refer to the ivar we have for it inste…

    …ad of
    dynamically generating some other ivar.
    tjw committed Feb 9, 2012
  11. @tjw
  12. @tjw

    [r161299] OUIDocumentPicker no longer tries to drive preview cache

      updating/flushing based on UIApplication lifecycle notifications.
      This introduces a race/ordering indeterminacy with OUIAppController.
      Now OUIAppController does it with the proper sequenced completion handlers
      (it was already doing it in the initial app startup case).
    [r161133] Added a new OFSDocumentStoreFileItemFinishedDownloadingNotification
      notification. Catch this in OUISingleDocumentAppController. Rename
      -[OUIDocumentPreviewGenerator fileItemContentsChanged:] to
      -fileItemNeedsPreviewUpdate: since it can be called for a couple reasons.
    [r161146] Split -[UIDocument scheduleAutosave] into two methods,
      -viewStateChanged and -beganUncommittedDataChange, which better indicate the
      reasons the caller might want to autosave. These also do different things
      We don't want to call -[UIDocument updateChangeCount:] directly when using
      NSUndoManager-based autosave support since the following pattern:
        - make a real change (dirty)
        - wait for autosave (not dirty)
        - make a view state change (dirty)
        - undo (not dirty, but previous change undone)
      would make UIDocument think it had no changes when it really did.
      Now, OUIDocument keeps track of a view state version counter. It is
      incremented each time -viewStateChanged is called and UIDocument's change
      tracking methods have been subclassed to read/update the counter. UIKit
      calls -hasUnsavedChanges when closing a document or backgrounding the app,
      even if the NSUndoManager-based system hasn't started an autosave.
      This means view state changes will not provoke an autosave (which is nice),
      but they'll participate in autosave if it happens (also nice) and will get
      saved at shutdown time (mostly nice, except for the possibility of spurious
      iCloud conflicts due to view state changes).
      Longer term, we should move view state out of the main file entirely.
      There are maybe a few extra changes we can make to reduce the spurious
      conflicts w/o changing the file format yet.
      See <bug:///75660> (Think about editor state changes and iCloud conflicts).
    [r161147] We now dismiss popovers in the document view when changes come in
      via iCloud. To prevent a crash and data loss, iCloud documents must be fully
      downloaded locally before we allow them to be removed from iCloud.
      We now only show the 'Move out of iCloud' menu option if the file is fully
      downloaded. Fixed crasher when a button on the bottom toolbar was being
      pressed at the same time a change comes in from iCloud. We now keep track of
      the document's editingEnabled and ignore bottomToolbar button presses if
      editingEnabled returns NO.
    [r161148] We were iterating through all of the views in the color picker,
      looking for swatches matching the current color. Now we stop looking after
      we find the first one.
    [r161296] Before doing something that might cause the software keyboard to
      resize via hiding/showing, clear the _receivedKeyboardWillResize flag we use
      to detect whether the hardware keyboard is being used or not. This avoids
      getting confused about whether to end editing if the software keyboard is
      temporarily shown while in the middle of a renaming session.
    [r161299] Adjusted the hack for ignoring spurious keyboard frame change
      notifications on pre- iOS 5.1. Now, if we get a frame change notification
      and the keyboard is supposedly hidden, we use a height of zero rather than
      totally ignoring it.
    tjw committed Feb 9, 2012
  13. @tjw
Commits on Feb 3, 2012
  1. @tjw

    [r161025] Document picker polish and performance and various other fi…

      - A few minor tweaks for Xcode 4.3.
      - Fix up new warnings from Xcode 4.3.
      - Start using the 'context' passing KVO remove method when available.
      - 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 | grep OBFinishPorting
      - 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:
      - 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.
      - CALayer animation logging can be configured on a per layer tree basis
      - Added helpers for caching/flattening/scaling CFImageRefs
      - 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.
      - Better handle automatic termination for writing inspector preferences
      - 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,Change}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
      - 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.
    tjw committed Feb 3, 2012
Commits on Dec 12, 2011
  1. @tjw
  2. @tjw

    [r159239] Lots of iCloud work, document picker performance/animation,…

    … fixes merged from internal branches
      - Default to 10.7 deployment target, though the framework code still supports setting this back to 10.6
      - Disabled cookie writing for now since it hasn't been ported to 10.7 and isn't used in the (few) internal OWF clients
      - Avoid returning implementation details windows in AppleScript ordered windows
      - Fix bug where date picker window could get stuck behind Mail popped up in full screen mode (via OmniFocus Quick Entry)
      - Moved OADocument into its own group
      - Preserve global variables between script runs in OAScriptToolbarHelper
      - Fixed method swizzle for NSTableView(OAExtensions) dragging support, though it should really be removed
      - Add support for -supplementalTargetForAction:sender: in our target/selection extension
      - Add support for non-monolithic menu/toolbar validation like:
    	   - (BOOL)validateToggleFooMenuItem:(NSMenuItem *)item;
    	   - (BOOL)validateToggleFooToolbarItem:(NSToolbarItem *)item;
    	   - (BOOL)validateToggleFoo:(id <NSValidatedUserInterfaceItem>)item;
        This lets you place the validation logic next to the action implementation
      - Fix some -Wshadow warnings
      - Move document store, file/group items and support here from OmniUI (with lots of fixes/extensions)
      - Added some UTI lookup helpers that prefer types exported by the calling app.
      - Added a convenience class, OFDynamicStoreListener, for subscribing to SCDynamicStore notifications. (hostname changes, computer name changes, etc.)
      - Added OFCompletionMatch (the model portion of OmniFocus's quick project and context matching)
      - Added OFIndexPath; a simplified NSIndexPath that avoided some early bugs in the NS version for high-use cases. May be able to get rid of it in 10.7.
      - OFMutableKnownKeyDictionary returns MKKDs now instead of plain dictionaries for -{mutableC,c,}opyWithZone:
      - Added OFRandomStateDuplicate() and OFRandomNextStateN().
      - Fixed bug in -[OFPreference _refresh] that would prevent it from refreshing.
      - Implemented -[NSMutableAttributedString replaceString:withString:inRange:].
      - Added OFLocalHostName to explicitly get the local (bonjour) hostname even when we have a FQDN.
      - OFHostName no longer caches the result, since the hostname can change during the life of the application.
      - Fixed some memory leaks in OFRelativeDateParser, made it handle abbreviations/full terms in other locales more reliably, handle diacriticals entered as ASCII
      - Add more support for 10.7 security APIs. Fix some unit tests to expect to fail on Lion and/or use the 10.6 API where needed while Apple fixes Radars.
      - Register .defaults files for the frameworks/libraries before any Info.plist entries for defaults from the main app. This allows iOS apps to override framework defaults.
      - Handle shape layers when exporting a layer tree as vector output.
      - Added some more rounded rect variants.
      - Only track application active time, not running time. The latter has become impossible to track reliably with apps that adopt Lion's app life cycle.
      - One software update item can now supersede another when it's on a more stable software update track.
      - Fixed automatic selection of the latest update in the table view.
      - Converted nibs to xibs
      - Moved document store, file/group items out to OmniFileStore.
      - Explicitly send -changeColor: up to targets instead of depending on targeting nil. The behavior of this changed in iOS 5 so that it doesn't proceed from the event receiver, but the windows first responder (seemingly).
      - Added support for keyboard accessory views on OUIInspectorTextWell and OUIEditableFrame
      - Fixed overlap of text and left/right views in centered text alignment in OUIInspectorTextWell.
      - Stacked slices inspector now allows multiple vertically resizable slices, splitting the space between them
      - Improved the document export sheet's selection of types to show
      - Changed parent view used to host text editor controls.
      - Much improved speed and lots of bug fixes to the document picker
      - Added OUICompletionMatchCell from OmniFocus for iOS.
      - Lots more iCloud work in the document picker. Still more to go, some waiting for Radar fixes.
      - Tons of other minor fixes and enhancements
      - Better handle documents and zipped documents document interaction "Inbox" directory
      - Updated action sheet and app menu to use the same block-based action approach
      - Added -URLByWritingTemporaryCopyOfTopLevelEntryNamed:error:.
    tjw committed Dec 12, 2011
Commits on Oct 19, 2011
  1. @tjw

    Added some scrolling behavior for <omnigroup#37>

    OUIEditableFrame intentaionlly doesn't scroll when typing/selection changes happen since it doens't have enough information to do so. In simple examples like this, it might be able to, but in more complex examples where the editable frame is a subview of some possibly nested set of scroll views, it cannot.
    tjw committed Oct 19, 2011
Commits on Oct 12, 2011
  1. @tjw

    [r156822] Require iOS 5, include a bunch of iCloud work, and better s…

    …upport Mac OS X 10.7.
    - Only build 64-bit on Mac OS X, using the latest SDK (instead of macosx10.6).
    - Require iOS 5.
    OmniUI iCloud support (work in progress):
    - Rewrote OUIDocument on top of UIDocument. Implemented several missing
      iWork-like UI features like notification of conflicts, incoming edits and
    - Rewrote preview generation and caching to keep the previews out of document
      file wrappers (since the iCloud storage guidelines say we should).
      Of course, iWork puts previews in its file wrappers.
      Previews are also always PNG now.
    - Split the file finding and managing portion of OUIDocumentPicker out into
      OUIDocumentStore, including NSMetadataQuery and local ~/Documents scanning.
    - Added file presenter aware file items.
    - Rewrote the document picker to use an iWork-style grid layout, with some not
      yet finished support for folders.
    - Added iWork-like renaming UI.
    - Added iWork-like conflict resolution UI.
    - Updated many of our APIs to have completion handlers since many underlying
      APIs they rely on are asynchronous now. More need to be updated
      (exporting PDF, camera roll image, etc).
    - Updated lots of surrounding code to deal with API changes in
      OUIDocument/UIDocument (async opening/closing, primarily).
    - There is still *lots* to do!
    - Fixed crash using Select All while autocorrect suggestion is showing in
      inspector field.
    - Avoid crash in -[AppleSpell init] for autocorrection in the simulator.
    - Fixed leak of text selection style inspector.
    - Fixed bug where replacing capitalized content of text well wouldn't
      capitalize the first letter.
    - Added support for spellCheckingType.
    - Added support for baseline aligning separate OUIEditableFrame/OUITextLayout
      instances (for example in "label: value" inspector slices).
    - Delaying registration of scroll notifications when loading from nib. Fixes
      assertions/bugs in the TextEditor sample.
    - Don't abort on -setBaseWritingDirection:forRange:, but just log the stack in
      debug builds. Still need to suppor this for real.
    - Fixed bug where it was hard to cancel auto correction results.
    - Fixed crash bringing up autocorrect in cases where trying to match a font
      that UIFont doesn't think exists.
    Other OmniUI:
    - Renamed OUIToolbarViewController to OUIMainViewController and added hooks
      for the inner views to provide toolbars instead of sharing one.
    - Renamed OUIParentViewController to OUIViewController and switched our
      document picker, inspectors and all other view controllers over to using
      iOS 5's view controller containment support.
    - OUIAnimationSequence now interprets a zero duration as a request to run
    - Added support for debug URL handling.
    - Fixed cases where we'd ask existing UIPopoverControllers for their arrow
      direction when re-presenting them. This returns
      UIPopoverArrowDirectionUnknown now and was throwing.
    - Added support in OUIApplication for remembering a shown action sheet and
      dismissing it when another popover/action sheet is shown.
    - Added an About item on the app's tools menu.
    - Track the initial tap location in OUIDirectTapGestureRecognizer to avoid
      problems when the view shifts due to keyboard is dismall.
    - Added a OUIDragGestureRecognizer.requiresHoldToComplete, which makes it act
      for all intents and purposes like a long-press gesture recognizer. If this
      works out as we hope, will remove OUILongPressGestureRecognizer and possibly
      rename things for clarity.
    - Switched some toolbar usage to use iOS 5 themeing support, but for some of
      our needs we still have custom view toolbar items.
    TextEditor example:
    - Added iCloud support, though you'll need to register the app in your portal
      account and possibly switch the bundle id in the app and entitlements.
    - Minor updates for API changes.
    - Move guts of -HMSStringFromTimeInterval: into OmniFoundation.
    - Avoid using deprecated security API, though this is marked OBFinishPorting.
    - Rewrote the OBDEPRECATED_METHODS macro to be OBDEPRECATED_METHOD, making it
      work again with the latest clang builds.
    - Avoid using deprecated API on 10.7.
    - OAInternetConfig no longer uses Internet Config, but just Launch Services.
    - Deprecate our -currentModifierFlags and -checkForModifierFlags: methods,
      prefering those now on NSEvent and new category methods thereon.
    - Fixed several bugs in OATargetSelection and do a first pass at incorporating
    - OAController now explicitly conforms to NSApplicationDelegate and provides
      OFController shims for the NSApp delegate calls.
    - Added OATinyPopUpButton from OmniPlan.
    - Fixed various implicit 64->32 cast warnings and precision issues in
    - Changed calculations in OACalendarView and names of variables so that doing
      the date computations of where you clicked and what week is selected make
      a lot more sense and aren't buggy.
    - Avoid crash OAColorWell when attempting to remove an unfound object.
    - Fixed a bug where if you did not have a date set when popping up a
      OADatePicker, you were unable to set the date to the current date value
      in the date picker.
    - Add support for LZMA compression.
    - Added +[OFVersionNumber isOperatingSystemiOS50OrLater].
    - Removed OFFileWrapper; with iOS 5 we now always have NSFileWrapper.
    - Ported some security related code away from the Security APIs deprecated in
      10.7 to the new ones.
    - Added block support to OFFilterProcess.
    - Added NSArray(OFExtensions) -anyObjectSatisfiesPredicate:, taking a block.
    - Added NSSet(OFExtensions) -select:.
    - Added debug helper -[NSFileManager(OFExtensions) logPropertiesOfTreeAtURL:].
      Useful for logging the contents of an iCloud container on the device, since
      you can't go poking around directly.
    - Added +[CALayer(OQExtensions) mediaTimingFunctionForUIViewAnimationCurve:].
    - Add support for more layer properties when rendering trees as vectors.
    - Add OQLargestCenteredIntegralRectInRectWithAspectRatioAsSize().
    - Turn on autocalculation of key view loops in the inspector windows.
      Previously off since it didn't work very well.
    - OBFinishPorting deprecated -[NSPortCoder connection] call.
    - Treat trial licenses the same way we treated expiring licenses.
    - Hide the price column if there's nothing in it.
    - Some preliminary work to support enclosureless items again.
    - We no longer start adjusting UI positions and selections before objects have
      been loaded from the nib, losing those adjustments.
    - Avoid using a fixed-size buffer for OpenCL string queries.
    - Convert to @property syntax.
    - Fixed clang-sa warnings from newer Xcode builds.
    - Removed NS_BLOCKS_AVAILABLE guards since all our platforms now have them.
    - Trickle down of API changes from frameworks needed to avoid
      deprecated API in 10.7
    tjw committed Oct 12, 2011
  2. @tjw

    Turn off optimization for debug builds; we always did locally anyway.

    Our automated build system will help find unused variables since it builds in Release mode.
    tjw committed Oct 12, 2011
  3. @tjw

    Add a comment about -Wno-sign-conversion. We still get too many false…

    … positives, but it is something to work toward.
    Add commented out settings for local clang builds.
    tjw committed Oct 12, 2011
  4. @tjw

    Touched by Xcode 4.2.

    tjw committed Oct 12, 2011
Commits on Oct 7, 2011
  1. @tjw

    Be more explicit about targets for items in the inspector since other…

    …wise nil targets on touched controls in our inspectors can get passed up the first responder chain instead of up the responder chain starting at the touched view.
    tjw committed Oct 7, 2011
Commits on Sep 23, 2011
  1. @tjw

    Patch for <omnigroup#35>

    Don't try to add a nil fontDescriptor to a set in OUICollectFontSelection().
    tjw committed Sep 23, 2011
Commits on Jul 30, 2011
  1. @tjw
Commits on Jul 20, 2011
  1. @tjw

    Merged changes to support Mac OS X 10.7, new features/fixes for OmniO…

    …utliner for iPad and more. (152889)
    	- Enable GCC_WARN_ABOUT_MISSING_PROTOTYPES; fix resulting warnings.
    	- Require iOS 4.2
    	- Added an OmniFrameworsk Xcode 4 workspace
    	- Fixed clang-sa warnings in some of the less used frameworks
    	- Turn off framework support for OS services deprecated in 10.7
    	  (when building vs the 10.7 SDK)
    	- Fix some old direct ivar access to Apple superclasses noticed in
    	  Mac App Store builds, now that OmniPlan 2 is 64-bit
    	- Fix a CF/NS reference casts caught by newer dev tools
    	- Fix a few more leaks noticed by newer dev tools
    	- Fix a few calls to deprecated methods noticed by newer dev tools
    	- Fix a few bad implicit casts noticed by newer dev tools
    	- Add support for recording the text selection affinity in
    	  OUEFTextPosition and using that in cursor motion operations to properly
    	  select the beginning of a line or end of the previous line
    	- Cleaned up use of context menus
    	- Removed deprecated support for showing inspectors via the context menu
    	- Add ASCII-art debug log helpers for tracking selection
    	- Fixed positioning of Japanese text correction widgets
    	- Fixed crash with Japanese correction widget usage
    	- Added support for querying the first rect for a range in OUITextLayout
    	- Fixed caret positioning in an empty text storage with non-left text
    	- Fixed positioning of caret when tapping after the end of a line
    	- Add support for filling the selection rect of a range of text (useful
    	  for things like highlighting find matches)
    	- Added support for the text delegate adding extra context menu items
    	- Add support for displaying super/subscript; editing/selection will
    	  require more work
    	- Add support for import/export of super/subscript via RTF
    	- Add support for left/right views and redid navigation arrow support in
    	  terms of that
    	- Add support for sideways field editor scrolling
    	- Add support for specific text alignment in OUIInspectorTextWell
    	- Add support for UIControlEventEditingDidBegin,
    	  UIControlEventEditingChanged and UIControlEventEditingDidEndOnExit
    	- Use OFSaveType in the file writing API. This will change again soon...
    	- Add a -willAutosave method for delayed updates in the document, along
    	  with OUIDocumentViewController -documentWillAutosave
    	- Avoid closing the keyboard when saving or deactivating (in case the
    	  user is switching apps to copy some content they want to then paste
    	  into the field editor)
    	- Show fractional font sizes when used
    	- Add support for hiding context menus while scrolling
    	- Added some hacks for determining if there are suitable consumers of
    	  file type with UIDocumentInteractionController
        - Added support for doing filtered exports when emailing documents or
          sending to other apps with UIDIC
    	- Added support for localizing the titles of sample documents
    	- Do exports in a background thread, with a progress indicator
    	- OUIOverlayView now uses OUITextLayout to draw labels
    	- Cleaned up and refactored the document import/export related classes
    	- Updated to use new OUIDocument API for file writing.
    	- Add a sample of RTL text in one of the sample documents.
     	- Append 'Mac App Store' to feedback email
    	- Add our OAFindPattern stuff to the iOS library
    	- Default to icon-mode for toolbars, like Lion.
    	- Add OAAppKitVersionNumber10_7
    	- Avoid animating split view changes when the window isn't visible
    	- Use a formal protocol for OATableViewColumnConfigurationDataSource,
    	- Fixed window level for progress window
    	- Fixed OAFontDescriptor caching (for iOS, where CTFontRef lookup is
    	  horrifyingly slow).
    	- Support Lion's slightly more optimized objc_msgSend_stret in OBPatchTrap
    	- Perform a few sanity checks on the main bundle's Info.plist.
    	- Fixed bug which would cause a period to be appended to exported
    	  filenames that did not contain extensions (ex. HTML export in
    	  OmniOutliner for iPad)
    	- Avoid displaying inspectors on launch before window restoration on Lion
    	  since this confuses the menu bar state.
    	- Use OQComputeEllipseParameters() to handle the SVG arc operators.
    	- A function to perform the surprisingly difficult conversion from
    	  SVG-style arc specifications to Quartz's PostScript/PDF-style paths.
        - Added some more smart(?) layout code to keep the downgrade warning text
    	  from getting clipped (OBS #7446).
    	- Fixing the MapQuest URL (again).
    	- Deal with formal NSURLDownloadDelegate protocol.
    tjw committed Jul 20, 2011
  2. @tjw
  3. @tjw

    Mark function static.

    tjw committed Jul 20, 2011
  4. @tjw

    Use /usr/bin/ruby instead of /usr/bin/env ruby, in case the user has …

    …installed some other version (which may not have RubyCocoa).
    tjw committed Jul 20, 2011
Commits on Jun 22, 2011
  1. @kc-omni
  2. @kc-omni

    [r150790] Renamed newDocumentButton property to addDocumentButton to …

    …avoid Xcode 4.2 warning about this disobeying the Cocoa reference counting convention.
    kc-omni committed Jun 22, 2011
  3. @kc-omni
  4. @kc-omni

    [r150720] Fixed an Xcode 4.2 warning by declaring that -makeViewContr…

    returns an object which conforms to the OUIDocumentViewController
    protocol (as well as being a UIViewController subclass).
    (Earlier versions of the compiler didn't catch this because we were
    immediately calling -retain on it.)
    kc-omni committed Jun 22, 2011