biolab / orange3

🍊 :bar_chart: :bulb: Orange: Interactive data analysis
https://orangedatamining.com
Other
4.7k stars 991 forks source link

[FIX] tableview: Remove toggle selection on corner widget click #6802

Closed ales-erjavec closed 1 month ago

ales-erjavec commented 1 month ago
Issue

With Qt 6.7.0

Traceback (most recent call last):
  File "/Users/aleserjavec/workspace/orange-canvas/orangecanvas/scheme/widgetmanager.py", line 404, in __process_init_queue
    self.ensure_created(node)
  File "/Users/aleserjavec/workspace/orange-canvas/orangecanvas/scheme/widgetmanager.py", line 350, in ensure_created
    self.__add_widget_for_node(node)
  File "/Users/aleserjavec/workspace/orange-canvas/orangecanvas/scheme/widgetmanager.py", line 243, in __add_widget_for_node
    w = self.create_widget_for_node(node)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/aleserjavec/virtual/py312/lib/python3.12/site-packages/orangewidget/workflow/widgetsscheme.py", line 300, in create_widget_for_node
    widget = self.create_widget_instance(node)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/aleserjavec/virtual/py312/lib/python3.12/site-packages/orangewidget/workflow/widgetsscheme.py", line 413, in create_widget_instance
    widget.__init__()
  File "/Users/aleserjavec/workspace/orange3/Orange/widgets/data/owtable.py", line 255, in __init__
    view = DataTableView(sortingEnabled=True)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/aleserjavec/workspace/orange3/Orange/widgets/data/owtable.py", line 90, in __init__
    super().__init__(*args, **kwargs)
  File "/Users/aleserjavec/workspace/orange3/Orange/widgets/gui.py", line 669, in __init__
    super().__init__(*args, **kwargs)
  File "/Users/aleserjavec/workspace/orange3/Orange/widgets/data/utils/tableview.py", line 127, in __init__
    super().__init__(*args, **kwargs)
  File "/Users/aleserjavec/workspace/orange3/Orange/widgets/data/utils/tableview.py", line 65, in __init__
    btn.clicked.disconnect(self.selectAll)
TypeError: disconnect() failed between 'clicked' and 'selectAll'
-------------------------------------------------------------------------------

On Qt 6.7.0 a wrong signal is connected meaning we get an exception trying to disconnect the selectAll slot (QTBUG-124267). Still even that fixed the implementation has changed such that it is using explicit disconnect in the widget's destructor (using explicit stored established QObject::Connection) so it will fail there.

Out of abundance of caution simply remove the behavior override.

Description of changes
Includes