def test_mixed(self): available_space = 200 requested = [0.5, 50, 25, 0.75] widths = compute_column_widths(available_space, requested, None, None) self.assertEqual(widths, [50, 50, 25, 75])
def test_mixed_too_wide(self): available_space = 100 requested = [0.5, 50, 25, 0.75] widths = compute_column_widths(available_space, requested, None, None) self.assertEqual(widths, [30, 50, 25, 30])
def test_all_weighted_default_min(self): available_space = 200 requested = [0.4, 0.1, 0.1, 0.4] widths = compute_column_widths(available_space, requested, None, None) self.assertEqual(widths, [70, 30, 30, 70])
def test_all_weighted(self): available_space = 200 requested = [0.3, 0.2, 0.25, 0.25] widths = compute_column_widths(available_space, requested, None, None) self.assertEqual(widths, [60, 40, 50, 50])
def test_all_fixed_too_wide(self): available_space = 100 requested = [10, 50, 40, 20] widths = compute_column_widths(available_space, requested, None, None) self.assertEqual(widths, [10, 50, 40, 20])
def test_all_default(self): available_space = 200 requested = [-1, -1, -1, -1] widths = compute_column_widths(available_space, requested, None, None) self.assertEqual(widths, [50, 50, 50, 50])
def resizeColumnsToContents(self): """ Reimplemented to support proportional column width specifications. The core part of the computation is carried out in :func:`traitsui.helpers.compute_column_widths` """ editor = self._editor adapter = editor.adapter if editor.factory.auto_resize: # Use the default implementation. return super(_TableView, self).resizeColumnsToContents() available_space = self.viewport().width() requested = [] min_widths = [] for column in range(len(adapter.columns)): width = adapter.get_width(editor.object, editor.name, column) requested.append(width) min_widths.append(self.sizeHintForColumn(column)) widths = compute_column_widths(available_space, requested, min_widths, self._user_widths) hheader = self.horizontalHeader() with self._resizing(): for column, width in enumerate(widths): hheader.resizeSection(column, width)
def test_min_widths(self): available_space = 225 requested = [0.5, 50, 0.25, 0.75] min_widths = [30, 100, 50, 30] widths = compute_column_widths(available_space, requested, min_widths, None) self.assertEqual(widths, [50, 50, 50, 75])
def test_user_widths(self): available_space = 225 requested = [0.5, 50, 25, 0.75] user_widths = [None, None, 50, None] widths = compute_column_widths(available_space, requested, None, user_widths) self.assertEqual(widths, [50, 50, 50, 75])
def test_user_and_min_widths(self): available_space = 200 requested = [0.5, 50, 0.25, 0.75] min_widths = [30, 100, 50, 30] user_widths = [None, 75, 25, 50] widths = compute_column_widths(available_space, requested, min_widths, user_widths) self.assertEqual(widths, [50, 75, 25, 50])