yes, thanks!
One remark: once the button is in checked state, selecting another item in treeview works, the selected item in treeview is highlighted in UI.
But if you switch to inspector tab and select another item from inspector, the button is not checked anymore…
I think it would be better if the state stay persistent, let the user decide to check/uncheck it.
Also, I got an error when I’ve selected an action:
AttributeError
Python 3.8.1: /usr/bin/python3
Mon Nov 1 10:20:35 2021
A problem occurred in a Python script. Here is the sequence of
function calls leading up to the error, in the order they occurred.
/home/grum/.local/share/krita/pykrita/PluginDevTools/PluginDevToolsDocker.py in itemSelectionChanged(self=<PluginDevTools.PluginDevToolsDocker.PluginDevToolsDocker.PluginDevToolsInspector object>, new=<PyQt5.QtCore.QItemSelection object>, old=<PyQt5.QtCore.QItemSelection object>)
1378 indexes = new.indexes()
1379 if indexes:
1380 self.loadItemInfo( indexes[0].data(101) )
1381
1382 def loadItemInfo(self, obj):
self = <PluginDevTools.PluginDevToolsDocker.PluginDevToolsDocker.PluginDevToolsInspector object>
self.loadItemInfo = <bound method PluginDevToolsDocker.PluginDevTool...inDevToolsDocker.PluginDevToolsInspector object>>
indexes = [<PyQt5.QtCore.QModelIndex object>, <PyQt5.QtCore.QModelIndex object>, <PyQt5.QtCore.QModelIndex object>, <PyQt5.QtCore.QModelIndex object>, <PyQt5.QtCore.QModelIndex object>]
].data undefined
/home/grum/.local/share/krita/pykrita/PluginDevTools/PluginDevToolsDocker.py in loadItemInfo(self=<PluginDevTools.PluginDevToolsDocker.PluginDevToolsDocker.PluginDevToolsInspector object>, obj=<PyQt5.QtWidgets.QAction object>)
1387
1388 if self.showCurrentWidgetHighlight:
1389 self.caller.t['selector'].setCurrentSelector(self.currentWidget, False)
1390
1391 self.tableModel.clear()
self = <PluginDevTools.PluginDevToolsDocker.PluginDevToolsDocker.PluginDevToolsInspector object>
self.caller = <PluginDevTools.PluginDevToolsDocker.PluginDevToolsDocker object>
self.caller.t = {'actions': <PluginDevTools.PluginDevToolsDocker.PluginDevToolsDocker.PluginDevToolsActions object>, 'console': <PluginDevTools.PluginDevToolsDocker.PluginDevToolsDocker.PluginDevToolsConsole object>, 'icons': <PluginDevTools.PluginDevToolsDocker.PluginDevToolsDocker.PluginDevToolsIcons object>, 'inspector': <PluginDevTools.PluginDevToolsDocker.PluginDevToolsDocker.PluginDevToolsInspector object>, 'kritaapi': <PluginDevTools.PluginDevToolsDocker.PluginDevToolsDocker.PluginDevToolsKritaAPI object>, 'selector': <PluginDevTools.PluginDevToolsDocker.PluginDevToolsDocker.PluginDevToolsSelector object>, 'welcome': <PluginDevTools.PluginDevToolsDocker.PluginDevToolsDocker.PluginDevToolsWelcome object>}
].setCurrentSelector undefined
self.currentWidget = <PyQt5.QtWidgets.QAction object>
/home/grum/.local/share/krita/pykrita/PluginDevTools/PluginDevToolsDocker.py in setCurrentSelector(self=<PluginDevTools.PluginDevToolsDocker.PluginDevToolsDocker.PluginDevToolsSelector object>, obj=<PyQt5.QtWidgets.QAction object>, localCall=False)
1028 obj.update()
1029
1030 rect = obj.geometry()
1031
1032 if obj.metaObject().superClass().className() == 'QLayout' or obj.metaObject().superClass().className() == 'QBoxLayout':
rect undefined
obj = <PyQt5.QtWidgets.QAction object>
obj.geometry undefined
AttributeError: 'QAction' object has no attribute 'geometry'
__cause__ = None
__class__ = <class 'AttributeError'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of AttributeError object>
__dict__ = {}
__dir__ = <built-in method __dir__ of AttributeError object>
__doc__ = 'Attribute not found.'
__eq__ = <method-wrapper '__eq__' of AttributeError object>
__format__ = <built-in method __format__ of AttributeError object>
__ge__ = <method-wrapper '__ge__' of AttributeError object>
__getattribute__ = <method-wrapper '__getattribute__' of AttributeError object>
__gt__ = <method-wrapper '__gt__' of AttributeError object>
__hash__ = <method-wrapper '__hash__' of AttributeError object>
__init__ = <method-wrapper '__init__' of AttributeError object>
__init_subclass__ = <built-in method __init_subclass__ of type object>
__le__ = <method-wrapper '__le__' of AttributeError object>
__lt__ = <method-wrapper '__lt__' of AttributeError object>
__ne__ = <method-wrapper '__ne__' of AttributeError object>
__new__ = <built-in method __new__ of type object>
__reduce__ = <built-in method __reduce__ of AttributeError object>
__reduce_ex__ = <built-in method __reduce_ex__ of AttributeError object>
__repr__ = <method-wrapper '__repr__' of AttributeError object>
__setattr__ = <method-wrapper '__setattr__' of AttributeError object>
__setstate__ = <built-in method __setstate__ of AttributeError object>
__sizeof__ = <built-in method __sizeof__ of AttributeError object>
__str__ = <method-wrapper '__str__' of AttributeError object>
__subclasshook__ = <built-in method __subclasshook__ of type object>
__suppress_context__ = False
__traceback__ = <traceback object>
args = ("'QAction' object has no attribute 'geometry'",)
with_traceback = <built-in method with_traceback of AttributeError object>
The above is a description of an error in a Python program. Here is
the original traceback:
Traceback (most recent call last):
File "/home/grum/.local/share/krita/pykrita/PluginDevTools/PluginDevToolsDocker.py", line 1380, in itemSelectionChanged
self.loadItemInfo( indexes[0].data(101) )
File "/home/grum/.local/share/krita/pykrita/PluginDevTools/PluginDevToolsDocker.py", line 1389, in loadItemInfo
self.caller.t['selector'].setCurrentSelector(self.currentWidget, False)
File "/home/grum/.local/share/krita/pykrita/PluginDevTools/PluginDevToolsDocker.py", line 1030, in setCurrentSelector
rect = obj.geometry()
AttributeError: 'QAction' object has no attribute 'geometry'
But it seems it’s not reproducible in all case: I’m not able to reproduce it and don’t really remember what I did to get this ![]()
Now, it seems as soon as I select a QAction in inspector, the error message is displayed
Grum999
