Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions Orange/canvas/report/report.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from collections import OrderedDict, Iterable
from itertools import chain
from PyQt4.QtCore import Qt, QAbstractItemModel, QByteArray, QBuffer, QIODevice, QLocale
from PyQt4.QtGui import QGraphicsScene, QTableView, QColor
from PyQt4.QtGui import QGraphicsScene, QTableView, QColor, QBrush

from Orange.util import try_
from Orange.widgets.io import PngFormat
Expand Down Expand Up @@ -222,10 +222,12 @@ def data(role=Qt.DisplayRole,
if view and row is not None and col is not None else False)

fgcolor = data(Qt.ForegroundRole)
fgcolor = fgcolor.color().name() if fgcolor else 'black'
fgcolor = (QBrush(fgcolor).color().name()
if isinstance(fgcolor, (QBrush, QColor)) else 'black')

bgcolor = data(Qt.BackgroundRole)
bgcolor = bgcolor.color().name() if bgcolor else 'transparent'
bgcolor = (QBrush(bgcolor).color().name()
if isinstance(bgcolor, (QBrush, QColor)) else 'transparent')
if bgcolor.lower() == '#ffffff':
bgcolor = 'transparent'

Expand Down Expand Up @@ -255,6 +257,8 @@ def data(role=Qt.DisplayRole,

if has_horizontal_header:
stream.append('<tr>')
if has_vertical_header:
stream.append('<th></th>')
stream.extend(item_html(None, col) for col in columns)
stream.append('</tr>')

Expand Down
16 changes: 8 additions & 8 deletions Orange/widgets/data/owtable.py
Original file line number Diff line number Diff line change
Expand Up @@ -379,7 +379,7 @@ class OWDataTable(widget.OWWidget):
def __init__(self):
super().__init__()

self.inputs = OrderedDict()
self._inputs = OrderedDict()

self.dist_color = QtGui.QColor(*self.dist_color_RGB)

Expand Down Expand Up @@ -436,9 +436,9 @@ def set_dataset(self, data, tid=None):
"""Set the input dataset."""
self.closeContext()
if data is not None:
if tid in self.inputs:
if tid in self._inputs:
# update existing input slot
slot = self.inputs[tid]
slot = self._inputs[tid]
view = slot.view
# reset the (header) view state.
view.setModel(None)
Expand Down Expand Up @@ -472,7 +472,7 @@ def sort_reset(index, order):
self._setup_table_view(view, data)
slot = TableSlot(tid, data, table_summary(data), view)
view._input_slot = slot
self.inputs[tid] = slot
self._inputs[tid] = slot

self.tabs.setCurrentIndex(self.tabs.indexOf(view))

Expand All @@ -485,8 +485,8 @@ def update(f):

slot.summary.len.add_done_callback(update)

elif tid in self.inputs:
slot = self.inputs.pop(tid)
elif tid in self._inputs:
slot = self._inputs.pop(tid)
view = slot.view
view.hide()
view.deleteLater()
Expand Down Expand Up @@ -657,7 +657,7 @@ def _update_variable_labels(self, view):

def _on_show_variable_labels_changed(self):
"""The variable labels (var.attribues) visibility was changed."""
for slot in self.inputs.values():
for slot in self._inputs.values():
self._update_variable_labels(slot.view)

def _on_distribution_color_changed(self):
Expand All @@ -683,7 +683,7 @@ def _on_distribution_color_changed(self):
tab.reset()

def _on_select_rows_changed(self):
for slot in self.inputs.values():
for slot in self._inputs.values():
selection_model = slot.view.selectionModel()
selection_model.setSelectBlocks(not self.select_rows)
if self.select_rows:
Expand Down
22 changes: 22 additions & 0 deletions Orange/widgets/data/tests/test_owtable.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
from Orange.data import Table
from Orange.widgets.data.owtable import OWDataTable
from Orange.widgets.tests.base import WidgetTest


class TestOWDataTable(WidgetTest):
def setUp(self):
self.widget = self.create_widget(OWDataTable)
self.iris = Table("iris")

def test_input_data(self):
"""Check number of tabs with data on the input"""
self.send_signal("Data", self.iris, 1)
self.assertEqual(self.widget.tabs.count(), 1)
self.send_signal("Data", self.iris, 2)
self.assertEqual(self.widget.tabs.count(), 2)
self.send_signal("Data", None, 1)
self.assertEqual(self.widget.tabs.count(), 1)

def test_data_model(self):
self.send_signal("Data", self.iris, 1)
self.assertEqual(self.widget.tabs.widget(0).model().rowCount(), len(self.iris))