We want solvespace to dynamically link with only one OpenGL library at a
time, in particular the one that ships with MacOS. For this we use macOS
frameworks, and pass the appropriate flag to the linker.
We should not use default cmake logic for finding openGL, since it seems
to find the wrong version of libGL, that may have been installed by some
other package at some point.
Fix a bug in the `Split` function that would drop a single character
directory name at the end of the path.
Because of the above bug when a directory containing an assembly file had
a name with only one character, the assembly file was saved incorrectly and
the path to the linked files was invalid.
For example if `assembly.slvs` was located in a directory called `a` and
links `subpart.slvs` in the same directory this would result in:
Group.impFileRel=a\subpart.slvs
Which resulted in the linked part not being found when opening next time.
Fixes: #1347
The `Join` method that merges paths used to return an empty path when
either of the paths was empty. This caused problems when opening files
with linked/assembled groups when the current path was relative - for
example when SolveSpace was ran from the command line with a drawing
files (in the same directory) as a parameter e.g. `solvespace assemby.slvs`.
See https://github.com/solvespace/solvespace/pull/1194 for detailed
discussion.
Fixes: #1292
To avoid unnecessary/annoying copies of images added in 2d sketches if they
are marked "construction" they will not be copied when creating solids.
Fixes: #1418
Before marquee selection worked by checking whether the Axis Aligned
Bounding Box of an entity and the selection marquee overlap. This selects
(slanted) line segments even though the marquee did not "touch" them.
To fix this for line segments actually check that the selection marque
intersects the line segment.
...by fixing the logic in KeepRegion() to properly keep/discard
regions where two surfaces coincide.
Now difference works as well as intersection in this respect.
Change inSame to coincSame for clarity.
macOS SolveSpace has the Help menu but it lacks the About menu item in it and instead the way to find the SolveSpace version is to go to SolveSpace > About SolveSpace. This PR updates the issue template to show that.
I have also replaced the `...` with an ellipsis (`…`) as it IMO looks better (can revert this if it doesn't match the menu item on Windows/Linux) and updated the example version to the current SolveSpace version.
Many desktop programs use this shortcut for the "Save As" dialog,
so it makes sense to add it here so that different variants of parts
can be quickly created.
- French (fr_FR): updated by @progval
- Czech (cs_CZ): updated by @strzinek
- Turkish (tr_TR): updated by @mhalil
- German (de_DE): small update from @rurban
- All other languages: changed messages will revert to English until updated.
This fixes#1320. The root cause for the avalanche of
messages is due to how the refresh timer system calls GenerateAll. When
GenerateAll is called by Refresh, if a Message occurs, that Message will
block GenerateAll. It _doesn't_ block subsequent calls from the timer to
Refresh (presumably from a separate thread). Because the
"scheduledGenerateAll" flag is not cleared until after the generation is
unblocked, each following refresh triggers another call to GenerateAll.
By reversing the flag clear and call, it breaks the cycle. I don't think
this matters for scheduledShowTW, but I updated it as well.
SS rotates the model when middle button dragging while some users expect
this operation to rotate the camera where left-right and up-down directions are
reversed instead. This adds that option.
Make the `TriStateButton` class "universal" and use it in place of the
`OccludedLinesButton` class which is now removed.
Fix the tool-tips on the constraint button to show what will come instead
of what is - just like the the occluded lines button. Also change the
text of the tool-tips wording to be more clear and consistent with other
buttons.
Small stylistic and code formatting changes.