瀏覽代碼

Correctly handle empty AL references in internal renderer

Yentl Van Tendeloo 7 年之前
父節點
當前提交
8103c575ae
共有 3 個文件被更改,包括 8 次插入6 次删除
  1. 0 2
      classes/canvas/canvas_element.xml
  2. 4 1
      classes/window/main_window.xml
  3. 4 3
      frontend.py

+ 0 - 2
classes/canvas/canvas_element.xml

@@ -375,8 +375,6 @@
                                 try:
                                     v = json.loads(v)
                                 except:
-                                    print("WARNING: Could not decode attr value as JSON: " + v)
-                                    print("Attempting to send as string!")
                                     v = str(v)
                                 params = [current_model, self.as_element, k, v]
                     </script>

+ 4 - 1
classes/window/main_window.xml

@@ -1201,7 +1201,10 @@
                                             for key, value in attrs.items():
                                                 cs_elem_id = str(uuid.uuid4())
                                                 if isinstance(value, dict):
-                                                    text = "%s = ^%s" % (key, value['AL'])
+                                                    if value["AL"] == "":
+                                                        text = "(%s)" % key
+                                                    else:
+                                                        text = "%s = ^%s" % (key, value['AL'])
                                                 else:
                                                     text = ("%s = %s" % (key, value)) if value is not None else ("(%s)" % key)
                                                 self.rendered.append({"id": cs_elem_id, "type": "Text", "x": 10, "y": 25 + text_counter * 11, "text": text, "lineWidth": 3, "lineColour": "black", "layer": 2})

+ 4 - 3
frontend.py

@@ -6903,7 +6903,10 @@ class MainWindow(RuntimeClassBase, tk.Toplevel, SCCDWidget):
                 for key, value in attrs.items():
                     cs_elem_id = str(uuid.uuid4())
                     if isinstance(value, dict):
-                        text = "%s = ^%s" % (key, value['AL'])
+                        if value["AL"] == "":
+                            text = "(%s)" % key
+                        else:
+                            text = "%s = ^%s" % (key, value['AL'])
                     else:
                         text = ("%s = %s" % (key, value)) if value is not None else ("(%s)" % key)
                     self.rendered.append({"id": cs_elem_id, "type": "Text", "x": 10, "y": 25 + text_counter * 11, "text": text, "lineWidth": 3, "lineColour": "black", "layer": 2})
@@ -14983,8 +14986,6 @@ class CanvasElement(RuntimeClassBase, SCCDWidget):
                 try:
                     v = json.loads(v)
                 except:
-                    print("WARNING: Could not decode attr value as JSON: " + v)
-                    print("Attempting to send as string!")
                     v = str(v)
                 params = [current_model, self.as_element, k, v]
         self.big_step.outputEventOM(Event("broad_cast", None, [self, Event("mv_request", None, [op, params])]))