Skip to content

Commit b4f0b96

Browse files
committed
Base learner widget: Fix apply after rename
1 parent 463369a commit b4f0b96

File tree

1 file changed

+18
-5
lines changed

1 file changed

+18
-5
lines changed

Orange/widgets/utils/owlearnerwidget.py

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -176,19 +176,29 @@ def set_data(self, data):
176176
# invalidate the model so that handleNewSignals will update it
177177
self.model = None
178178

179-
def apply(self, *, hard=True):
179+
SEND, SOFT, UPDATE = range(3)
180+
181+
def apply(self, *, level=UPDATE):
180182
"""Applies learner and sends new model."""
181-
if hard or self.learner is None:
182-
self.update_learner()
183-
if hard or self.model is None:
183+
if level == self.SEND:
184+
self._send_learner()
185+
self._send_model()
186+
elif level == self.UPDATE:
187+
self.update_learnel()
184188
self.update_model()
189+
else:
190+
self.learner or self.update_learner()
191+
self.model or self.update_model()
185192

186193
def update_learner(self):
187194
self.learner = self.create_learner()
188195
if self.learner and issubclass(self.LEARNER, Fitter):
189196
self.learner.use_default_preprocessors = True
190197
if self.learner is not None:
191198
self.learner.name = self.effective_learner_name()
199+
self._send_learner()
200+
201+
def _send_learner(self):
192202
self.Outputs.learner.send(self.learner)
193203
self.outdated_settings = False
194204
self.Warning.outdated_learner.clear()
@@ -216,6 +226,9 @@ def update_model(self):
216226
else:
217227
self.model.name = self.learner_name or self.captionTitle
218228
self.model.instances = self.data
229+
self._send_model()
230+
231+
def _send_model(self):
219232
self.Outputs.model.send(self.model)
220233

221234
def check_data(self):
@@ -245,7 +258,7 @@ def settings_changed(self, *args, **kwargs):
245258
def _change_name(self, instance, output):
246259
if instance:
247260
instance.name = self.effective_learner_name()
248-
self.apply()
261+
self.apply(level=self.SEND)
249262

250263
def learner_name_changed(self):
251264
self._change_name(self.learner, self.Outputs.learner)

0 commit comments

Comments
 (0)