Community follow-ups: dedup font files from overlapping folders (#665); empty-Timeline drop also accepts compositions, rustfmt (#662)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QiAJeFttZp83Fh7YuzAR5f
This commit is contained in:
parent
0b91b465df
commit
9d689b1a61
|
|
@ -126,6 +126,7 @@ impl FontSource for DirectorySource {
|
|||
walk(d, 0, &mut files);
|
||||
}
|
||||
files.sort();
|
||||
files.dedup();
|
||||
let mut out = Vec::new();
|
||||
for f in files {
|
||||
let Ok(mut file) = std::fs::File::open(&f) else { continue };
|
||||
|
|
|
|||
|
|
@ -1217,10 +1217,8 @@ pub fn show(app: &mut EffectcraftApp, ui: &mut egui::Ui, rect: Rect) {
|
|||
.map(ItemId)
|
||||
.filter(|id| {
|
||||
app.session.project.item(*id).is_some_and(|item| match &item.kind {
|
||||
effectcraft_engine::project::ItemKind::Footage(footage) => {
|
||||
footage.kind != effectcraft_engine::project::FootageKind::Data
|
||||
}
|
||||
effectcraft_engine::project::ItemKind::Solid(_) => true,
|
||||
effectcraft_engine::project::ItemKind::Footage(footage) => footage.kind != effectcraft_engine::project::FootageKind::Data,
|
||||
effectcraft_engine::project::ItemKind::Solid(_) | effectcraft_engine::project::ItemKind::Comp(_) => true,
|
||||
_ => false,
|
||||
})
|
||||
})
|
||||
|
|
|
|||
|
|
@ -215,10 +215,10 @@ fn project_items_dropped_on_new_comp_make_a_composition() {
|
|||
#[test]
|
||||
fn project_footage_dropped_on_empty_timeline_creates_first_comp() {
|
||||
let mut s = Session::default();
|
||||
let footage = s.execute(
|
||||
"file.importPlaceholder",
|
||||
json!({"name": "Landscape.png", "width": 640, "height": 360, "frameRate": 24, "duration": 5}),
|
||||
).unwrap()["item"].as_u64().unwrap();
|
||||
let footage =
|
||||
s.execute("file.importPlaceholder", json!({"name": "Landscape.png", "width": 640, "height": 360, "frameRate": 24, "duration": 5})).unwrap()["item"]
|
||||
.as_u64()
|
||||
.unwrap();
|
||||
let mut h = Harness::builder().with_size(vec2(1600.0, 1000.0)).build_eframe(|_| EffectcraftApp::new(s));
|
||||
h.run_steps(3);
|
||||
assert!(h.state().session.active_comp().is_none());
|
||||
|
|
@ -241,10 +241,7 @@ fn multiple_selected_footage_dropped_on_empty_timeline_asks_how_to_create_comps(
|
|||
let mut s = Session::default();
|
||||
let first = s.execute("file.importPlaceholder", json!({"name": "First.png", "width": 160, "height": 90})).unwrap()["item"].as_u64().unwrap();
|
||||
let second = s.execute("file.importPlaceholder", json!({"name": "Second.png", "width": 300, "height": 200})).unwrap()["item"].as_u64().unwrap();
|
||||
s.state.project_selection = vec![
|
||||
effectcraft_engine::project::ItemId(first),
|
||||
effectcraft_engine::project::ItemId(second),
|
||||
];
|
||||
s.state.project_selection = vec![effectcraft_engine::project::ItemId(first), effectcraft_engine::project::ItemId(second)];
|
||||
let mut h = Harness::builder().with_size(vec2(1600.0, 1000.0)).build_eframe(|_| EffectcraftApp::new(s));
|
||||
h.run_steps(3);
|
||||
let from = rect(&h, &format!("project.item.{first}.name")).center();
|
||||
|
|
|
|||
Loading…
Reference in New Issue