@@ -1007,6 +1007,8 @@ def finishedSampling(self):
10071007 self .caller .centralWidget .tabWidget .setCurrentIndex (1 )
10081008
10091009 def findAncestor (self , ancestor , obj ):
1010+ if not hasattr (obj , 'parent' ): return False
1011+
10101012 parent = obj .parent ()
10111013 while True :
10121014 if not parent :
@@ -1110,6 +1112,7 @@ def __init__(self, caller):
11101112 self .tableModel = QStandardItemModel ()
11111113 self .proxyTableModel = QSortFilterProxyModel ()
11121114 self .proxyTableModel .setFilterCaseSensitivity ( Qt .CaseInsensitive )
1115+ self .proxyTableModel .setFilterKeyColumn (- 1 )
11131116 self .tableModel .setHorizontalHeaderLabels (['Name' , "Type" , 'Value' ])
11141117
11151118 self .proxyTableModel .setSourceModel (self .tableModel )
@@ -1323,7 +1326,7 @@ def getCode(self):
13231326 # break
13241327 #"""
13251328 elif statusbar :
1326- codeBase = "from krita import *\n \n qsbar = Krita.instance().activeWindow().qwindow().statusBar()\n "
1329+ codeBase = "from krita import *\n \n qsbar = Krita.instance().activeWindow().qwindow().statusBar()\n #warning: statusbar is often empty when no document is open \n "
13271330 onWidget = "qsbar"
13281331 path .pop ()
13291332
@@ -1404,7 +1407,7 @@ def searchTreeFilter(self, text):
14041407
14051408
14061409 def searchTableFilter (self , text ):
1407- self .proxyTableModel .setFilterFixedString (text )
1410+ self .proxyTableModel .setFilterWildcard (text )
14081411
14091412 def selectItemByRef (self , obj ):
14101413 pass
@@ -1485,6 +1488,15 @@ def loadItemInfo(self, obj):
14851488
14861489 inheritsFrom = []
14871490
1491+ otherMethods = {}
1492+
1493+ for k in dir (obj ):
1494+ if not k .startswith ('__' ):
1495+ objAttr = getattr (obj ,k )
1496+
1497+ if hasattr (objAttr ,'__name__' ):
1498+ otherMethods [objAttr .__name__ ] = True
1499+
14881500
14891501 while True :
14901502 for i in range (meta .propertyOffset (), meta .propertyCount (), 1 ):
@@ -1515,6 +1527,9 @@ def loadItemInfo(self, obj):
15151527 ptypes = meth .parameterTypes ()
15161528 className = None
15171529
1530+ if meth .name () in otherMethods :
1531+ del otherMethods [k ]
1532+
15181533 methName = str (meth .name (), 'utf-8' ) + "(" + str (b',' .join ( [ ptypes [i ]+ b" " + pnames [i ] for i in range (0 ,meth .parameterCount ()) ] ), 'utf-8' ) + ")"
15191534 if methName not in metaDict ['methods' ]:
15201535 methType = self .METHOD_ACCESS [int (meth .access ())] + " " + self .METHOD_TYPES [int (meth .methodType ())]
@@ -1562,7 +1577,7 @@ def loadItemInfo(self, obj):
15621577
15631578
15641579 parentItem .appendRow ([
1565- self .subheaderItem ("Methods " ),
1580+ self .subheaderItem ("Slots and Signals " ),
15661581 self .subheaderItem ("" ),
15671582 self .subheaderItem ("" )
15681583 ])
@@ -1577,6 +1592,28 @@ def loadItemInfo(self, obj):
15771592
15781593 parentItem .appendRow (item )
15791594
1595+ parentItem .appendRow ([
1596+ self .subheaderItem ("Methods" ),
1597+ self .subheaderItem ("" ),
1598+ self .subheaderItem ("" )
1599+ ])
1600+
1601+ for k in sorted (otherMethods .keys ()):
1602+ if not k .startswith ('__' ):
1603+ objDoc = getattr (obj ,k ).__doc__
1604+ if '(self' in objDoc :
1605+ objSig = objDoc .split (' -> ' )
1606+
1607+ item = [
1608+ QStandardItem ( objSig [0 ].replace ('(self, ' ,'(' ).replace ('(self)' ,'()' ) ),
1609+ QStandardItem ( 'Method' ),
1610+ QStandardItem ( objSig [1 ] if len (objSig ) > 1 else 'void' ),
1611+ ]
1612+
1613+ item [0 ].setData (meth , 101 )
1614+
1615+ parentItem .appendRow (item )
1616+
15801617 def subheaderItem (self , text ):
15811618 objectHeader = QStandardItem (text )
15821619 font = objectHeader .font ()
0 commit comments