Skip to content

Commit 88da04b

Browse files
committed
refactored
1 parent d30a4c4 commit 88da04b

File tree

1 file changed

+26
-32
lines changed

1 file changed

+26
-32
lines changed

src/graph_view.rs

+26-32
Original file line numberDiff line numberDiff line change
@@ -100,37 +100,8 @@ where
100100

101101
self.sync_state(&mut meta);
102102

103-
let mut last_layout_events = vec![];
104-
if let Some(events) = &meta.last_layout_events {
105-
last_layout_events = events.clone();
106-
};
107-
108103
let not_placed = &self.g.new_nodes_no_location().iter().copied().collect();
109-
110-
GraphView::<N, E, Ty, Ix, Nd, Ed, S, L>::sync_layout(
111-
ui,
112-
self.g,
113-
last_layout_events.as_slice(),
114-
not_placed,
115-
);
116-
117-
meta.last_layout_events = if let Some(events) = meta.last_layout_events {
118-
Some(
119-
events
120-
.iter()
121-
.cloned()
122-
.filter_map(|el| {
123-
if el == LayoutEvent::NextCalledOnce {
124-
return None;
125-
}
126-
127-
Some(el)
128-
})
129-
.collect(),
130-
)
131-
} else {
132-
Some(vec![LayoutEvent::NextCalledOnce, LayoutEvent::NextCalled])
133-
};
104+
GraphView::<N, E, Ty, Ix, Nd, Ed, S, L>::sync_layout(ui, &mut meta, self.g, not_placed);
134105

135106
let (resp, p) = ui.allocate_painter(ui.available_size(), Sense::click_and_drag());
136107
self.handle_fit_to_screen(&resp, &mut meta);
@@ -232,18 +203,41 @@ where
232203

233204
fn sync_layout(
234205
ui: &mut Ui,
206+
meta: &mut Metadata,
235207
g: &mut Graph<N, E, Ty, Ix, Dn, De>,
236-
last_layout_events: &[LayoutEvent],
237208
not_placed: &HashSet<NodeIndex<Ix>>,
238209
) {
239210
ui.data_mut(|data| {
240211
let state = data
241212
.get_persisted::<S>(Id::new(KEY_LAYOUT))
242213
.unwrap_or_default();
243214

244-
let mut layout = L::from_state(state, last_layout_events);
215+
let mut last_layout_events = vec![];
216+
if let Some(events) = &meta.last_layout_events {
217+
last_layout_events.clone_from(events);
218+
};
219+
220+
let mut layout = L::from_state(state, last_layout_events.as_slice());
245221
layout.next(g, not_placed);
246222

223+
meta.last_layout_events = if let Some(events) = &meta.last_layout_events {
224+
Some(
225+
events
226+
.iter()
227+
.cloned()
228+
.filter_map(|el| {
229+
if el == LayoutEvent::NextCalledOnce {
230+
return None;
231+
}
232+
233+
Some(el)
234+
})
235+
.collect(),
236+
)
237+
} else {
238+
Some(vec![LayoutEvent::NextCalledOnce, LayoutEvent::NextCalled])
239+
};
240+
247241
data.insert_persisted(Id::new(KEY_LAYOUT), layout.state());
248242
});
249243
}

0 commit comments

Comments
 (0)