DebugClients/Python/DebugClientBase.py

branch
5_1_x
changeset 1472
cbaa32917694
parent 1306
2136f10a9110
child 1510
e75ecf2bd9dd
diff -r 8796ba2ba2ec -r cbaa32917694 DebugClients/Python/DebugClientBase.py
--- a/DebugClients/Python/DebugClientBase.py	Sun Nov 20 14:46:50 2011 +0100
+++ b/DebugClients/Python/DebugClientBase.py	Sun Nov 27 19:30:27 2011 +0100
@@ -1380,21 +1380,37 @@
                 else:
                     vlist = []
             else:
-                # format the dictionary found
-                if dictkeys is None:
-                    dictkeys = dict.keys()
+                qtVariable = False
+                if len(udict) > 0:
+                    if access:
+                        exec 'qvar = udict%s' % access
+                    # this has to be in line with VariablesViewer.indicators
+                    elif rvar and rvar[0][-2:] in ["[]", "()", "{}"]:
+                        exec 'qvar = udict["%s"][%s]' % (rvar[0][:-2], rvar[1])
+                    else:
+                        qvar = udict[var[-1]]
+                    qvtype = ("%s" % type(qvar))[1:-1].split()[1][1:-1]
+                    if qvtype.startswith("PyQt4"):
+                        qtVariable = True
+                
+                if qtVariable:
+                    vlist = self.__formatQt4Variable(qvar, qvtype)
                 else:
-                    # treatment for sequences and dictionaries
-                    if access:
-                        exec "dict = dict%s" % access
-                    else:
-                        dict = dict[dictkeys[0]]
-                    if isDict:
+                    # format the dictionary found
+                    if dictkeys is None:
                         dictkeys = dict.keys()
                     else:
-                        dictkeys = range(len(dict))
-                vlist = self.__formatVariablesList(dictkeys, dict, scope, filter, 
-                                                 formatSequences)
+                        # treatment for sequences and dictionaries
+                        if access:
+                            exec "dict = dict%s" % access
+                        else:
+                            dict = dict[dictkeys[0]]
+                        if isDict:
+                            dictkeys = dict.keys()
+                        else:
+                            dictkeys = range(len(dict))
+                    vlist = self.__formatVariablesList(dictkeys, dict, scope, filter, 
+                                                     formatSequences)
             varlist.extend(vlist)
         
             if obj is not None and not formatSequences:
@@ -1590,7 +1606,11 @@
                         if valtype == "classobj":
                             if ConfigVarTypeStrings.index('instance') in filter:
                                 continue
-                        elif ConfigVarTypeStrings.index('other') in filter:
+                        elif valtype == "sip.methoddescriptor":
+                            if ConfigVarTypeStrings.index('instance method') in filter:
+                                continue
+                        elif not valtype.startswith("PySide") and \
+                             ConfigVarTypeStrings.index('other') in filter:
                             continue
                     
                 try:

eric ide

mercurial