Optimize Model insertions (blist + bisect)

This commit is contained in:
miruka
2020-02-12 07:43:03 -04:00
parent 7020706ff1
commit f922204644
3 changed files with 18 additions and 13 deletions

View File

@@ -35,15 +35,16 @@ class ModelItem:
if getattr(self, name) == value:
return
super().__setattr__(name, value)
with self.parent_model._write_lock:
super().__setattr__(name, value)
old_index = self.parent_model._sorted_data.index(self)
self.parent_model._sorted_data.sort()
new_index = self.parent_model._sorted_data.index(self)
old_index = self.parent_model._sorted_data.index(self)
self.parent_model._sorted_data.sort()
new_index = self.parent_model._sorted_data.index(self)
ModelItemFieldChanged(
self.parent_model.sync_id, old_index, new_index, name, value,
)
ModelItemFieldChanged(
self.parent_model.sync_id, old_index, new_index, name, value,
)
def __delattr__(self, name: str) -> None: