Bug 469035 - [master] Mixer Slider docker python plugin is broken
Summary: [master] Mixer Slider docker python plugin is broken
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Color Selectors (other bugs)
Version First Reported In: nightly build (please specify the git hash!)
Platform: Appimage Linux
: NOR normal
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-04-27 07:18 UTC by tomtomtomreportingin
Modified: 2023-05-04 04:44 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description tomtomtomreportingin 2023-04-27 07:18:13 UTC
git 7a932e3

SUMMARY
The Mixer Slider docker python plugin immediately throws an exception once the user clicks on a color or slider within the docker. Does not crash Krita. Does not occur in 5.1.5.

STEPS TO REPRODUCE
1. Enable the Mixer Slider docker plugin.
2. Click a swatch or slider within the docker.

OBSERVED RESULT
Exception popup.

EXPECTED RESULT
No exception thrown.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Debian sid
KDE Plasma Version: 5.27.2
KDE Frameworks Version: 5.103.0
Qt Version: 5.15.7 (appimage)

TypeError
Python 3.10.7: /usr/bin/python3
Thu Apr 27 03:16:00 2023

A problem occurred in a Python script.  Here is the sequence of
function calls leading up to the error, in the order they occurred.

 /tmp/.mount_krita-XEShiW/usr/share/krita/pykrita/mixer_slider_docker/color_slider.py in paintEvent(self=<mixer_slider_docker.color_slider.ColorSlider object>, event=<PyQt5.QtGui.QPaintEvent object>)
   98 
   99     def paintEvent(self, event):
  100         self.update_slider()
  101 
  102     def resizeEvent(self, event):  # after resizing the widget, force-redraw the underlying slider
self = <mixer_slider_docker.color_slider.ColorSlider object>
self.update_slider = <bound method ColorSlider.update_slider of <mixer_slider_docker.color_slider.ColorSlider object>>

 /tmp/.mount_krita-XEShiW/usr/share/krita/pykrita/mixer_slider_docker/color_slider.py in update_slider(self=<mixer_slider_docker.color_slider.ColorSlider object>)
   90             delta_x = self.height() / 3
   91             delta_y = self.height() / 3
   92             points = [QPoint(start_x, start_y),
   93                       QPoint(start_x - delta_x, start_y + delta_y),
   94                       QPoint(start_x + delta_x, start_y + delta_y)]
points undefined
global QPoint = <class 'PyQt5.QtCore.QPoint'>
start_x = 49
start_y = 15.0
delta_x = 10.0
delta_y = 10.0
TypeError: arguments did not match any overloaded call:
  QPoint(): too many arguments
  QPoint(int, int): argument 2 has unexpected type 'float'
  QPoint(QPoint): argument 1 has unexpected type 'int'
    __cause__ = None
    __class__ = <class 'TypeError'>
    __context__ = None
    __delattr__ = <method-wrapper '__delattr__' of TypeError object>
    __dict__ = {}
    __dir__ = <built-in method __dir__ of TypeError object>
    __doc__ = 'Inappropriate argument type.'
    __eq__ = <method-wrapper '__eq__' of TypeError object>
    __format__ = <built-in method __format__ of TypeError object>
    __ge__ = <method-wrapper '__ge__' of TypeError object>
    __getattribute__ = <method-wrapper '__getattribute__' of TypeError object>
    __gt__ = <method-wrapper '__gt__' of TypeError object>
    __hash__ = <method-wrapper '__hash__' of TypeError object>
    __init__ = <method-wrapper '__init__' of TypeError object>
    __init_subclass__ = <built-in method __init_subclass__ of type object>
    __le__ = <method-wrapper '__le__' of TypeError object>
    __lt__ = <method-wrapper '__lt__' of TypeError object>
    __ne__ = <method-wrapper '__ne__' of TypeError object>
    __new__ = <built-in method __new__ of type object>
    __reduce__ = <built-in method __reduce__ of TypeError object>
    __reduce_ex__ = <built-in method __reduce_ex__ of TypeError object>
    __repr__ = <method-wrapper '__repr__' of TypeError object>
    __setattr__ = <method-wrapper '__setattr__' of TypeError object>
    __setstate__ = <built-in method __setstate__ of TypeError object>
    __sizeof__ = <built-in method __sizeof__ of TypeError object>
    __str__ = <method-wrapper '__str__' of TypeError object>
    __subclasshook__ = <built-in method __subclasshook__ of type object>
    __suppress_context__ = False
    __traceback__ = <traceback object>
    args = ("arguments did not match any overloaded call:\n  Q...int(QPoint): argument 1 has unexpected type 'int'",)
    with_traceback = <built-in method with_traceback of TypeError object>

The above is a description of an error in a Python program.  Here is
the original traceback:

Traceback (most recent call last):
  File "/tmp/.mount_krita-XEShiW/usr/share/krita/pykrita/mixer_slider_docker/color_slider.py", line 100, in paintEvent
    self.update_slider()
  File "/tmp/.mount_krita-XEShiW/usr/share/krita/pykrita/mixer_slider_docker/color_slider.py", line 92, in update_slider
    points = [QPoint(start_x, start_y),
TypeError: arguments did not match any overloaded call:
  QPoint(): too many arguments
  QPoint(int, int): argument 2 has unexpected type 'float'
  QPoint(QPoint): argument 1 has unexpected type 'int'
Comment 1 Halla Rempt 2023-04-27 07:22:14 UTC
That sounds like a problem caused by the update to Qt 5.15
Comment 2 Halla Rempt 2023-05-04 04:44:34 UTC
Fixed in 

commit 3a1ebd8a44981a45bb2ee6bf9b08224be17c942e (HEAD -> master, origin/master, origin/HEAD)
Author: Astrid Johannsen <ellejohara@gmail.com>
Date:   Thu May 4 01:26:23 2023 +0000

Thanks!