Deletion, wrangling parents a little bit

This commit is contained in:
Lucien Greathouse 2018-05-26 02:28:34 -07:00
parent 8729de1312
commit e4f35b29bd
4 changed files with 60 additions and 10 deletions

View file

@ -20,18 +20,24 @@ fn file_to_instances(
let mut properties = HashMap::new();
properties.insert("Value".to_string(), contents.clone());
let (primary_id, parent) = match instances_by_route.get(&file_item.get_route()) {
Some(&id) => {
(id, output.get(&id).unwrap().parent)
},
let primary_id = match instances_by_route.get(&file_item.get_route()) {
Some(&id) => id,
None => {
let id = get_id();
instances_by_route.insert(route.clone(), id);
(id, None)
id
},
};
let parent = match file_item.get_route().parent() {
Some(parent_route) => match instances_by_route.get(&parent_route) {
Some(parent_id) => Some(*parent_id),
None => None,
},
None => None,
};
output.insert(primary_id, RbxInstance {
name: route.name(partition).to_string(),
class_name: "StringValue".to_string(),
@ -42,18 +48,24 @@ fn file_to_instances(
(primary_id, vec![primary_id])
},
FileItem::Directory { children, route } => {
let (primary_id, parent) = match instances_by_route.get(&file_item.get_route()) {
Some(&id) => {
(id, output.get(&id).unwrap().parent)
},
let primary_id = match instances_by_route.get(&file_item.get_route()) {
Some(&id) => id,
None => {
let id = get_id();
instances_by_route.insert(route.clone(), id);
(id, None)
id
},
};
let parent = match file_item.get_route().parent() {
Some(parent_route) => match instances_by_route.get(&parent_route) {
Some(parent_id) => Some(*parent_id),
None => None,
},
None => None,
};
output.insert(primary_id, RbxInstance {
name: route.name(partition).to_string(),
class_name: "Folder".to_string(),
@ -141,6 +153,13 @@ impl RbxSession {
self.message_session.push_messages(&messages);
},
FileChange::Deleted(route) => {
match self.instances_by_route.get(route) {
Some(id) => {
self.instances.remove(id);
self.message_session.push_messages(&[Message::InstanceChanged { id: *id }]);
},
None => (),
}
},
FileChange::Moved(from_route, to_route) => {
},