-
-
Notifications
You must be signed in to change notification settings - Fork 9
Developer Guide
The Application is written using Python3 and the PySide6 (Qt) UI libary.
Before running the application make sure PySide6 is installed. (pip install pyside6)
New features, bugfixes and translations should be developed on separate branches.
Note: The repo uses "Squash and Merge" on Pull Requests, so the number on commits on a development branch does not affect the resulting Commit on master. Feel free to change/revise committed implementations as much as you like.
All texts that are visible in the UI should be translated. If you add a new text element use the Traduction.get_trad(key, value) method to get the displayed text and add corresponding translation keys to the language specific json files in assests/models/*.json instead of hard coding the text string.
Please Note: While you are not required to translate all texts you've added into all languages please add the key in assets/models/en.json and create a translation issue after your PR has been merged.
A standard node consits of a node_type, category, label and description. To create a new node the folling points have to be kept in mind:
- The
node_typeandlabelmust be the same in@register_node()andsuper().__init__() - A node class must ultimatily be derivied from
BaseNode(e.g. math operation inherits fromMathNodewhich inherits fromBaseNode) - Each type of node should have a distinct color (exeception: same functionalliy but diffent Port Types (e.g. equals))
- Each Port should have a tooltip
@register_node("string_constant", category="Constants", label="String Constant", description="Represents a string constant value")
class StringConstantNode(BaseNode):
def __init__(self):
super().__init__("string_constant", "String Constant", "#BDC3C7")
self.add_output("Value", PortType.STRING, "String value")
self.properties["value"] = ""
def emit_bash_value(self, context: BashContext) -> str:
return f'"{self.properties.get("value", "")}"'