Skip to content

Commit fc5edc5

Browse files
janezdVesnaT
authored andcommitted
OWTranspose: Fix contexts, other minor fixes
1 parent 8576ec1 commit fc5edc5

File tree

1 file changed

+14
-14
lines changed

1 file changed

+14
-14
lines changed

Orange/widgets/data/owtranspose.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
from AnyQt.QtCore import Qt
2-
31
from Orange.data import Table, StringVariable
42
from Orange.widgets.settings import (Setting, ContextSetting,
53
DomainContextHandler)
@@ -45,8 +43,7 @@ def __init__(self):
4543
gui.indentedBox(
4644
box, gui.checkButtonOffsetHint(self.feature_radio.buttons[0])),
4745
self, "feature_names_column", callback=self._feature_combo_changed,
48-
model=self.feature_model, sendSelectedValue=True,
49-
labelWidth=100, contentsLength=12, orientation=Qt.Horizontal)
46+
model=self.feature_model)
5047

5148
self.apply_button = gui.auto_commit(
5249
self.controlArea, self, "auto_apply", "&Apply",
@@ -57,20 +54,23 @@ def _feature_combo_changed(self):
5754
self.apply()
5855

5956
def set_data(self, data):
60-
self.closeContext()
57+
# Skip the context if the combo is empty: a context with
58+
# feature_model == None would then match all domains
59+
if self.feature_model:
60+
self.closeContext()
6161
self.data = data
6262
self.update_controls()
63-
self.openContext(data)
63+
if self.data is not None and self.feature_model:
64+
self.openContext(data)
6465
self.apply()
6566

6667
def update_controls(self):
6768
self.feature_model.set_domain(None)
6869
if self.data:
6970
self.feature_model.set_domain(self.data.domain)
70-
if len(self.feature_model):
71-
_names = [m.name for m in self.data.domain.metas if m.is_string]
72-
self.feature_names_column = _names[0]
73-
enabled = bool(len(self.feature_model))
71+
if self.feature_model:
72+
self.feature_names_column = self.feature_model[0]
73+
enabled = bool(self.feature_model)
7474
self.feature_radio.buttons[1].setEnabled(enabled)
7575
self.feature_combo.setEnabled(enabled)
7676
self.feature_type = int(enabled)
@@ -79,11 +79,9 @@ def apply(self):
7979
self.clear_messages()
8080
transposed = None
8181
if self.data:
82-
options = dict()
83-
if self.feature_type:
84-
options["feature_names_column"] = self.feature_names_column
8582
try:
86-
transposed = Table.transpose(self.data, **options)
83+
transposed = Table.transpose(
84+
self.data, self.feature_type and self.feature_names_column)
8785
except ValueError as e:
8886
self.Error.value_error(e)
8987
self.send("Data", transposed)
@@ -101,6 +99,8 @@ def send_report(self):
10199

102100
app = QApplication([])
103101
ow = OWTranspose()
102+
d = Table("iris")
103+
ow.set_data(d)
104104
d = Table("zoo")
105105
ow.set_data(d)
106106
ow.show()

0 commit comments

Comments
 (0)