AeonTimeline 2 and the Launch External App Feature

Greetings!

I’ve figured out an XML hack to make this work, but I’m wondering if there’s a better way.

Since the snapshot feature doesn’t work with non-native Scrivener files, I hide old files behind the newest. E.g. my latest timeline (.aeon2 file) is directly inside my “Plot” folder, and then older timeline files go “inside” my latest timeline file (treating the file as a folder (Scrivener’s brilliant that way)). So some of my timelines are in Aeon2 format and some are in Aeon1.

That worked for one project, but not for another. The answer was in the .scrivx file. This works:

<BinderItem ID="4688" UUID="8084D9F2-FCFF-42E6-BEBD-51334EB2EA11" Type="Other" Created="2016-09-03 06:12:50 -0600" Modified="2016-09-04 03:11:24 -0600"> <Title>Family Timelines v0.10b</Title> <MetaData> <IncludeInCompile>Yes</IncludeInCompile> <FileExtension>aeon2</FileExtension> <NotesTextSelection>0,0</NotesTextSelection> <PreferredExternalApplication>/Applications/Aeon Timeline 2.app</PreferredExternalApplication> </MetaData> <Children> <BinderItem ID="4685" UUID="D2349A78-25AD-46B5-8868-1AF25F080AF0" Type="Other" Created="2016-06-03 23:55:15 -0600" Modified="2016-06-03 23:56:10 -0600"> <Title>Family Timelines v0.10a</Title> <MetaData> <IncludeInCompile>Yes</IncludeInCompile> <FileExtension>aeonxml</FileExtension> <NotesTextSelection>0,0</NotesTextSelection> </MetaData> </BinderItem> ... </children> </BinderItem>
The key to success is the tag “PreferredExternalApplication” which isn’t needed for the older file type (I have both copies of AeonTimeline installed). Not sure why one project properly inserted this tag in the .scrivx file while the other failed, or if I’ll need to keep hacking my .scrivx files from now until eternity. If I right click the swoopy arrow in Scrivener I get a choice of one app, the right one. I assume at this point OS-X gets involved and offers the correct app based on the extension. Oh yeah, Aeon changed their icon with v2, and the proper icons (for both types) shows up in Scrivener.

Maybe this is a Scrivener bug. Meanwhile it’d be insanely great if those “PreferredExternalApplication” tags were for the old flies, and “BinderItem” records without that tag assumed the new app. What do you think I should try to accomplish this?

Thanks a million.

FOLLOWUP

This is the project that didn’t work unless I manually inserted the “PreferredExternalApplication” tag into the .scrivx file.

Thought I’d take a “snapshot” of my timeline file. Clicked the swoopy arrow in Scrivener to open it in AeonTimeline2. Duplicated the file in Aeon. Saved the file to the desktop. Renamed it. Dragged it back into Scrivener’s binder. Next I dragged the old files “into” the new files.

The top “Timeline (aeon) v0.6c” does not have the magic tag and it works (Aeon v2).
The middle “timeline (aeon) v0.6b” does have the tag and won’t work without it (Aeon v2).
The bottom “Timeline (aeon1) v0.6a” does not have the tag and never needed it (Aeon v1).

I have no idea what’s going on.

Please note that direct editing of the .scrivx file is not supported and is entirely at your own risk.

Katherine

Right… But is the behavior I’m reporting a bug?

Necessary conditions:

  • An external app that’s had a major rev which changes the format of that app’s data files. And the app’s creators have a new file type for the new format (new extension, resource fork, and icon).
  • Using that app in conjunction with Scrivener and storing that app’s data files in the Binder.

Additional conditions that may or may not be a requirement to trigger the behavior:

  • Keeping old and new versions of that app’s files in the Binder.
  • Keeping old and new versions of the app so old files can still be opened and viewed without forcing a conversion to the new format.

User behaviors which may have a bearing on the appearance of this possible bug in Scrivener:

  1. Converting the file within Scrivener:
  • Duplicate the file while it’s inside the Binder. Rename as you see fit.
  • Select the new duplicate and right click the swoopy arrow in Scrivener to get the menu, and then select “other…” (or the new app if it’s a menu option).
  • In Applications select the new rev of the app which will force a conversion to the new file format.
  • The file in the Binder should now have the new extension and resource fork, and the new icon.
  1. Converting the file external to Scrivener:
  • Left click the swoopy arrow in Scrivener to open the file in the old rev of the app.
  • Save the file to the desktop (using duplicate/save or save as). Close the app.
  • Right click on the file on the desktop and select “Open with…”
  • In Applications select the new rev of the app which will force a conversion to the new file format.
  • The file on the desktop will now have the new extension, resource fork, and icon.
  • Close the new app and drag the converted desktop file back into the Binder.

This has taken place over a span of several months using several Scrivener projects, so I don’t recall precisely what I did (internal or external conversion). There’s also the possibility that minor revs of Scrivener during this time span changed how Scrivener referred to the file when it saved it. The “PreferredExternalApplication” tag in the older project was generated by Scrivener. The newer project without the tag failed to open the correct version of the app when I left click, but when I right click the swoopy arrow the preferred app shown is the correct version.

This appears to be a dance between what Scrivener knows, and what OS-X knows, about a particular data file. And how that knowledge maps to which version of the app to open. In the case of the older project and Scrivener’s extra tag, Scrivener (apparently) ignores OS-X’s suggestion and follows the tag (which happens to be the right thing). In the newer project Scrivener has OS-X’s suggestion, but it ignores that and does the wrong thing (until I manually copied the tag). But then other entries in the binder for the newer project, which don’t have the tag, do the right thing.

OS-X knows, and without Scrivener’s “PreferredExternalApplication” Scrivener sometimes follows OS-X’s suggestion and sometimes doesn’t.

If you import both old version and new version files into a blank Scrivener project, do they both behave correctly?

Katherine

I created a fresh file using Aeon Timeline (v1) and another fresh file using Aeon Timeline 2 (v2). Same filenames, different extensions. I next created a fresh Scrivener novel project and put a new folder in the Binder named “Plot”. I then dragged and dropped both timelines into the Plot folder. Right clicking on the swoopy arrow for either file shows a default association with the proper apps (worked before). Left-clicking on the swoopy arrow for either file causes that file to be opened in the proper app (the previous failure mode). A quick read-only peek at the .scrivx file shows no monkey business or any odd tags.

Then Scrivener is working correctly.

Katherine