예제 #1
0
    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])
예제 #2
0
    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])
예제 #3
0
    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])
예제 #4
0
    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])
예제 #5
0
    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])
예제 #6
0
    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])
예제 #7
0
    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)
예제 #8
0
    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])
예제 #9
0
    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])
예제 #10
0
    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])