aboutsummaryrefslogtreecommitdiffstats
path: root/tools/qtpy2cpp_lib
diff options
context:
space:
mode:
Diffstat (limited to 'tools/qtpy2cpp_lib')
-rw-r--r--tools/qtpy2cpp_lib/formatter.py7
-rw-r--r--tools/qtpy2cpp_lib/visitor.py6
2 files changed, 10 insertions, 3 deletions
diff --git a/tools/qtpy2cpp_lib/formatter.py b/tools/qtpy2cpp_lib/formatter.py
index 07f733424..98ba3f095 100644
--- a/tools/qtpy2cpp_lib/formatter.py
+++ b/tools/qtpy2cpp_lib/formatter.py
@@ -120,18 +120,21 @@ def format_literal_list(l_node, enclosing='{'):
return result
-def format_member(attrib_node, qualifier='auto'):
+def format_member(attrib_node, qualifier_in='auto'):
"""Member access foo->member() is expressed as an attribute with
further nested Attributes/Names as value"""
n = attrib_node
result = ''
# Black magic: Guess '::' if name appears to be a class name
- if qualifier == 'auto':
+ qualifier = qualifier_in
+ if qualifier_in == 'auto':
qualifier = '::' if n.attr[0:1].isupper() else '->'
while isinstance(n, ast.Attribute):
result = n.attr if not result else n.attr + qualifier + result
n = n.value
if isinstance(n, ast.Name) and n.id != 'self':
+ if qualifier_in == 'auto' and n.id == "Qt": # Qt namespace
+ qualifier = "::"
result = n.id + qualifier + result
return result
diff --git a/tools/qtpy2cpp_lib/visitor.py b/tools/qtpy2cpp_lib/visitor.py
index 367d8679f..d45d79b9d 100644
--- a/tools/qtpy2cpp_lib/visitor.py
+++ b/tools/qtpy2cpp_lib/visitor.py
@@ -381,7 +381,11 @@ class ConvertVisitor(ast.NodeVisitor, CppFormatter):
def visit_Slice(self, node):
self._output_file.write("[")
- self.generic_visit(node)
+ if node.lower:
+ self.visit(node.lower)
+ self._output_file.write(":")
+ if node.upper:
+ self.visit(node.upper)
self._output_file.write("]")
def visit_Str(self, node):