Skip to content

Commit

Permalink
#744 Change learning mapping when learning source/target while other …
Browse files Browse the repository at this point in the history
…mapping learning already
  • Loading branch information
helgoboss committed Feb 14, 2023
1 parent 385ceb3 commit 831fe9a
Showing 1 changed file with 15 additions and 6 deletions.
21 changes: 15 additions & 6 deletions main/src/application/session.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1566,16 +1566,21 @@ impl Session {
}

pub fn toggle_learning_source(&mut self, session: &SharedSession, mapping: &SharedMapping) {
if self.mapping_which_learns_source.get_ref().is_none() {
if let Some(currently_learning_mapping_id) = self.mapping_which_learns_source.get() {
let mapping_id = mapping.borrow().qualified_id();
if currently_learning_mapping_id == mapping_id {
self.stop_learning_source();
} else {
self.mapping_which_learns_source.set(Some(mapping_id));
}
} else {
self.start_learning_source(
Rc::downgrade(session),
mapping.clone(),
true,
vec![],
mapping.borrow().compartment() != Compartment::Controller,
);
} else {
self.stop_learning_source();
}
}

Expand Down Expand Up @@ -1640,10 +1645,14 @@ impl Session {
session: &SharedSession,
mapping_id: QualifiedMappingId,
) {
if self.mapping_which_learns_target.get_ref().is_none() {
self.start_learning_target(Rc::downgrade(session), mapping_id, true);
if let Some(currently_learning_mapping_id) = self.mapping_which_learns_target.get() {
if currently_learning_mapping_id == mapping_id {
self.stop_learning_target();
} else {
self.mapping_which_learns_target.set(Some(mapping_id));
}
} else {
self.stop_learning_target();
self.start_learning_target(Rc::downgrade(session), mapping_id, true);
}
}

Expand Down

0 comments on commit 831fe9a

Please sign in to comment.