From 44079266cf4c2ced13b3e191ab83f18bdbd6c38d Mon Sep 17 00:00:00 2001 From: Steven Casper Date: Tue, 1 Apr 2025 13:04:54 -0400 Subject: [PATCH 1/3] Limit left-panel scrollview to the file tree Removes the redundant build button --- objdiff-gui/src/app.rs | 4 +-- objdiff-gui/src/views/config.rs | 56 ++++++++++++++++++--------------- 2 files changed, 31 insertions(+), 29 deletions(-) diff --git a/objdiff-gui/src/app.rs b/objdiff-gui/src/app.rs index 88c42e9a..a500a320 100644 --- a/objdiff-gui/src/app.rs +++ b/objdiff-gui/src/app.rs @@ -775,9 +775,7 @@ impl eframe::App for App { if side_panel_available { egui::SidePanel::left("side_panel").show_animated(ctx, *show_side_panel, |ui| { - egui::ScrollArea::both().show(ui, |ui| { - config_ui(ui, state, show_project_config, config_state, appearance); - }); + config_ui(ui, state, show_project_config, config_state, appearance); }); } diff --git a/objdiff-gui/src/views/config.rs b/objdiff-gui/src/views/config.rs index d2620623..b3bac65e 100644 --- a/objdiff-gui/src/views/config.rs +++ b/objdiff-gui/src/views/config.rs @@ -297,27 +297,36 @@ pub fn config_ui( node_open = NodeOpen::Open; } - CollapsingHeader::new(RichText::new("🗀 Objects").font(FontId { - size: appearance.ui_font.size, - family: appearance.code_font.family.clone(), - })) - .open(root_open) - .default_open(true) - .show(ui, |ui| { - let search = config_state.object_search.to_ascii_lowercase(); - ui.style_mut().wrap_mode = Some(egui::TextWrapMode::Extend); - for node in object_nodes.iter().filter_map(|node| { - filter_node( - objects, - node, - &search, - config_state.filter_diffable, - config_state.filter_incomplete, - config_state.show_hidden, - ) - }) { - display_node(ui, &mut new_selected_index, objects, &node, appearance, node_open); - } + egui::ScrollArea::both().show(ui, |ui| { + CollapsingHeader::new(RichText::new("🗀 Objects").font(FontId { + size: appearance.ui_font.size, + family: appearance.code_font.family.clone(), + })) + .open(root_open) + .default_open(true) + .show(ui, |ui| { + let search = config_state.object_search.to_ascii_lowercase(); + ui.style_mut().wrap_mode = Some(egui::TextWrapMode::Extend); + for node in object_nodes.iter().filter_map(|node| { + filter_node( + objects, + node, + &search, + config_state.filter_diffable, + config_state.filter_incomplete, + config_state.show_hidden, + ) + }) { + display_node( + ui, + &mut new_selected_index, + objects, + &node, + appearance, + node_open, + ); + } + }); }); } if new_selected_index != selected_index { @@ -327,11 +336,6 @@ pub fn config_ui( state_guard.set_selected_obj(config); } } - if state_guard.config.selected_obj.is_some() - && ui.add_enabled(!config_state.build_running, egui::Button::new("Build")).clicked() - { - config_state.queue_build = true; - } } fn display_unit( From f617a72584dfebf80389e5242a249ee30687ad5a Mon Sep 17 00:00:00 2001 From: Steven Casper Date: Tue, 1 Apr 2025 14:04:47 -0400 Subject: [PATCH 2/3] Expand ScrollArea to full side panel width --- objdiff-gui/src/views/config.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/objdiff-gui/src/views/config.rs b/objdiff-gui/src/views/config.rs index b3bac65e..8e2558fe 100644 --- a/objdiff-gui/src/views/config.rs +++ b/objdiff-gui/src/views/config.rs @@ -298,6 +298,7 @@ pub fn config_ui( } egui::ScrollArea::both().show(ui, |ui| { + ui.set_width(ui.available_width()); CollapsingHeader::new(RichText::new("🗀 Objects").font(FontId { size: appearance.ui_font.size, family: appearance.code_font.family.clone(), From 3968cba0d259103bc623ed2833b297329e56652b Mon Sep 17 00:00:00 2001 From: Luke Street Date: Tue, 1 Apr 2025 12:34:16 -0600 Subject: [PATCH 3/3] Use auto_shrink(false) instead of set_width --- objdiff-gui/src/views/config.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/objdiff-gui/src/views/config.rs b/objdiff-gui/src/views/config.rs index 8e2558fe..ceeee583 100644 --- a/objdiff-gui/src/views/config.rs +++ b/objdiff-gui/src/views/config.rs @@ -297,8 +297,7 @@ pub fn config_ui( node_open = NodeOpen::Open; } - egui::ScrollArea::both().show(ui, |ui| { - ui.set_width(ui.available_width()); + egui::ScrollArea::both().auto_shrink(false).show(ui, |ui| { CollapsingHeader::new(RichText::new("🗀 Objects").font(FontId { size: appearance.ui_font.size, family: appearance.code_font.family.clone(),