Skip to content

Commit 225ab83

Browse files
committed
owtable: Slight refactor
1 parent a748369 commit 225ab83

2 files changed

Lines changed: 16 additions & 14 deletions

File tree

Orange/widgets/data/owtable.py

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -173,14 +173,18 @@ class DataTableView(gui.HScrollStepMixin, TableView):
173173
input_slot: TableSlot
174174

175175

176-
class TableBarItemDelegate(BarItemDataDelegate):
176+
class TableDataDelegate(DataDelegate):
177+
# Roles supplied by TableModel we want DataDelegate to use.
178+
TableModelRoles = (Qt.DisplayRole, Qt.TextAlignmentRole, Qt.BackgroundRole)
177179

180+
def __init__(self, *args, roles=TableModelRoles, **kwargs):
181+
super().__init__(*args, roles=roles, **kwargs)
182+
183+
184+
class TableBarItemDelegate(BarItemDataDelegate, TableDataDelegate):
178185
__slots__ = ("color_schema",)
179186

180187
def __init__(self, *args, color_schema=None, **kwargs):
181-
kwargs.setdefault(
182-
"roles", (Qt.DisplayRole, Qt.TextAlignmentRole, Qt.BackgroundRole)
183-
)
184188
super().__init__(*args, **kwargs)
185189
self.color_schema = color_schema
186190

@@ -291,9 +295,7 @@ def set_dataset(self, data, tid=None):
291295
else:
292296
view = DataTableView()
293297
view.setSortingEnabled(True)
294-
view.setItemDelegate(
295-
DataDelegate(view, roles=(Qt.DisplayRole, Qt.BackgroundRole, Qt.TextAlignmentRole))
296-
)
298+
view.setItemDelegate(TableDataDelegate(view))
297299

298300
if self.select_rows:
299301
view.setSelectionBehavior(QTableView.SelectRows)
@@ -382,10 +384,10 @@ def _setup_table_view(self, view, data):
382384
if self.show_distributions:
383385
view.setItemDelegate(
384386
TableBarItemDelegate(
385-
self, color=self.dist_color, color_schema=color_schema)
387+
view, color=self.dist_color, color_schema=color_schema)
386388
)
387389
else:
388-
view.setItemDelegate(DataDelegate(self, roles=(Qt.DisplayRole, Qt.BackgroundRole, Qt.TextAlignmentRole)))
390+
view.setItemDelegate(TableDataDelegate(view))
389391

390392
# Enable/disable view sorting based on data's type
391393
view.setSortingEnabled(is_sortable(data))
@@ -629,10 +631,10 @@ def _on_distribution_color_changed(self):
629631
else:
630632
color_schema = None
631633
if self.show_distributions:
632-
delegate = TableBarItemDelegate(self, color=self.dist_color,
634+
delegate = TableBarItemDelegate(widget, color=self.dist_color,
633635
color_schema=color_schema)
634636
else:
635-
delegate = QStyledItemDelegate(self)
637+
delegate = TableDataDelegate(widget)
636638
widget.setItemDelegate(delegate)
637639
tab = self.tabs.currentWidget()
638640
if tab:

benchmark/bench_datadelegate.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44

55
import Orange
66
from Orange.data import Table
7-
from Orange.widgets.data.owtable import RichTableModel, TableBarItemDelegate
7+
from Orange.widgets.data.owtable import RichTableModel, TableBarItemDelegate, \
8+
TableDataDelegate
89
from Orange.widgets.unsupervised.owdistancematrix import DistanceMatrixModel, \
910
TableBorderItem
10-
from Orange.widgets.utils.itemdelegates import DataDelegate
1111
from Orange.widgets.utils.tableview import TableView
1212

1313
from .base import benchmark, Benchmark
@@ -37,7 +37,7 @@ class BenchTableView(BaseBenchTableView):
3737
def setUp(self) -> None:
3838
super().setUp()
3939
data = Table("brown-selected")
40-
self.delegate = DataDelegate(
40+
self.delegate = TableDataDelegate(
4141
self.view, roles=(
4242
Qt.DisplayRole, Qt.BackgroundRole, Qt.TextAlignmentRole
4343
)

0 commit comments

Comments
 (0)