From 00827e7b0babc2b62d72bc1972cbb2135b04018d Mon Sep 17 00:00:00 2001 From: Ozbolt Menegatti Date: Thu, 2 Jan 2020 13:15:04 +0100 Subject: [PATCH] Splitting reset into pre and post reset. --- src/model/model.py | 13 +++++++++++++ src/update.py | 16 +++++++++++++--- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/model/model.py b/src/model/model.py index 4f0d9be..2ff108d 100644 --- a/src/model/model.py +++ b/src/model/model.py @@ -21,13 +21,26 @@ class Model: self.translation = None self.sense = None + # choosing examples + self.chosen_examples = [] + self.reset() self.modal_reset() def reset(self): + # do both resets at once + self.pre_reset() + self.post_reset() + + def pre_reset(self): + # the reset before updating models self.menu_target = None self.modal_shown = False + def post_reset(self): + # the reset after updating the models + self.chosen_examples = [] + def modal_reset(self): self.modal = lambda: [] diff --git a/src/update.py b/src/update.py index bb8d775..8b389c8 100644 --- a/src/update.py +++ b/src/update.py @@ -7,18 +7,28 @@ class Update: self.view = None def update_model(self): - # any update resets menu_location, except if it explicitly defines it + # check if we need to reset the model + reset = False for msg in self.message_queue: if msg.reset(): - self.model.reset() + reset = True break + + if reset: + self.model.pre_reset() + # check if we need to signal the data change for msg in self.message_queue: if msg.data_change(): screenful.changed() - + break + + # do update for msg in self.message_queue: msg.update_model(self.model) + + if reset: + self.model.post_reset() self.message_queue = [] self.view.view(self.model)