diff --git a/contributors/people.toml b/contributors/people.toml index 613f7c0e..1124c7f2 100644 --- a/contributors/people.toml +++ b/contributors/people.toml @@ -22,6 +22,9 @@ real_name = "Brandon Thomas" display_name = "Brandon Thomas" sync_github_name = false +[people.rangoDJ] +sync_github_name = true + [people.Tru10] display_name = "by Truitt" sync_github_name = false diff --git a/crates/ui-egui/src/i18n/de.tsv b/crates/ui-egui/src/i18n/de.tsv index 2e6082ae..fb193f23 100644 --- a/crates/ui-egui/src/i18n/de.tsv +++ b/crates/ui-egui/src/i18n/de.tsv @@ -108,6 +108,7 @@ Close All Alle schließen Closed Geschlossen Coincident Koinzident + Collapse Palettes Paletten einklappen Collapse Tool Sets Werkzeuggruppen einklappen Collinear Kollinear Color Farbe diff --git a/crates/ui-egui/src/i18n/es.tsv b/crates/ui-egui/src/i18n/es.tsv index 095c9835..b53fe85c 100644 --- a/crates/ui-egui/src/i18n/es.tsv +++ b/crates/ui-egui/src/i18n/es.tsv @@ -108,6 +108,7 @@ Close All Cerrar todo Closed Cerrada Coincident Coincidente + Collapse Palettes Contraer paletas Collapse Tool Sets Contraer herramientas de dibujo Collinear Colineal Color Color diff --git a/crates/ui-egui/src/i18n/pt_br.tsv b/crates/ui-egui/src/i18n/pt_br.tsv index 183e7ed0..5d925603 100644 --- a/crates/ui-egui/src/i18n/pt_br.tsv +++ b/crates/ui-egui/src/i18n/pt_br.tsv @@ -108,6 +108,7 @@ Close All Fechar tudo Closed Fechada Coincident Coincidente + Collapse Palettes Recolher paletas Collapse Tool Sets Recolher conjuntos de ferramentas Collinear Colinear Color Cor diff --git a/crates/ui-egui/src/i18n/uk.tsv b/crates/ui-egui/src/i18n/uk.tsv index b86e4fe3..7af9cb83 100644 --- a/crates/ui-egui/src/i18n/uk.tsv +++ b/crates/ui-egui/src/i18n/uk.tsv @@ -144,6 +144,7 @@ Closed Замкнений Close Comparison Закрити порівняння Coincident Збіг + Collapse Palettes Згорнути палітри Collapse Tool Sets Згорнути набори інструментів Collinear Колінеарність Color Колір diff --git a/crates/ui-egui/src/palettes.rs b/crates/ui-egui/src/palettes.rs index 0adbb37a..26d929f5 100644 --- a/crates/ui-egui/src/palettes.rs +++ b/crates/ui-egui/src/palettes.rs @@ -274,6 +274,9 @@ fn swatch(p: &egui::Painter, r: Rect, c: Color) { } pub fn right_palettes(app: &mut CadApp, ui: &mut egui::Ui) { + if !app.ui.show_palettes { + return; + } let t = Tokens::get(); egui::Panel::right("cc_palettes").exact_size(300.0).resizable(false).frame(egui::Frame::NONE.fill(t.panel)).show(ui, |ui| { let r = ui.max_rect(); @@ -285,7 +288,13 @@ pub fn right_palettes(app: &mut CadApp, ui: &mut egui::Ui) { let br = Rect::from_center_size(pos2(r.left() + 30.0 + i as f32 * 52.0, r.top() + tab_h / 2.0), vec2(20.0, 20.0)); icons::paint(&p, br, *icon, false); } - icons::paint(&p, Rect::from_center_size(pos2(r.right() - 14.0, r.top() + tab_h / 2.0), vec2(14.0, 14.0)), Icon::ChevronRight, false); + let cr = Rect::from_center_size(pos2(r.right() - 14.0, r.top() + tab_h / 2.0), vec2(14.0, 14.0)); + let cresp = ui.interact(cr, ui.id().with("palettes_collapse"), Sense::click()); + icons::paint(&p, cr, Icon::ChevronRight, false); + icons::describe_control(ui, &cresp, "Collapse Palettes", None, false); + if cresp.on_hover_text(crate::tl!("Collapse Palettes")).clicked() { + app.ui.show_palettes = false; + } let body = Rect::from_min_max(pos2(r.left(), r.top() + tab_h), r.max); ui.scope_builder(egui::UiBuilder::new().max_rect(body), |ui| { egui::ScrollArea::vertical().auto_shrink([false, false]).show(ui, |ui| { diff --git a/crates/ui-egui/tests/shared_controls.rs b/crates/ui-egui/tests/shared_controls.rs index 4874d022..2c6bc2ab 100644 --- a/crates/ui-egui/tests/shared_controls.rs +++ b/crates/ui-egui/tests/shared_controls.rs @@ -114,6 +114,42 @@ fn drafting_palette_pointer_and_keyboard_start_the_same_commands() { } } +#[test] +fn right_palettes_collapse_arrow_hides_menu() { + let mut h = Harness::builder().with_size(vec2(1600.0, 1000.0)).build_ui_state( + |ui, app: &mut CadApp| { + app.logic(&ui.ctx().clone()); + cadcraft_ui_egui::palettes::right_palettes(app, ui); + }, + app(), + ); + h.run_steps(5); + assert!(h.state().ui.show_palettes); + + // Collapsing palettes on the right hides palettes. + h.get_by_label("Collapse Palettes").click(); + h.run_steps(3); + assert!(!h.state().ui.show_palettes); +} + +#[test] +fn toolsets_collapse_arrow_hides_menu() { + let mut h = Harness::builder().with_size(vec2(1600.0, 1000.0)).build_ui_state( + |ui, app: &mut CadApp| { + app.logic(&ui.ctx().clone()); + cadcraft_ui_egui::palettes::toolsets(app, ui); + }, + app(), + ); + h.run_steps(5); + assert!(h.state().ui.show_toolsets); + + // Collapsing toolsets on the left hides toolsets. + h.get_by_label("Collapse Tool Sets").click(); + h.run_steps(3); + assert!(!h.state().ui.show_toolsets); +} + #[test] fn shared_controls_visuals() { let Some(directory) = std::env::var_os("CRAFT_UI_SUITE_SHOTS").map(std::path::PathBuf::from) else { return };