aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2022-05-27 12:11:27 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-06-01 00:10:10 +0000
commit784d8b3284be6ab615e627143d21921a33013f10 (patch)
treee4297b1302301668eae0ed8739ee409bad9dcd99
parente08c5be425f21dc3b4109d0ca2dd5237aa2355b3 (diff)
qtpy2cpp: Add more operators
Task-number: PYSIDE-1945 Change-Id: I802ded1388918a8f5b72f8f9382a052e09e936ee Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit f684775146242b284eb890fd446179c925fa91f6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--tools/qtpy2cpp_lib/test_baseline/basic_test.py4
-rw-r--r--tools/qtpy2cpp_lib/visitor.py40
2 files changed, 42 insertions, 2 deletions
diff --git a/tools/qtpy2cpp_lib/test_baseline/basic_test.py b/tools/qtpy2cpp_lib/test_baseline/basic_test.py
index e5dc92f9f..4b2a2d431 100644
--- a/tools/qtpy2cpp_lib/test_baseline/basic_test.py
+++ b/tools/qtpy2cpp_lib/test_baseline/basic_test.py
@@ -31,6 +31,10 @@ a = 7
if a > 5:
for f in [1, 2]:
print(f)
+elif a == 2:
+ print(2)
+elif not a:
+ print(0)
else:
for i in range(5):
print(i)
diff --git a/tools/qtpy2cpp_lib/visitor.py b/tools/qtpy2cpp_lib/visitor.py
index bd5fce7a1..280bb51f4 100644
--- a/tools/qtpy2cpp_lib/visitor.py
+++ b/tools/qtpy2cpp_lib/visitor.py
@@ -125,6 +125,14 @@ class ConvertVisitor(ast.NodeVisitor, CppFormatter):
self.generic_visit(node)
self._output_file.write(')')
+ def visit_BitAnd(self, node):
+ self.generic_visit(node)
+ self._output_file.write(" & ")
+
+ def visit_BitOr(self, node):
+ self.generic_visit(node)
+ self._output_file.write(" | ")
+
def visit_Call(self, node):
self._output_file.write(format_start_function_call(node))
# Manually do visit(), skip the children of func
@@ -146,6 +154,10 @@ class ConvertVisitor(ast.NodeVisitor, CppFormatter):
self.indent_line('};')
del self._class_scope[-1]
+ def visit_Eq(self, node):
+ self.generic_visit(node)
+ self._output_file.write(" == ")
+
def visit_Expr(self, node):
self._output_file.write('\n')
self.INDENT()
@@ -154,7 +166,11 @@ class ConvertVisitor(ast.NodeVisitor, CppFormatter):
def visit_Gt(self, node):
self.generic_visit(node)
- self._output_file.write('>')
+ self._output_file.write(" > ")
+
+ def visit_GtE(self, node):
+ self.generic_visit(node)
+ self._output_file.write(" >= ")
def visit_For(self, node):
# Manually do visit() to get the indentation right.
@@ -209,9 +225,17 @@ class ConvertVisitor(ast.NodeVisitor, CppFormatter):
self.visit(el)
self._output_file.write('}')
+ def visit_LShift(self, node):
+ self.generic_visit(node)
+ self._output_file.write(" << ")
+
def visit_Lt(self, node):
self.generic_visit(node)
- self._output_file.write('<')
+ self._output_file.write(" < ")
+
+ def visit_LtE(self, node):
+ self.generic_visit(node)
+ self._output_file.write(" <= ")
def visit_Mult(self, node):
self.generic_visit(node)
@@ -230,10 +254,22 @@ class ConvertVisitor(ast.NodeVisitor, CppFormatter):
else:
self._output_file.write('true')
+ def visit_Not(self, node):
+ self.generic_visit(node)
+ self._output_file.write("!")
+
+ def visit_NotEq(self, node):
+ self.generic_visit(node)
+ self._output_file.write(" != ")
+
def visit_Num(self, node):
self.generic_visit(node)
self._output_file.write(format_literal(node))
+ def visit_RShift(self, node):
+ self.generic_visit(node)
+ self._output_file.write(" >> ")
+
def visit_Str(self, node):
self.generic_visit(node)
self._output_file.write(format_literal(node))