From ad09e1b8e1ab7232023c05263c9cf377efc7d6c7 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Fri, 10 Jun 2022 10:14:20 +0200 Subject: qtpy2cpp: Qualify the Qt namespace with "::" instead of "->" Pick-to: 6.3 Task-number: PYSIDE-1945 Change-Id: I1be5386df81bd548a72b86dfee1474a6c8b941a2 Reviewed-by: Cristian Maureira-Fredes --- tools/qtpy2cpp_lib/formatter.py | 7 +++++-- tools/qtpy2cpp_lib/visitor.py | 6 +++++- 2 files changed, 10 insertions(+), 3 deletions(-) (limited to 'tools') 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): -- cgit v1.2.3