Skip to content
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

Small feature requests #8

Closed
JNmpi opened this issue Jul 21, 2022 · 6 comments
Closed

Small feature requests #8

JNmpi opened this issue Jul 21, 2022 · 6 comments
Assignees
Labels
feature request request partner of "enhancement"

Comments

@JNmpi
Copy link
Contributor

JNmpi commented Jul 21, 2022

A few ideas about features to enhance pyironflow and improve user friendliness:

  • use different colors for the exec and data connectors (both for input and output) More colour control #13
  • make dot on exec input clickable (i.e., rather than connecting it with a click button one can directly activate the node/workflow by clicking on the exec input)
    • This is largely done in Displaying nodes #33, for all things like Plot3d and similar. For actual jobs that run, you still need the click button, but I think job management needs more thought anyhow. Ok, I thought more and I want to "uncomplete" this request. Push-button execution should be reasonable for "exec"y ports as well as "display"y ports. Will do it later.
    • Completed in Exec button #49. We can have multiple exec input ports, so for now I'm just using one for each function, e.g. one to run a job and one to delete it.
  • a click on the node shows its content (gui) but makes it also moveable. It would be good to have to separate events, e.g. clicking enter to show the nodes gui when the mouse pointer is over it Mostly in Just one usage mode #15, which changes the feel quite a bit overall. Keyboard is totally ignored now, so no using "enter" with a hovering mouse.
  • sort node list alphabetically Sort selection keys #11
  • make nodes resizable (by using mouse pointer or based on content) Free-form resizing is pretty tough, but nodes now automatically size their height based on how many IO ports they have, and are collapse-/expandable to compress/show this IO over in Collapsable input #41
  • put static output (e.g. matplotlib, pandas tables, etc. ) directly into node Currently declined, see comment below
  • allow also touch devices (e.g. IPad), i.e., next to mouse events also the equivalent touch events should be supported This shouldn't be too hard, but for practical reasons it will take a while to get to, so I made a separate issue for it: Touch support #47
  • use Tab widget from ipywidgets to manage multiple scripts (could be similar in look and feel to browser tabs) Multiple scripts #26; I'm not totally happy with all the button icons, but I'm having trouble getting the ones I want to render...these are good enough for now though. The "+" (i.e. new script) tab is wider than it should be, but this is a known ipywidgets issue and doesn't seem to be fixable from the python side.
  • include node editor (allows users to interactively develop and test new nodes within ironflow, without forcing them to switch environment and use an external code editor) Notebook nodes #14, at least to the extent that all the tools are now available to write new node classes wherever the gui is being called from (e.g. the jupyter notebook) and then gui.register_user_node(MyUserNodeClass) makes them immediately available in the gui.
@JNmpi JNmpi added the enhancement New feature; can be answer partner of "feature request" label Jul 21, 2022
@liamhuber
Copy link
Member

liamhuber commented Jul 22, 2022

[REMOVED: just directly edited the head comment instead of commenting separately.]

@liamhuber
Copy link
Member

liamhuber commented Aug 2, 2022

I'd like to co-opt this thread for all smaller feature requests. Here are a couple more:

@liamhuber liamhuber changed the title Feature request Small feature requests Aug 2, 2022
@JNmpi
Copy link
Contributor Author

JNmpi commented Aug 9, 2022

I played a bit with the latest version (branch: multiple_scripts). I realy like the new look and feel! A few small suggestions:

  • I really like the feature to rename the script name. It would be nice to accept the new name not only by pushing the corresponding button but also by hitting Enter. More text input #28

  • It would be also nice to have a similar feature for loading/saving the session, i.e., as with the script an extra line pops up More text input #28

  • When working with bulkstructure, repeat and plot3d the latter is not always updated when changing the repeat value (even if I use a click button to activate plot3d). In the previous versions I did not experience this issue. I couldn't exactly replicate this behaviour, but anyhow the plots update much more aggressively since Automatically replot #30

@liamhuber
Copy link
Member

  • When working with bulkstructure, repeat and plot3d the latter is not always updated when changing the repeat value (even if I use a click button to activate plot3d). In the previous versions I did not experience this issue.

Yikes! TBH, I didn't get the the nglview widget set up in lab yet (until recently I was a notebook user), so I didn't even notice! Definitely an undesirable bug 🐛

@liamhuber
Copy link
Member

-put static output (e.g. matplotlib, pandas tables, etc. ) directly into node

Having learned more about the libraries we depend on, I don't think this is going to be very practical. IMO the crux of the issue is that ipycanvas doesn't allow for easy rescaling of objects, so having something like a zoom function in the main canvas area would be absolute hell to implement. As a result, we'll want to keep the actual nodes fairly compact. I do think we can get away with one of the other request about resizing nodes, at least so far as they have "expanded" and "compact" views... but I think trying to squeeze in an entire array or plot is overkill, even for the "expanded" view.

Hopefully this request is largely moot anyhow. As of #33, the default behaviour for pyiron nodes is to have a "display" button that takes over one of the other GUI windows with a much larger representation of the object (e.g. an NGLView plot for structures, a string for arrays, etc.) So this data is (or can be) available without having to add extra display nodes now.

@liamhuber liamhuber added feature request request partner of "enhancement" and removed enhancement New feature; can be answer partner of "feature request" labels Sep 8, 2022
@liamhuber
Copy link
Member

These are now all complete except for supporting touch screens and building macros (which have their own issues #47 #46) 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request request partner of "enhancement"
Projects
None yet
Development

No branches or pull requests

3 participants