Skip to content

Add duplicate project from home screen context menu#67

Open
nedtheoutlier wants to merge 1 commit into
palmier-io:mainfrom
nedtheoutlier:feat/duplicate-project
Open

Add duplicate project from home screen context menu#67
nedtheoutlier wants to merge 1 commit into
palmier-io:mainfrom
nedtheoutlier:feat/duplicate-project

Conversation

@nedtheoutlier

Copy link
Copy Markdown

Summary

  • Adds a duplicateProject(at:) method to AppState that shows a save panel pre-filled with the original project name + " Copy", copies the .palmier bundle to the chosen location, registers it, and opens it immediately
  • Adds onDuplicate callback to ProjectCard and a "Duplicate" button in the right-click context menu (between "Open" and "Reveal in Finder")
  • Wires the callback through HomeView

Why

There's currently no way to duplicate a project from within the app. This is useful for using a finished project as a template — keeping the timeline structure and clip timing while swapping in new footage.

Test plan

  • Right-click a project card on the home screen → "Duplicate" appears in the context menu
  • Clicking it opens a save panel with "[Project Name] Copy" pre-filled
  • Confirming creates a copy and opens it in the editor
  • Cancelling the panel does nothing
  • Original project is unaffected

🤖 Generated with Claude Code

Right-clicking a project card now shows a "Duplicate" option that opens
a save panel pre-filled with the original name + " Copy", copies the
.palmier bundle, registers the copy, and opens it immediately.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
TimLai666 added a commit to TimLai666/fronda that referenced this pull request Jul 10, 2026
…r-io#169 palmier-io#67 palmier-io#164)

palmier-io#45 arrow/line shapes: compositor rasterize_line_or_arrow — endpoints
normalized 0..1 of the box (documented assumption; shapes are Rust-native,
no Swift rasterizer), horizontal-centre default, Arrow barbs scaled to
stroke width. 3 golden tests.

palmier-io#65 variable-font wght: ab_glyph 0.2.32 supports the wght axis
(VariableFont::set_variation) — applied in render_text (no-op on static
faces). Wired the bundled variable families (Inter/Geist/GeistMono/DMSans/
Caveat/PlayfairDisplay/SpaceGrotesk) into font_for so the axis is reachable,
matching Swift BundledFonts. 2 tests.

palmier-io#169 viewer guides: completed the Guides dropdown UI over the existing
palmier-io#167 overlay/state — guide_menu_rows + ⊞ button toggle + toggle_guide,
mutually exclusive with the settings menus. Pure-function test.

palmier-io#67 project-card Duplicate: card menu entry (accessible-gated) → host-side
plan_duplicate + recursive package copy → "(Copy).palmier" + recents
register + Home cards refresh. Menu + fs-copy tests. Hub save_now() absent
(data slice palmier-io#211) — Home-transition autosave deferred.

palmier-io#164 shortcut parity: added [ / ] trim aliases and Shift+Backspace ripple
delete (menu.rs route table 44->47, global_shortcuts !input bindings,
app_root RippleDeleteSelection handler). V/C/A/Shift+A/Esc deferred — no
tool-mode/deselect concept yet (gap list in tasks.md).

Gates (exit 0): render_core lib 263, app_shell_gpui desktop-app lib 407,
cargo check --bin fronda.
TimLai666 added a commit to TimLai666/fronda that referenced this pull request Jul 10, 2026
palmier-io#211 autosave, palmier-io#138 HDR export, palmier-io#176 duplicate_clips (56→57), palmier-io#284 aspect
labels, palmier-io#45 arrow/line shapes, palmier-io#65 wght variable-font axis, palmier-io#169 viewer
guides, palmier-io#67 project-card duplicate, palmier-io#164 shortcut parity (+ cross-slice
autosave/aspect wiring). Deferred (feature-absent, documented): V/C/A tool
shortcuts, HDR runtime verify (no libx265 in CI).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant