-
Notifications
You must be signed in to change notification settings - Fork 19
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
Code organisation #10
Comments
Has this been done? |
I think we are now pretty consistently using the Model/View model. We don't have a model yet that describes a 'Proof', which would be something like a sequence of rewrite steps I guess? |
I think the stuff described here has now been done, so we could close this issue. Or keep it open as a reference for how stuff should be done in the future? |
It's better to close this issue and move the code organization information to somewhere more accessible. How about in the readme? |
I think the standard for open source is to have a CONTRIBUTORS file or something like that. The README is just for people wanting to use the code, not develop it. |
I have now added a CONTRIBUTING.md file which contains the information from this issue that is still relevant. So we can close this now. |
Currently, most of the brains of ZX live are in
rules.py
, which contains a mix of graph editing code and graph rewrite rules and inMainWindow.__init__
. I think this organisation could be improved.Here are my suggestions:
GraphEditPanel
for now which just does GUI graph editing (no ZX rules), with the idea that we'll add aProofPanel
later for rewrite. These can extendQWidget
and be added to the mainwindow in aQTabWidget
GraphEditPanel
should maintain its own undo stack (I'll make a separate issue about undo)It might be worth breaking some of these into separate issues, but I think it's useful to have some design principles in one place. Feel free to comment here or on discord to discuss.
The text was updated successfully, but these errors were encountered: