From 58bc67e02f49de4f8afd820bc3b7e74734d81d4b Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Tue, 27 Aug 2024 11:38:33 +0200 Subject: Fix compilation of `egui_extras` without `serde` feature (#5014) * Closes https://github.com/emilk/egui/issues/4771 --- crates/egui_extras/src/table.rs | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'crates/egui_extras/src/table.rs') diff --git a/crates/egui_extras/src/table.rs b/crates/egui_extras/src/table.rs index a28d7950..b1fa71ce 100644 --- a/crates/egui_extras/src/table.rs +++ b/crates/egui_extras/src/table.rs @@ -543,12 +543,13 @@ impl TableState { let rect = Rect::from_min_size(ui.available_rect_before_wrap().min, Vec2::ZERO); ui.ctx().check_for_id_clash(state_id, rect, "Table"); - let state = ui - .data_mut(|d| d.get_persisted::(state_id)) - .filter(|state| { - // make sure that the stored widths aren't out-dated - state.column_widths.len() == columns.len() - }); + #[cfg(feature = "serde")] + let state = ui.data_mut(|d| d.get_persisted::(state_id)); + #[cfg(not(feature = "serde"))] + let state = ui.data_mut(|d| d.get_temp::(state_id)); + + // Make sure that the stored widths aren't out-dated: + let state = state.filter(|state| state.column_widths.len() == columns.len()); let is_sizing_pass = ui.is_sizing_pass() || state.is_none() && columns.iter().any(|c| c.is_auto()); @@ -597,7 +598,15 @@ impl TableState { } fn store(self, ui: &egui::Ui, state_id: egui::Id) { - ui.data_mut(|d| d.insert_persisted(state_id, self)); + #![allow(clippy::needless_return)] + #[cfg(feature = "serde")] + { + return ui.data_mut(|d| d.insert_persisted(state_id, self)); + } + #[cfg(not(feature = "serde"))] + { + return ui.data_mut(|d| d.insert_temp(state_id, self)); + } } fn reset(ui: &egui::Ui, state_id: egui::Id) { -- cgit v1.2.3-70-g09d2