Repository navigation
FlowGraph 0.5.0
What's new in 0.5.0
Structs
Scripts can declare their own record types: My Script > Structs, then the fields in Details (name, type, default,
description).
- Make Point builds one from its fields, Break Point gives its fields, Set Point.X changes one field in place: the
struct of the variable, or of the array element, it is connected to. - A value, like an array: setting a variable or passing a struct to a function by value makes a copy.
- Fields of any type: numbers, strings, arrays, maps, the application's classes, other structs (a
Contactwith aHomethat
is aPoint). A struct can hold itself only through an array or a map (Children: array<Tree>). - Variables, local variables, function parameters and containers can be of a struct type (
array<Contact>). - Rename a struct or a field and every type and node that uses it follows; Find References lists them. A running script
that is changed keeps its values field by field. - The debugger shows the fields, and a watch reaches one (
People[0].Name). Examples/Scripts/contacts.flowshows them at work.
Bytes
bytes: raw data (the content of a file, a network message), one shared buffer that costs nothing to pass along.
byte: a number from 0 to 255 that works where an int does.- Nodes: Length, Byte At, Slice, Concat, Find, Starts With / Ends With; From Text / To Text (UTF-8; Valid says
whether the bytes were UTF-8), To Hex / From Hex, To Base64 / From Base64, To Array / Make Bytes (array<byte>). - Binary files: the FileSystem plugin has Read Bytes and Write Bytes.
Examples/Scripts/bytes.flowshows them.
The editor
- Snap to grid makes links straight. A node made from a dragged pin goes level with it, a node moved alone snaps to its link
when the link can be straight, and nodes moved together keep where they are to each other. - View > Full Screen (Shift+Alt+Enter).
- Parameters: the type, container and key of a function's inputs and outputs (and of a struct's fields) look like combo
boxes and open on one click. - The window keeps the layout of its docks. A maximized window got other dock sizes at every start.
- Details no longer shows a variable, function or struct after it was deleted.
- On Linux, a right click while a link was being dragged left a dashed link behind.
Other changes
- Map nodes: Set Entry and Get Entry are now Add and Get Item, like the array nodes (Add adds the key or changes its
value). Scripts made before keep working. flowno longer prints Execution Time after the script: the output is only what the script prints (the Now and
Seconds Since Start nodes measure time where a script needs it).- The texts are in the editor's 9 other languages (Persian reviewed, the others machine translations).
For plugin authors: the plugin interface changed (new kinds of values and types), so plugins built for 0.4 are refused (with
the reason): build them again against 0.5. Applications that use find_package(FlowGraph 0.4) ask for 0.5 now.
Downloads
- FlowGraph-0.5.0-windows-x64.zip:
flow,flowstudio(Qt included) and the SDK: headers, libraries and the CMake
package (find_package(FlowGraph):FlowGraph::Core,FlowGraph::ScriptEditor). Windows 10 or later, x64. - FlowGraph-0.5.0-linux-x64.tar.gz: the same for Linux x64. It runs on distributions with glibc 2.28 or newer:
RHEL / CentOS / Alma / Rocky 8 and 9, Debian 10, Ubuntu 20.04 and newer.flowstudiobrings its Qt; the system
needs the usual X11 libraries (for examplexcb-util-cursor/libxcb-cursor0,libxkbcommon-x11). - SHA256SUMS.txt: checksums of both.
Plugins are binary: build them against this release (the loader refuses a plugin made for another build, with the reason).
Licenses: the runtime (FlowGraphCore) and flow are MIT; the editor and flowstudio are GPL-3.0-only, as they are
built on KDDockWidgets (GPL). Qt is used under the LGPL-3.0. The texts are in each package (LICENSE, LICENSES/).
Full Changelog: v0.4.0...v0.5.0