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

Core infrastructure rework & Implement group and gradient tags #799

Merged
merged 1 commit into from
Jul 22, 2024

Conversation

MewPurPur
Copy link
Owner

@MewPurPur MewPurPur commented Jul 3, 2024

This isn't close to being done, but now is a decent time to post it.

The bulk of this is a rework to how GodSVG's core infrastructure works, though there are some additional functionalities I got onto while doing this stuff.

  • AppInfo.gd is now app_info.json (as it's advantageous to have this be easily fetched from other places, like the GodSVG website)
  • Issue templates on Github are now .yaml for a better experience
  • Implemented "g", "linearGradient", "radialGradient" tags (Resolves Support <linarGradient> natively #56, Resolves Support the <g> tag natively #434)
  • DB now holds the propagatability of all known attributes.
  • Tags now correctly consider the attribute defaults established by the <svg> tag and underlying <g> tags
  • Tags now correctly calculate the accumulated transform from underlying <g> tags
  • Tags now hold their own defaults for non-propagatable attributes (as this is an important aspect of the SVG spec). This is necessary to make some attributes with "auto" values not misleading
  • DB now holds the types of all known attributes, so that even in unknown tags, they can give utilities (e.g. fill inside a <polygon> tag will now be recognized as a color attribute)
  • Added TagRoot for the root svg, and TagSVG which may in the future be used for nested SVGs
  • TagRoot no longer needs to self-replace on unknown changes, now the SVG singleton emits the same signals and can be connected to reliably
  • Added functionality for tag configuration warnings (e.g. <stop> tags show a configuration warning when placed under anything other than a gradient)
  • Added functionality for shape bounding boxes, will be useful in the future for transformation gizmos and maybe other things
  • Added XNode class that Tag inherits from, will be useful in the future to avoid destroying other XML nodes (i.e. comment, CDATA, text)
  • Implemented attributes of type ID and a corresponding field
  • Implemented rudimentary pretty formatting. Sorry for taking so long - I wanted to do it better than this, but I hope having it be just a checkbox without any configurability will be fine for now
  • Tweaked some colors. Changed yellow movement indicators to green, to indicate when the operation is right. Orange might be used in the future for invalid operations (e.g., moving a <stop> tag under something that's not a gradient)
  • Used the new "Swatch" theme variation for the fake swatch in the palette editor
  • Adds a SHORTCUTS_CHANGED notification (Supersedes Add new strings to GodSVG.pot in advance of global menu PR #671)
  • Fixes to the order of drawing in the viewport
  • Import Warnings dialog no longer repeats itself
  • Added completion percentage to the Language button
  • Changed all of the app's icons to consistently use width and height and no viewBox
  • Added autoformatting setting for not applying autoformatting to pathdata and transform list attributes. Of course, it only holds for typing them out
  • Attributes of the root tag are now added to the UI
  • Implemented a setting for window title scheme. When I record GodSVG, the window titles would throw off OBS, so at least to me, this will be useful
  • Fixes Focusing the elliptical arc radius parameter field when it's negative changes it #801
  • Reworked UndoRedo system to be more robust
  • Made tag conversion more reliable
  • Renamed tags to elements
  • Added support for percentages

@MewPurPur MewPurPur force-pushed the grand-redesign branch 7 times, most recently from 120b88b to 5cd4fa1 Compare July 11, 2024 17:27
@MewPurPur MewPurPur force-pushed the grand-redesign branch 13 times, most recently from d31cf81 to ef203ba Compare July 15, 2024 20:47
@Qainguin
Copy link
Contributor

I just downloaded the Action run for Windows and it just crashes on launch. I already cleared all saved files in the appdata folder.

@MewPurPur
Copy link
Owner Author

MewPurPur commented Jul 17, 2024

There's more work to be done, can't guarantee that this is stable until I merge it (or even after, I expect some regressions)

Nonetheless thanks for testing! If you know how to run it through a console and get the error message from there, it'd be really helpful. I'll test your setup in a bit.

Edit: I solved some crashes, but I can't reproduce your situation on my Linux...

@MewPurPur MewPurPur force-pushed the grand-redesign branch 8 times, most recently from 16828aa to 4c94c62 Compare July 19, 2024 20:45
@MewPurPur MewPurPur force-pushed the grand-redesign branch 4 times, most recently from 1c7f8bc to f2ec956 Compare July 21, 2024 12:19
@MewPurPur MewPurPur marked this pull request as ready for review July 21, 2024 12:19
@MewPurPur MewPurPur force-pushed the grand-redesign branch 7 times, most recently from 8df868f to 403e501 Compare July 21, 2024 16:50
@MewPurPur
Copy link
Owner Author

@Qainguin The PR is more stable now, I'll be doing more testing over the next week before pushing. Could you check again?

@MewPurPur MewPurPur force-pushed the grand-redesign branch 10 times, most recently from 9dd1566 to 8612362 Compare July 22, 2024 13:28
@MewPurPur
Copy link
Owner Author

MewPurPur commented Jul 22, 2024

Enough testing for now, I've fixed all major regressions that were found.

@MewPurPur MewPurPur merged commit 7ddd7dc into main Jul 22, 2024
2 checks passed
@MewPurPur MewPurPur deleted the grand-redesign branch July 22, 2024 14:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants