diff --git a/Orange/widgets/data/oweditdomain.py b/Orange/widgets/data/oweditdomain.py index 1dde4a32712..4b107836eef 100644 --- a/Orange/widgets/data/oweditdomain.py +++ b/Orange/widgets/data/oweditdomain.py @@ -394,7 +394,8 @@ def __init__(self): self.domain_model = itemmodels.VariableListModel() self.domain_view = QListView( - selectionMode=QListView.SingleSelection + selectionMode=QListView.SingleSelection, + uniformItemSizes=True ) self.domain_view.setModel(self.domain_model) self.domain_view.selectionModel().selectionChanged.connect( diff --git a/Orange/widgets/gui.py b/Orange/widgets/gui.py index bab9c7d0930..f35275b994d 100644 --- a/Orange/widgets/gui.py +++ b/Orange/widgets/gui.py @@ -1090,6 +1090,7 @@ def listView(widget, master, value=None, model=None, box=None, callback=None, CallFrontListView(view), CallBackListView(model, view, master, value)) misc.setdefault('addSpace', True) + misc.setdefault('uniformItemSizes', True) miscellanea(view, bg, widget, **misc) return view @@ -2500,6 +2501,7 @@ def action(self, values): selection = QItemSelection() for value in values: + index = None if not isinstance(value, int): if isinstance(value, Variable): search_role = TableVariable @@ -2508,9 +2510,12 @@ def action(self, values): value = str(value) for i in range(model.rowCount()): if model.data(model.index(i), search_role) == value: - value = i + index = i break - selection.select(model.index(value), model.index(value)) + else: + index = value + if index is not None: + selection.select(model.index(index), model.index(index)) sel_model.select(selection, sel_model.ClearAndSelect) diff --git a/Orange/widgets/utils/listfilter.py b/Orange/widgets/utils/listfilter.py index bb20363cb03..697a118f57b 100644 --- a/Orange/widgets/utils/listfilter.py +++ b/Orange/widgets/utils/listfilter.py @@ -53,6 +53,7 @@ def __init__(self, parent=None, acceptedType=Orange.data.Variable): self.setDragDropMode(self.DragDrop) self.setDefaultDropAction(Qt.MoveAction) self.setDragDropOverwriteMode(False) + self.setUniformItemSizes(True) self.viewport().setAcceptDrops(True) #: type | Tuple[type]