-
-
Notifications
You must be signed in to change notification settings - Fork 108
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
Refactor drawing of elements: hide logic behind common interface #694
Closed
Commits on Apr 18, 2024
-
Extract "Ellips" primitive from a generic "Area"
Both ellipses and rectangles are drawn from a single object named "Area". Drawing logic looks from where it got the object: if it's from "rectangles" container, then draw a rectangle, otherwise draw an ellipse. This commit creates new "Ellips" object type, separate from "Area". It opens a way to: - hide a dedicated ellipsis rectangle drawing logic in a method associated only with "Ellips" objects - distinguish ellipses and rectangles not by their place of residence, but by their nature. The name "Ellips" without "e" at the end is used because "Ellipse" conflicts with a painting named that way, which is declared in the same namespace. I didn't want to go into any additional trouble and chose to go with this type of a "workaround"
Configuration menu - View commit details
-
Copy full SHA for b4f157e - Browse repository at this point
Copy the full SHA b4f157eView commit details -
Rename member "ellips" to "ellipses"
Some classes have members of container types, storing "Ellips" objects, i.e. ellipses. Just assigning a proper name.
Configuration menu - View commit details
-
Copy full SHA for 91470d3 - Browse repository at this point
Copy the full SHA 91470d3View commit details -
After extracting ellipse from "Area" to a separate class, "Area" means only a rectangle.
Configuration menu - View commit details
-
Copy full SHA for 532efff - Browse repository at this point
Copy the full SHA 532efffView commit details -
Add "DrawingPrimitive" interface and its implementation
The goals of this are - add a generic API for qucs::Line, qucs::Arc, qucs::Rect, qucs::Ellips - hide drawing details from clients. If you take a look at code now you'll see that drawing of for example a line in Component::paint looks like "take this coordinate, add this nubmer to it, and call a method of QPainter". Drawing logic is outside, it must be written every time you want to draw a line. New API provides a way to just invoke DrawingPrimitive::draw giving it a QPainter and be done with drawing.
Configuration menu - View commit details
-
Copy full SHA for ab4315b - Browse repository at this point
Copy the full SHA ab4315bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 490fb54 - Browse repository at this point
Copy the full SHA 490fb54View commit details
Commits on Apr 23, 2024
-
Configuration menu - View commit details
-
Copy full SHA for ee90626 - Browse repository at this point
Copy the full SHA ee90626View commit details -
Configuration menu - View commit details
-
Copy full SHA for ea02986 - Browse repository at this point
Copy the full SHA ea02986View commit details -
Configuration menu - View commit details
-
Copy full SHA for 85b364d - Browse repository at this point
Copy the full SHA 85b364dView commit details
Commits on May 1, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 33d6a41 - Browse repository at this point
Copy the full SHA 33d6a41View commit details
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.