mirror of
https://github.com/storytold/effectcraft.git
synced 2026-10-14 19:27:05 -04:00
macOS: projects open from Finder; .pcraft is PhotoCraft's again
The app bundle exported ai.storyteller.effectcraft.document with the
`.pcraft` extension, PhotoCraft's document format. Installing EffectCraft
took `.pcraft` over, and since EffectCraft declared no document types,
neither app was offered for PhotoCraft documents in Finder. EffectCraft's
own projects (.ecproj, .ecprojx) had no file type at all.
- Info.plist: the exported type now tags .ecproj and .ecprojx ("EffectCraft
Project", conforming to public.data and public.content rather than
public.image), and CFBundleDocumentTypes makes EffectCraft their owner.
- Finder double-click, Open With, Dock drops and `open -a EffectCraft
x.ecproj` send a kAEOpenDocuments Apple event that winit 0.30 doesn't
handle. Register it with the audited fmv-macos-events crate that
PhotoCraft and PdfCraft use (it keeps the unsafe Objective-C interop out
of this workspace). Opened paths go through the dropped-file handling, so
a project opens after the unsaved-changes prompt and media is imported. A
quit event closes the window.
- The event that launches the app arrives before the UI draws: the first
frames skip the panels until the fonts are installed, which dropped it.
The paths wait for EffectcraftApp::is_ready().
Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
813c7c4650
commit
f041aa7782
6 files changed
+141
-4
No files matched your search
@@ -45,25 +45,44 @@
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>Copyright © the EffectCraft authors. MIT OR Apache-2.0.</string>
|
||||
|
||||
<!-- Effectcraft's own format. -->
|
||||
<!-- Projects open from Finder (double-click, Open With, Dock); src/apple_events.rs. -->
|
||||
<key>CFBundleDocumentTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>EffectCraft Project</string>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Editor</string>
|
||||
<key>LSHandlerRank</key>
|
||||
<string>Owner</string>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>EffectCraft</string>
|
||||
<key>LSItemContentTypes</key>
|
||||
<array><string>ai.storyteller.effectcraft.document</string></array>
|
||||
</dict>
|
||||
</array>
|
||||
<!-- EffectCraft's own format: the project (.ecproj) and its XML copy (.ecprojx). -->
|
||||
<key>UTExportedTypeDeclarations</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>UTTypeIdentifier</key>
|
||||
<string>ai.storyteller.effectcraft.document</string>
|
||||
<key>UTTypeDescription</key>
|
||||
<string>EffectCraft Document</string>
|
||||
<string>EffectCraft Project</string>
|
||||
<key>UTTypeConformsTo</key>
|
||||
<array>
|
||||
<string>public.data</string>
|
||||
<string>public.image</string>
|
||||
<string>public.content</string>
|
||||
</array>
|
||||
<key>UTTypeIconFile</key>
|
||||
<string>EffectCraft</string>
|
||||
<key>UTTypeTagSpecification</key>
|
||||
<dict>
|
||||
<key>public.filename-extension</key>
|
||||
<array><string>pcraft</string></array>
|
||||
<array>
|
||||
<string>ecproj</string>
|
||||
<string>ecprojx</string>
|
||||
</array>
|
||||
<key>public.mime-type</key>
|
||||
<array><string>application/x-effectcraft</string></array>
|
||||
</dict>
|
||||
|
||||
Reference in new issue
Block a user