✔ Tasks from June 28th 2022 #14
Replies: 13 comments 2 replies
-
As planned, I'm starting working on the proposed changes today. I'll start with a new branch to make Nodezator window resizable. Estimated time of implementation is one or two weeks for reasons already listed above. But who knows, it may be ready sooner than expected. Expect updates here every other day as the implementation progresses. Also remember that my work on the Indie Python project requires that I spend time not only on development, but also on maintaining the websites, posting about Nodezator on social media and other online communities, occasionally writing and producing videos, etc. I'll usually prioritize development work, though, because it is the project's activity that generates more values for the general audience and patrons. After all, quality tools and a great community are the pillars of any open source project. I wish you a great week! |
Beta Was this translation helpful? Give feedback.
-
While I really appreciate the ability to resize the main window (btw, I think that main reason for this feature request was need to go full-screen, not ability to resize to any size), it does not solve the problem with limited workspace / canvas for building node graphs. I see as very serious issue / limitation that it's not possible to create graphs that does not fit the window. This significantly limits the complexity of graphs one can make, especially when nodes have multiple input/output sockets (with widgets) that occupy serious amount of space on screen. This is certainly related to "window resize" feature, because what would nodezator do if one would create graph in full-screen and then resize to smaller window ? Right now, nodezator clips content that does not fit the screen. EDIT: I'm sorry, I've just discovered that WASD scrolling (available to scroll off-screen content in text views like node source) also works for main window. Which sort-off answers my concerns. However, it's not intuitive (and I didn't remember mentioned this in documentation either) as there are no cues that there is any content off-screen and in which direction is. For example next sequence:
|
Beta Was this translation helpful? Give feedback.
-
Hello, everyone, as I said, I would be providing some update here on the progress of these next branches every other day. The window resize feature implementation is going very smoothly. The only reason this implementation takes more time is the sheer amount of small adjustments I have to make in a lot of different modules. But apart from that the changes are relatively simple, though they usually require a lot of testing and fine-tuning. I'd also like the opportunity to make clear that though this feature will be super handy for everyone as it will allow everyone to increase the amount of screen used for node editing, those planning to work on super big screens (4k and higher) will probably not be able to use the full dimensions of their screen, as the app would not perform well on such dimensions. However, you'll still benefit, as you can still increase the amount of screen used. This is not a limitation exclusive to pygame, as 4k screens and higher are usually very resource intensive for any app. Also, I expect this limitation to be surpassed when we switch the Nodezator graphics backend to OpenGL some time in the future. That's all for now. Peace. |
Beta Was this translation helpful? Give feedback.
-
Reporting my work Resizable window implementation still going smoothly. In case some of you didn't know, you can observe the changes by comparing the master and resizable-window branches master...resizable-window. As I told you before, most changes are relatively small, but there are many (63 files changed so far), and they require testing/fine-tuning. I should be finishing and merging the changes in a few days. |
Beta Was this translation helpful? Give feedback.
-
Hello, everyone! Almost done with the resizable window feature! I actually finished it, I just want a bit of time for testing. I should merge with master and upload to pypi by tomorrow! ⏳ |
Beta Was this translation helpful? Give feedback.
-
Finally finished testing and debugging the resizable window feature! Just merged the resizable-window branch into master, pushed and uploaded the new Nodezator version to pypi! To install/upgrade to the new version, just execute pip3 install --upgrade nodezator This should make it easier to work with Nodezator in big screens, but remember that the larger the screen, the higher the impact on performance. If you plan to use Nodezator in 4K screens, be aware that you might not be able to use it efficiently at that size. Even so, you'll at least be able to make Nodezator bigger than the previously fixed 1280x720 size. There are still stuff that can be improved, but it is all aesthetics, I'll come back to it eventually. Functionally everything should be fine. If you find any bugs, please report. Thanks for the patience, it took a few days more than I thought it would (almost 03 weeks instead of the expected 02 weeks), but it was all due to my other tasks on the Indie Python project and solving last minute issues (like the one closed 02 days ago). The next change planned, as listed in the top of this discussion, is to make the title of data nodes editable. Data nodes represent variables you define within your node layout, so it is only natural that you should be able to name then as you see fit. |
Beta Was this translation helpful? Give feedback.
-
Though the resizable window feature is implemented, I realized I have to update the viewer nodes in the example node packs (the ones using pillow and matplotlib). This will still take me a couple of days, which is why I didn't implement the edition of data nodes' titles yet. Peace Edit: must also update the example code in the manual section teaching how to make viewer nodes (https://manual.nodezator.com/ch02-defining-viewer-nodes.html) |
Beta Was this translation helpful? Give feedback.
-
Finished updating the viewer nodes on the matplotlib and pillow examples yesterday. Now, they behave properly when resizing the window and I even added support for scrolling the visuals with the keyboard or by click-dragging with the mouse. Now I just need to finish updating the manual so it shows how to integrate window resizing when creating viewer nodes. Once this is done, I'll finally be able to make the title on data nodes editable and create a new discussion to plan which items from the list of planned/requested features should be implemented next. Peace |
Beta Was this translation helpful? Give feedback.
-
Finished updating the manual and already uploaded the new version to pypi. Updated the in-app version as well as the web version of the manual. Now the manual has a new chapter demonstrating how to define a more complex viewer node whose visualization adjusts when the window is resized and which allows the user to move it using both the keyboard and click-dragging with the mouse when the visualization gets bigger than the screen. Here's the link for the new chapter on the web version: https://manual.nodezator.com/ch-defining-complex-viewer-nodes.html Now, as I said before, I'll start working on making the title of data nodes editable, which should take a few days. |
Beta Was this translation helpful? Give feedback.
-
Update: since editing the data nodes' titles will require a context menu (a popup menu, by right-clicking), I decided to use the opportunity to implement context menus for the other objects in the graph as well, that is, the other kind of nodes and the text block as well. This will take a few more days anticipated, but is proceeding smoothly. Here's a preview of the context menus when right-clicking a text block in two different circumstances: when it is not part of a selection (left) and when it is part of a selection (right). |
Beta Was this translation helpful? Give feedback.
-
Hello, everyone, just released Nodezator 1.2 yesterday. The version is a lot friendlier than the past ones since objects in the graph now have context menus. You can finally edit the title of data nodes as promised. Also, operations on operator nodes can now be replaced very easily by simply picking the new operation on its context menu. That is, you don't need to delete the node, create a new one and reconnect the sockets anymore. Everything is performed automatically for you, as soon as you pick the new operation you want. All kinds of nodes now have context menus and the text blocks have as well. I just need to implement context menus for the sockets and maybe for the widgets, then we'll finally be able to schedule and start working the next features to be implemented. I attached a short video containing a quick demonstration of the new features. Thank you all for your patience. result.mp4 |
Beta Was this translation helpful? Give feedback.
-
Hello, everyone! All the listed changes were finally implemented. As I said before, I'll now check the pending issue and pull requests. After this I'll create a new discussion just like this one, where I'll propose, explain and gather feedback regarding the next planned/requested changes to be implemented. Thanks for your patience. |
Beta Was this translation helpful? Give feedback.
-
Forgot to close the discussion. Doing it now! Peace |
Beta Was this translation helpful? Give feedback.
-
Hello, everyone! Every time I'm about to dive into working on a new branch or couple of branches I'll create a discussion like this one with the following purposes:
Changes planned for the next branches to start on 2022-June-28:
thoughts on "make title of data nodes editable"
This should be a pretty quick implementation, since Nodezator already has all the utilities needed to implement this. I estimate it will take me 2 days to implement it; data nodes are used as variables within a node layout and it is very important and only natural that users can change their names.
thoughts on "make window resizable"
This change should take a bit more time, because it is more complex. I estimate it will take me a week or two, because it will require me to change the in-app editors to be able to correctly reposition according to the dimensions used and also alter some caching mechanisms for the window contents (which might result in more time needed to implement the future). I'll also may need to implement additional measures to ensure performance is kept at acceptable levels because the default pygame graphics back end (like most libraries) has to work more the bigger the window.
With this in mind, here's the behaviour I want to implement: allowing the user to click the "maximize window" so the window occupies the entire space on the screen. This is the ideal solution. If everything goes smoothly and we keep performance acceptable, we'll stick with this solution. Otherwise, I'll present a new approach and pursue it.
Your thoughts
Remember that I'll start to implement those changes on next June 28th. If you are ok with this, you don't need to do anything else (maybe a thumbs up, though?), but if you have anything to say, please share your thoughts so that we are on the same page.
Several users requested this feature, but Mr. Feng also started a issue requesting it (which I converted into a discussion since a feature request is not an issue). You can also take a look and comment on it if you want: #15
Other changes performed in addition to the planned ones:
Beta Was this translation helpful? Give feedback.
All reactions