-
Notifications
You must be signed in to change notification settings - Fork 917
Add Node Processing Status feature #494
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Integrate upstream
…-from-nodedelegatemodel Add UI update signal
|
It seems OK to merge. |
Llcoolsouder
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@tatatupi
Seems mostly fine to me. A few probing questions:
- Am I correct that this only applies to the DataFlow use-case; not the straight abstract graph classes?
- Can the icon be disabled if we don't want it to show?
- Can the icons be configured to match an end user's theme more closely?
| Empty = 4, /// | ||
| Failed = 5, /// | ||
| Partial = 6, /// | ||
| }; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe some use-cases or a short comment could help others?
What is the difference between NoStatus and Empty?
Between Processing and Partial?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The short comments have been added. Thanks for the suggestion!
NoStatus indicates the absence of a processing status for the node in the UI. Empty means that there is no valid input data and therefore nothing to compute.
Processing means that processing is in progress. Partial means that the computation was finished incompletely and only partial results are available.
src/DefaultNodePainter.cpp
Outdated
| QSize size = geometry.size(nodeId); | ||
|
|
||
| QIcon icon = ngo.processingStatusIcon(); | ||
| QSize iconSize(16, 16); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the demo/preview animation the icons were quite pixelized. Would it help to generate a slightly higher-resolution bitmap? Like 64x64, for example
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For resizable nodes we draw a dot approximately in the same corner of the node. What happens if we use both features at the same time?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The 64x64 bitmap resolution is now applied. Thanks for the suggestion!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Llcoolsouder, it is now possible to configure the icon theme, changing the size, margin, bitmap resolution, and also the image. Here's an example:
QtNodes::ProcessingIconStyle style;
style._margin = 4.0;
style._pos = QtNodes::ProcessingIconPos::BottomLeft;
style._size = 10.0;
setStatusIconStyle(style);
QPixmap pixmap(32, 32);
pixmap.fill(QColor("red"));
setStatusIcon(QtNodes::NodeProcessingStatus::Updated, pixmap);
paceholder
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some questions in the review need explanation. Thanks for this feature, looks cool.
|

Type of change
Description
Node Processing Status is a feature that allows the user to track the processing steps taking place on a node. The gif below illustrates this with the Random Number node, created as an example of this functionality:
The dynamic icons that appear on the lower right side of the node demonstrate the processing scheme: the first icon (empty icon) demonstrates that there are empty entries in the node; the second icon (processing icon) shows that processing is taking place within the node; the third (updated icon) shows that processing has completed and the node has been updated.
Other icons are also present in the feature's schematic:
Testing