orange3 icon indicating copy to clipboard operation
orange3 copied to clipboard

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

Open ales-erjavec opened this issue 9 months ago • 0 comments

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
  • Remove toggle selection on corner widget click
Includes
  • [X] Code changes
  • [ ] Tests
  • [ ] Documentation

ales-erjavec avatar May 10 '24 12:05 ales-erjavec