paceholder / nodeeditor

Qt Node Editor. Dataflow programming framework
BSD 3-Clause "New" or "Revised" License
3.02k stars 809 forks source link

Grouped nodes & other planned features? #333

Closed isteelcx closed 1 year ago

isteelcx commented 1 year ago

image small nodes can be include to big nodes?

isteelcx commented 1 year ago
  1. Can you talk about your vision for the NodeEditor project? What features do you think you need to add?

  2. What basic functional attributes do you think a fully extensible node based editor should have?

paceholder commented 1 year ago

I am finishing up the version 3, curently writing the documentation.

For the largest features I still want to imlement I can name:

  1. Grouping as in your pictures above
  2. Experiment with the QML frontend and see how it goes.
  3. Python bindings (help needed).
  4. Custom painting. This is partially done. Now you can define your own NodeGeometry class and define positions of ports and labels. Additionally, there is an abstract class for NodePainter to do your own drawing. I think I need to make an example for this code and decide what is still missing.

Some minor things inspired from pull-requests for version 2:

  1. [done] Undo-redo.
  2. [done] Dynamic ports.
  3. [done] Headless mode.
  4. [done] Model-view approach, i.e. a single graph model defines the whole graph
  5. [in progress] Ctrl-D for inserting a duplicate of the selected object.
isteelcx commented 1 year ago

There are also some personal suggestions, if you feel wrong please don't mind!

In my opinion, the programming style shown by Qt source code can increase the beauty and readability of the code. Whether it is the naming of variables or the indentation of logical paragraphs, I believe this aspect can also improve the identification of your project.On the other hand, keeping the code style consistent with the Qt source code will also help promote your project, which may one day be widely used as a popular Qt module library.I have intercepted a piece of code in the Qt source code that can express my ideas! 图片

paceholder commented 1 year ago

I do not have any favorite code style -- the main thing is that the formatting stays consistent in all the files. Any help with the .clang-format config would be greatly appreciated. When it comes to coding, I usually spend time on implementing features and never get to making a formatting config.

I personally use the uncrustify formatter, it is not that widely accepted and doesn't seem to become an industry standard any time soon.

There were "contributors" who complained about my slow development and were diccussing making a hard fork and "finally do the work properly" -- I am still waiting for a promised clang-format file from them.

Daguerreo commented 1 year ago

I do not have any favorite code style -- the main thing is that the formatting stays consistent in all the files. Any help with the .clang-format config would be greatly appreciated. When it comes to coding, I usually spend time on implementing features and never get to making a formatting config.

I personally use the uncrustify formatter, it is not that widely accepted and doesn't seem to become an industry standard any time soon.

There were "contributors" who complained about my slow development and were diccussing making a hard fork and "finally do the work properly" -- I am still waiting for a promised clang-format file from them.

Hi @paceholder, do you have a preferred style or a standard one can be used? If you point out a set of rules I can make a MR for that.

Daguerreo commented 1 year ago

Clang-format standards in Qt Creator are LLVM, Google, Chromium, Mozilla, Webkit. Using one of these could be easier because follow a standard, it's easily modifyable but you should point out the rules then, at least for spacing, columns and parenthesis.

Clang-format checks can be added in CI pipelines in and effective way. I'm not used with Github Action since I'm using Gitlab for that, so I'm not able a MR for that too but I could provide a snippet for the job or a script.

isteelcx commented 1 year ago

when will you push your 3 version to master?

isteelcx commented 1 year ago

I do not have any favorite code style -- the main thing is that the formatting stays consistent in all the files. Any help with the .clang-format config would be greatly appreciated. When it comes to coding, I usually spend time on implementing features and never get to making a formatting config.

I personally use the uncrustify formatter, it is not that widely accepted and doesn't seem to become an industry standard any time soon.

There were "contributors" who complained about my slow development and were diccussing making a hard fork and "finally do the work properly" -- I am still waiting for a promised clang-format file from them.

https://wiki.qt.io/Qt_Coding_Style

paceholder commented 1 year ago

@Daguerreo I think it makes sense to stick to the Qt's formatting guidelines according to @isteelcx . It would be great if you could check the available configs. After following the @isteelcx links I found two files https://raw.githubusercontent.com/qt-creator/qt-creator/master/.clang-format https://code.qt.io/cgit/qt/qt5.git/tree/_clang-format

@isteelcx I hope I push this weekend. Maybe earlier if I finish the docs today

isteelcx commented 1 year ago

Thank you for your excellent work and share, I look forward to using your new push.

isteelcx commented 1 year ago

@paceholder Hi ,when will you push your new feature?

paceholder commented 1 year ago

It is merged

isteelcx commented 1 year ago

@paceholder It seems that you have a new goal to become the popular Qt node library. This project without major changes for a long time has finally started a new great journey, looking forward to your great innovation!

paceholder commented 1 year ago

@isteelcx image