From e376b610d4762584f676f2fdf60da35586bcf476 Mon Sep 17 00:00:00 2001 From: Andreas Reich Date: Wed, 7 Jun 2023 17:39:29 +0200 Subject: [PATCH] list of space views is now a BTreeMap, not a HashMap --- crates/re_viewer/src/ui/blueprint_load.rs | 4 +++- crates/re_viewport/src/auto_layout.rs | 2 +- crates/re_viewport/src/space_view_highlights.rs | 5 +++-- crates/re_viewport/src/viewport.rs | 8 ++++++-- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/crates/re_viewer/src/ui/blueprint_load.rs b/crates/re_viewer/src/ui/blueprint_load.rs index 08d19b111a9d..a5cde4dbad99 100644 --- a/crates/re_viewer/src/ui/blueprint_load.rs +++ b/crates/re_viewer/src/ui/blueprint_load.rs @@ -1,3 +1,5 @@ +use std::collections::BTreeMap; + use ahash::HashMap; use re_data_store::{query_timeless_single, EntityPath}; @@ -111,7 +113,7 @@ fn load_viewport( .map(|(k, v)| (*k, v.clone())) .collect(); - let known_space_views: HashMap<_, _> = space_views + let known_space_views: BTreeMap<_, _> = space_views .into_iter() .filter(|(k, _)| viewport_layout.space_view_keys.contains(k)) .collect(); diff --git a/crates/re_viewport/src/auto_layout.rs b/crates/re_viewport/src/auto_layout.rs index a6149813fe14..5d0b51bf7a05 100644 --- a/crates/re_viewport/src/auto_layout.rs +++ b/crates/re_viewport/src/auto_layout.rs @@ -51,7 +51,7 @@ pub(crate) fn tree_from_space_views( ctx: &mut ViewerContext<'_>, viewport_size: egui::Vec2, visible: &std::collections::BTreeSet, - space_views: &HashMap, + space_views: &BTreeMap, space_view_states: &HashMap, ) -> egui_tiles::Tree { let mut space_make_infos = space_views diff --git a/crates/re_viewport/src/space_view_highlights.rs b/crates/re_viewport/src/space_view_highlights.rs index 8143df90d931..5aed2366a825 100644 --- a/crates/re_viewport/src/space_view_highlights.rs +++ b/crates/re_viewport/src/space_view_highlights.rs @@ -1,4 +1,5 @@ -use ahash::HashMap; +use std::collections::BTreeMap; + use egui::NumExt; use nohash_hasher::IntMap; @@ -14,7 +15,7 @@ use crate::SpaceViewBlueprint; pub fn highlights_for_space_view( selection_state: &SelectionState, space_view_id: SpaceViewId, - space_views: &HashMap, + space_views: &BTreeMap, ) -> SpaceViewHighlights { re_tracing::profile_function!(); diff --git a/crates/re_viewport/src/viewport.rs b/crates/re_viewport/src/viewport.rs index 7f9462ad95db..37a5e62a0a3b 100644 --- a/crates/re_viewport/src/viewport.rs +++ b/crates/re_viewport/src/viewport.rs @@ -2,6 +2,8 @@ //! //! Contains all space views. +use std::collections::BTreeMap; + use ahash::HashMap; use itertools::Itertools as _; @@ -32,7 +34,9 @@ pub type VisibilitySet = std::collections::BTreeSet; #[serde(default)] pub struct Viewport { /// Where the space views are stored. - pub space_views: HashMap, + /// + /// Not a hashmap in order to preserve the order of the space views. + pub space_views: BTreeMap, /// Which views are visible. pub visible: VisibilitySet, @@ -677,7 +681,7 @@ fn visibility_button_ui( struct TabViewer<'a, 'b> { viewport_state: &'a mut ViewportState, ctx: &'a mut ViewerContext<'b>, - space_views: &'a mut HashMap, + space_views: &'a mut BTreeMap, maximized: &'a mut Option, }