This plugin is used to draft designs for high bust rather than full
chest circumference. To facilitate that, we provide(d) a named export
called `withCondition` that checks whether the plugin is wanted, and if
so loads it.
Problem with that is that the conditional loading of a plugin applied
to the entire pattern. And since we support drafting patterns for
multiple sets (and use this to sample) this means that all of these sets
would either get the plugin effect or not, based on the first set.
So, to fix that, we have changed the lifecycle hook used by this plugin
to `preSetDraft` (from `preDraft`) and changed the `withCondition`
method to always return true.
This means that the plugin will always be loaded, and we have moved the
check that used to be in `withCondition` to the lifecycle hook.
In other words, this plugin will now always be loaded and will check for
each set whether it needs to do something.
This allows the conditionality to apply to each set in the pattern,
rather than to the entire pattern.
Note that conditionally loading plugins pattern-wide is still a valid
use-case. It just so happens that for this plugin, it was the wrong
approach.
- Added:
- core:
- Added the `Path.combine()` method
- The `Path.join()` method is now variadic
- The `Path.length()` now takes an parameter to include move operations in the length calculation
- lumina:
- Initial release
- lumira:
- Initial release
- plugin-annotations:
- The `title` macro now takes a `notes` and `classes.notes` as its config, allowing you to add notes
- The `classes.cutlist` config is removed from the title plugin, cutlist info is now included as notes
- plugin-i18n:
- This plugin now supports translation of nested arrays of strings, giving you more flexibility to concatenate translated parts of strings
- react-components:
- This Pattern component now supports translation of nested arrays of strings, giving you more flexibility to concatenate translated parts of strings
- sandy:
- Added a new *panels* option
- tristan:
- Inital release
- Deprecated:
- core:
- Calling `Path.join` with a second parameter to indicate that the resulting paths most be closed is now deprecated and will be removed in FreeSewing v4.
- Fixed:
- brian:
- Take biceps ease into account when calculating armhole depth
- carlton:
- Fixed a stray seam allowance path on the collar
- charlie:
- The back pocket welt (4) and front pocket facing (8) incorrectly indicated to cut 2 instead of 4 in the cutlist. Fixes#5791
- hugo:
- Fix issue that crashed the design when complete is off. Fixes#6006
- Base pocket opening on pocket height, rather than width of the garment. Fixes#6004
- Removed:
- plugin-annotations:
- The `classes.cutlist` config is removed from the title plugin, cutlist info is now included as notes
Shout-out to @woutervdub and @benjamesben for their many contributotions
to this v3.2 release 🙏
Originally, #5999 was filed to report issues with the sleeve on Jaeger
not responding to biceps ease as expected. Increasing the biceps ease
would actually make the sleeve more narrow.
Turns out, this is a side-effect of the way the armhole depth is
calculated in v3. We used to take the biceps measurement (and ease) for
that, but now we rely on the waist to armpit measurements.
In brain, we used this new measurements along with the
armholeDepthFactor option to locate the bottom of the armhole.
This means that when we change the biceps ease, nothing will change in
the briam armhole, which means the total sleevecap length target remains
unchanges.
However, in Jaeger, increased biceps ease causes a taller sleevecap, and
since the total target sleevecap length (inherited from Brian) remains
unchanged, the pattern accomodates by making the sleeve more narrow so
that the taller sleevecap has the same sleevecap length. This is what
results in the counterintuitive behavior where increasing the biceps
ease makes the sleevecap more narrow.
This resolves that by taking the biceps ease into account when
calculating the bottom of the armhole in Brian. As a result, changing
the biceps ease will impact the armhole on Brian, which will in turn
influence the target sleevecap length that Bent drafts a 2-part sleeve
for, and now things work as aspected.
Given that Brian is such a foundational block, making changes to it is a
high-stakes game, but I feel this is a bug, so we need to fix it.
Fixes#5999
The discussion in #5976 is whether `Path.join()` should use a line
segment to close any gaps in the path caused by move operations, or by
differences in the end and start points of paths being joined.
The answer is yes, that is the intended behaviour, but people who read
_join_ might expect differently.
So I have made a few changes to clarify this:
- The new `Path.combine()` method combines multiple path instances into
a single instance without making any changes to the drawing operations
- Since `Path.combine()` is variadic, I have also updated `Path.join()`
to be variadic too, since that is more consistent.
- The old way of calling `Path.join(path, bool)` is deprecated and will
log a warning. Calling `Path.join()` this way will be removed in v4.
- Related to this change is how `Path.length()` should behave when there
are gaps in the path. Currently, it skips those. So I've added a
parameter that when set to `true` will include them.
- Added documentation for `Path.combine()`
- Updated documentation for `Path.join()`
- Updated documentation for `Path.length()`
This started out as a fix for #5753 after I felt the approach in #5760
was not the best way to handle this.
The problem lies in the way the cutlist data is added to the pattern by
the title plugin. The whole cutlist thing was added by a less
experienced contributor, and they were a little too focussed on what
they were trying to accomplish, rather than keeping an eye on the big
picture.
In this case, a bunch of points get added to the part to anchor all of
the text for the cutlist. This causes problems when inheriting parts
because points are added per material, and now we don't know what
materials were used and how to remove these points.
I appreciate @woutervdub effort to resolve this in #5760 but as I
mentioned above, I don't love the approach.
Rather than finding a clever way to remove these points, I am of the
opinion that they should never have been added in the first place.
Specifically, all we are doing is adding one or more lines of text. The
idea that you need multiple points for this is an incorrect assumption,
and therein lies the root of this problem.
So, this refactor adds support to the title macro for 'notes'. These
notes will be added below the title. The cutlist info is now just
prepended to the notes. So it stops being something 'special' (which it
never should have been) and instead just behaves like other text that is
placed on the part by the title macro.
The only flanking measure required to make this happen was to add
support for nested arrays in handling text.
This way, you can pass a nested array to concatenate strings in such a
way that each part will still be individually translated.
And as all text in FreeSewing, to force a linebreak, you just use "\n"
as The Dark Lord intended.
This reverts commit f9de3f6990.
In doing so, this rescues the naomiwu design which was removed on
purpose from one branch, but then that removal commit accidentally got
merged in the branch where it was being kept.
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Added IDs to dimension macros that missed them, causing them to not be shown
- Keep seam allowance out of the binding length calculation
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Corrected part mixup in translation of flag message
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Fixed wrong use of options in a value method. Fixes
- Remove names from old plugins from list option
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- The skirt and curved waistband are now constructed with the ringsector macro
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Replaced all instances of 'seperate' with 'separate' in option names
- Initial release
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Changed defaults to have more rise in the back
- Increase default rise
- Decrease default vertical stretch
- Decreased default back waist dip
- Increased default front waist dip
- Allowed lower values on back exposure, causing back to flare out
- Fix issue with back part when bulge is on and expand is off
- Pocket opening was not drawn on the facing and pocket pieces. Fixes
- Improve placement of the front welt. Fixes
- Rephrased flag message when expand is off to avoid confusion about included seam allowance. Fixes
- Initial release
- Added support for notes in flags
- Removing macros did not always remove the cutlist data in the store. Fixes
- First release of the plugin providing the default packing implementation
- First release of the plugin facilitating drafting a ring sector
- Allow plugins to provide their own packing implementation
- Added named export `cbqc` which exports the constant to approximate a circle with Cubic Bézier curves
- Core will now set `activeMacro` in the store, keeping track of the running macro - Added the `generateMacroIds`, `getMacroIds`, and `removeMacroNodes` store methods
- Fix order in mergeOptions method so user settings take precendence over defaults
- Fix upward snap for snapped percentage option when snap is a simple number
- The conditional loading of plugins had a bug causing them to never be loaded
- Make Path.split() more robust when handling edge-case. Fixes
- Prevent utils.circlesIntersect() from running sqrt on a negative number. Fixes
- Removed unwanted debug output