biolab / orange3

🍊 :bar_chart: :bulb: Orange: Interactive data analysis
https://orangedatamining.com
Other
4.85k stars 1.01k forks source link

Widgets do not remember a selection for a data set #3762

Closed PrimozGodec closed 5 years ago

PrimozGodec commented 5 years ago
Orange version

3.21-dev

Expected behavior

Widgets should remember what data were selected for the dataset.

Actual behavior

Widgets are not consistent. Some widgets do not remember what data were selected before. Those widgets are:

See the comment below for:

The same issue also appears for widgets reported in the following issue https://github.com/biolab/orange3/issues/3763 in a combination with auto apply issue.

Steps to reproduce the behavior

Connect the widget's input to the data source (e.g. File Widget) set dataset to Iris. Select part of data in widget. Change data to some other dataset and change data back to Iris. The selection for Iris should be still present but it is not.

janezd commented 5 years ago

I started working on this issue. We however have to decide whether selection should be a context- or a schema-only setting. We are currently inconsistent. Opinions?

In solving this issue, I'll do whatever is easier for a particular widget.

markotoplak commented 5 years ago

Does any of our contexts have anything to do with instances? Aren't they domain focused?

janezd commented 5 years ago

So your criteria would be that instance selections are schema-only (silhouette and clustering would fall into that category), while attribute-based selections are context settings (e.g. mosaic)?

One more question: you're the author of settingsAboutToBePacked signal? It is really useful. But - am I mistaken or is it emitted only when the widget is dying, and not on every closeContext? If so, it's useful only for packing schemaOnly settings, and not for ordinary context settings. Would it then make sense to emit it also on closeContext?

markotoplak commented 5 years ago

@janezd, to me, keeping instance based selection schema only and attribute based selection in a context makes sense to me.

For the question I would need to think whether it would be better to reuse the signal or the make a specific one for closing contexts. EDIT: contextClosed already exists.

janezd commented 5 years ago

A signal contextAboutToBeClosed sounds good. Until yesterday I actually believed that settingsAboutToBePacked are emitted on closing.

janezd commented 5 years ago