OmniFocus for iPhone 1.1.2 now available

posted by kaebot on 11.20.08 @ 1:27 pm

It is true what many of you have heard: Our buddy, OmniFocus for iPhone, has an update. In this update, we corrected a few things including:

  • A bug in which a blank screen could appear after creating a new item
  • A bug in which OmniFocus could become unresponsive after converting an action to a project
  • A new Settings icon to avoid potential confusion with Apple’s Settings application
  • Saved Zion from the machines

Okay, maybe we’re still working on that last one, but you can find a full list of changes, or check out the application in iTunes, here. (This link opens in iTunes.)

Thanks to everyone for their help!

OmniPlan 1.6.1 Final Released!

posted by Skwirl on 11.19.08 @ 5:43 pm

Hot on the heels of OmniPlan 1.6, it’s OmniPlan 1.6.1!

As always, we’d like to thank everyone who provided crash reports, bug reports, and feedback over the last couple of months. The highlights of this update include:

  • Fixed a bug where copying tasks within a project could create duplicate resources, eventually degrading performance.
  • Fixed bugs in leveling, AppleScript accessors, file loading, and exports. Click here for all the gritty details.
  • As always, please let us know if you have any questions or comments. You can contact us directly via our support page or by using the Send Feedback feature in your copy of OmniPlan.

    OmniPlan 1.6.1 is a free and highly recommended update to all registered users of OmniPlan, so fire up your built-in software updater or head to our website and download OmniPlan 1.6.1 today!

    OmniFocus 1.5 is Final!

    posted by kaebot on 11.19.08 @ 5:21 pm

    Dear Diary,

    What a long strange trip it’s been. I, OmniFocus 1.5, after months of hard work from my users, engineers, ninjas, and test pilots, have finally gone final. I’m available for download on the OmniFocus page!

    Today was great.

    • I synchronized to another copy of OmniFocus and OmniFocus for iPhone.
    • I changed my Styles with my cool, new Style Preference Pane.
    • I brushed up on my Dutch, French, German, Italian, Japanese, Spanish, and Simplified Chinese.
    • And, I showed off some of my slick bug fixes and interface polish.

    You can find a detailed list here, uh, …Diary.

    I am so grateful to all my users who helped out along the way.

    Thanks for your support!

    Love, your BFF,

    OmniFocus

    OmniOutliner 3.7.2 released

    posted by dmo on 11.19.08 @ 5:09 pm

    The final version of OmniOutliner 3.7.2 is now available. There’s only one change in this version and that’s to undo a change we made in 3.7.1 that for currently unknown reasons rendered some people unable to drag rows. Sorry if you were one of them!

    You can download 3.7.2 here and view the release notes. And please feel free to contact us if you have any problems by using the Help -> Send Feedback option in the app or by sending an email to omnioutliner@omnigroup.com.

    OmniGraffle 5.1 is now available

    posted by Joel on 11.19.08 @ 4:58 pm

    At last, OmniGraffle 5.1 and OmniGraffle Professional 5.1 are out of beta testing, and available for download from the website.

    No changes have been made since the release candidate, however for those of you who have not been beta testing, here’s an overview of what’s gone into the 5.1 release:

    - Improved Visio compatibility adding support for the Enhanced MetaFile graphics format along with many other fixes and changes.

    - Improved user interface and focus for the canvases and outline sidebars.

    - Added new adjustable arc/wedge and star shapes.

    - Addressed stability issues.

    - Reset the trial period.

    - Many bug fixes have been addressed in this release. You can see the full list of changes at our Historical Release Notes page.

     

    The download page awaits, and enjoy!

    Animating CALayer content

    posted by Tim on 11.14.08 @ 10:47 am

    Out of the box, CALayer supports many animatable properties where a change will automatically create a CAAnimation for that property. But, if you look at the list of properties, it is clear that they are all of the form “stuff that OpenGL does while compositing” and have nothing to do with the inner texture representing your content. You are entirely responsible for telling CoreAnimation when your content has changed.

    Recently I wanted to write a layer that had its content animate, but as far as I could determine CALayer doesn’t support this out of the box, though it is really pretty close. If you add an @dynamic property to a CALayer subclass and set it, your layer will be sent -actionForKey: and the returned animation will be passed to your -addAnimation:forKey:.

    The problem is that CALayer doesn’t know that this change means it needs to update your contents property too, so the animation will happen but no display change will happen.

    The API on CALayer really isn’t sufficient for this task, so it isn’t too surprising it isn’t supported. Since CALayer is a generic KVC container you can squirrel away random keys/value pairs in it and use them for whatever purposes you want. But it has no way of knowing that a particular property change should provoke an update to the content, and updating the content unnecessarily would seriously hurt performance.

    I’ve whipped up some sample code with a superclass that shows one approach to handling this.

    The sample subclass looks like:

    @interface WaveLayer : ContentAnimatingLayer
    @property CGFloat phase, frequency, amplitude;
    @end
    
    @implementation WaveLayer
    @dynamic phase, frequency, amplitude;
    
    + (NSSet *)keyPathsForValuesAffectingContent;
    {
        static NSSet *keys = nil;
        if (!keys)
            keys = [[NSSet alloc] initWithObjects:@"phase",
                       @"frequency", @"amplitude", nil];
        return keys;
    }
    
    - (void)drawInContext:(CGContextRef)ctx;
    {
        … draw a sine wave …
    }
    @end

     

    The ContentAnimatingLayer superclass provides some bookkeeping and basic support for updating the content when the content-affecting properties are changed. First, it adds support for -actionFor<Key>; like many other key-based Cocoa protocols (Radar #6372335). On top of this, it adds support for determining which properties are content-affecting with +keyPathsForValuesAffectingContent and -isContentAnimation:. Active content-affecting animations are then tracked and an update timer is fired when there is at least one such animation.

    This makes it as easy as I’d hoped it would be to write content animating layers; hopefully you’ll find this useful too! I’ve asked Apple to add this to CALayer in the future. If you’d like it too, you can reference my Radar #6372372.

    The sample code is just that, my first cut at a sample. Some possible issues/improvements:

    • The -actionFor<Key> support may or may not be fast enough (or really not even necessary).
    • Instead of following the class-based KVO customization pattern, CALayers are often customized by the delegate. So, the NSSet-returning method should maybe be an instance method or maybe the -isContentAnimation: should be split up and call a new -layer:isContentAnimatingKey: delegate method.
    • It would be nicer to tie into the normal CoreAnimation timing mechanism instead of creating a per-instance NSTimer. Even without that, it might be a bit more efficient to have a single animation timer for all instances of ContentAnimatingLayer. Also, right now the timer doesn’t get registered for the event tracking runloop mode, though it maybe should.
    • This approach assumes that a change to a content-affecting key requires the entire content be redrawn. This may or may not be the case for any particular layer. A change to a content-animating property might want to specify an NSRect-based animation that describes the dirty area.

    OmniOutliner 3.7.2 beta 1 now available

    posted by dmo on 11.13.08 @ 4:34 pm

    Do you have that sudden dragging feeling, or lack thereof? Try as you might, you just can’t seem to move your rows around. Well not to worry, the answer is here! OmniOutliner 3.7.2 beta 1 to the rescue!

    We made a change in 3.7.1 beta 1 to fix a potential hanger when handling certain mouse events. Unfortunately it caused a few people to be unable to drag rows anymore. Since we haven’t been able to determine why this change has caused this, we figured it would be best to just remove that change for the time being. Nothing else has changed in this release so if you’re not having any problems with 3.7.1, you can simply ignore the 3.7.2 release.

    Beta download page is here and the release note page here. And as always, feel free to contact us at omnioutliner@omnigroup.com or using the Help -> Send Feedback option in the app.

    OmniGraffle 5.1 release candidate 1 is now available

    posted by Joel on 11.12.08 @ 2:56 pm

    Just a few nits and picks at some things in the online help index as well as some small fixes to searching for stencils on Graffletopia, and we’ve landed squarely at a release candidate for OmniGraffle and OmniGraffle Professional 5.1.

    Of note is the fact that due to some strings changes, localizations are not fully completed, those are in the process of being mended, and we’ve also reset the trial period so if you don’t currently have a license key for version 5 you can again run it sans license for the 14 day trial period.

    Still found at the beta page, and as always, release notes are in the usual spot.

    OmniOutliner 3.7.1 final released

    posted by dmo on 11.05.08 @ 4:05 pm

    OmniOutliner 3.7.1 is now available! While it doesn’t add any new features, it does fix a regression we had in 3.7 that caused multiple OmniFocus links to be merged into a single link when pasted to OmniOutliner.

    It also contains a significant upgrade to the HTML/DHTML exporters and as a result, the QuickLook previews as well. Some of the more notable changes are color transparency support in DHTML/QuickLook, gutter color support, adjusting widths when row labels are used to keep correct indentation, and tweaks to remove background color artifacts.

    Please note that the HTML (Dynamic) exports will not render transparent colors in Internet Explorer and other browsers that don’t support the rgba CSS attribute. OmniWeb, Safari, and Firefox can handle this. So for those that use transparent colors and want to share your files with IE users, you can download the OmniOutliner Exports Plugin pack which now has a version of the DHTML exporter that doesn’t support transparency. All colors will instead be exported as fully opaque. For OmniOutliner standard users, the included HTML exporter does not support transparency to provide the widest compatibility.

    You can read the much more complete list of changes in the release notes or go and download the new version. As always, if you have any questions or run into any problems, please contact us by using the Help -> Send Feedback option in the app or send an email to omnioutliner@omnigroup.com and we’ll be happy to help!

    OmniPlan 1.6.1 rc 2 Released!

    posted by Skwirl on 11.04.08 @ 3:47 pm

    Good news for all you brave beta testers out there, OmniPlan 1.6.1 rc 2 has been released!

    In this version, we fixed a bug where some documents could fail to load on PPC Macs, as well as a case where the previous 1.6 fix for resource over-allocation problems during leveling could result in leveling tasks out of priority order. Also, we addressed an issue where AppleScript access to assignments and to style values weren’t working correctly.

    Please keep in mind that this version is still in development so feedback is encouraged and we apologize if it breaks your computer, corrupts your files, or ruins your weekend.

    As always, please let us know if you have any questions or comments. You can contact us directly via our support page or by using the Send Feedback feature in your copy of OmniPlan.

    If you’re ready to give this rc a try, you can download it here!