Edit plate was not working, and new plate by dbl click

This commit is contained in:
Emilia Allison 2025-11-22 23:07:44 -05:00
parent b171f39eaa
commit 810c19d7df
No known key found for this signature in database
GPG Key ID: FEC1CE6360EEC9A8
1 changed files with 31 additions and 5 deletions

View File

@ -44,12 +44,14 @@ fn tree_label(
} }
ui.painter().galley(text_pos, galley, visuals.text_color()); ui.painter().galley(text_pos, galley, visuals.text_color());
if response.clicked() { // Important to process double click first, since a double click is also a normal click
return (Some(uuid), false);
}
if response.double_clicked() { if response.double_clicked() {
return (None, true); return (None, true);
} }
if response.clicked() {
return (Some(uuid), false);
}
(None, false) (None, false)
} }
@ -61,7 +63,19 @@ pub fn tree(
) { ) {
// Add all source plates // Add all source plates
ui.vertical(|ui| { ui.vertical(|ui| {
ui.heading("Source Plates"); let src_heading_res = ui.add(
egui::Label::new(egui::RichText::new("Source Plates").heading())
.selectable(false)
.sense(egui::Sense::click()),
);
// Open new plate modal if double clicked
if src_heading_res.double_clicked() {
crate::modals::open_new_plate_modal_with_default_type(
modal_state,
plate_tool_lib::plate::PlateType::Source,
);
}
let mut new_uuid: Option<plate_tool_lib::uuid::Uuid> = None; let mut new_uuid: Option<plate_tool_lib::uuid::Uuid> = None;
for (name, uuid) in ms.source_plates.iter().map(|x| (&x.name, x.get_uuid())) { for (name, uuid) in ms.source_plates.iter().map(|x| (&x.name, x.get_uuid())) {
let (potential_new_uuid, dbl_clicked) = tree_label( let (potential_new_uuid, dbl_clicked) = tree_label(
@ -97,7 +111,19 @@ pub fn tree(
// Add all destination plates // Add all destination plates
ui.vertical(|ui| { ui.vertical(|ui| {
ui.heading("Destination Plates"); let dest_heading_res = ui.add(
egui::Label::new(egui::RichText::new("Destination Plates").heading())
.selectable(false)
.sense(egui::Sense::click()),
);
// Open new plate modal if double clicked
if dest_heading_res.double_clicked() {
crate::modals::open_new_plate_modal_with_default_type(
modal_state,
plate_tool_lib::plate::PlateType::Destination,
);
}
let mut new_uuid: Option<plate_tool_lib::uuid::Uuid> = None; let mut new_uuid: Option<plate_tool_lib::uuid::Uuid> = None;
for (name, uuid) in ms for (name, uuid) in ms
.destination_plates .destination_plates