diff options
author | Emil Ernerfeldt <emil.ernerfeldt@gmail.com> | 2024-08-27 11:38:33 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-27 11:38:33 +0200 |
commit | 58bc67e02f49de4f8afd820bc3b7e74734d81d4b (patch) | |
tree | aeb38a0c92a7f65424675e31e46a29b1db11fb07 /crates/egui_extras/src/table.rs | |
parent | bd7d71e7fd084c2ded57c4088e2905e32a352c22 (diff) |
Fix compilation of `egui_extras` without `serde` feature (#5014)
* Closes https://github.com/emilk/egui/issues/4771
Diffstat (limited to 'crates/egui_extras/src/table.rs')
-rw-r--r-- | crates/egui_extras/src/table.rs | 23 |
1 files changed, 16 insertions, 7 deletions
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::<Self>(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::<Self>(state_id)); + #[cfg(not(feature = "serde"))] + let state = ui.data_mut(|d| d.get_temp::<Self>(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) { |