- Use `std::vector<T> elemstore` to store elements. Avoids manual memory management.
- Add and index (`std::vector<int> elemidx`) that avoids moving large objects
when adding elements.
- Add a free element list (`std::vector<int> freelist`) that speeds up element removal by
avoiding rearranging the element storage. It also avoids reallocations when adding
elements later.
- Add a proper iterator. It will be used to remove NextAfter - which is a performance bottleneck.
If a single point is selected when a "Constrain | Comment" (`;`) is added
then the comment is associated with the point and its position becomes
relative to the point. In this way the comment will move with the point.
If nothing is selected or more than a single point is selected then
the behaviour is as before and the comment is "floating".
Closes#1032
Keep items in selected state while dragging so that property browser
will track them until the left mouse button is released. Also, trigger
a property browser update on mouse move while dragging to make the
display "live"
Fix a bug with the lookup of stipple pattern for default styles when the
config settings are not yet available (install/upgrade/first run). This
caused hidden lines to display as continuous rather than dashed.
* Final Update of Changelog for 3.0
* Fix markdownlint warnings on CHANGELOG.md
* Remove Q3D mention from 3.0 release changelog.
Co-authored-by: Ryan Pavlik <ryan.pavlik@collabora.com>
The if condition was nonsensical and did not serve any
practical purpose; removing it allows the succeeding jobs
to run in any case without additional code.
Allow the workflow to be cancelled without running all remaining jobs.
On invocation of the workflow, cancel concurrent runs of older commits
automatically.
Replace unmaintained release action with recommended alternative.
After much testing, I found that the problem of releases
being created as draft releases can be traced to a
consistency issue/race condition on GitHub's side.
Prevent this by inserting a generous delay between deleting and
re-creating the edge release.
Also, this fixes the Printf format for the ambient lighting entry on the
configuration screen. This was causing string behavior when attempting
to edit the ambient lighting value on Windows. Oddly this didn't seem
to affect Linux.
* minor fix open/save dialogue on windows
On windows 10 the open/save dialogue box has an minor error, and I believe I fixed it.
When "Open" is selected from the menu, the title of the dialogue box says "SolveSpace - Save File" and the entered file name is "united". My fix correctly titles the dialoged box, and leaves the address bar blank when a file is being opened because "united" is only needed as a default name when a file being saved.
I found that class FileDialogImplWin32 from guiwin.cpp contains two if statements for "isSaveDialog". This is redundant. I removed the first where the title was originally set, but not working. I then set the title in the second if statement and moved the 'if isEmpty'' to this section.
* Update guiwin.cpp
replaced tabs with spaces
E.g. for when you have more than one user logged in, in which case
spacenavd works only for the first of those X11 displays.
We try to do it the old way first, so there should be no regressions.
Also fixes storing non-booleans in bool variables.
Primarily, this enables the user to export of construction entities in 2D
views such as SVG. Previously constuction entities were always skipped.
The "export these objects" is now available for all default styles.
One may turn off export of constraints or the inactive groups for example.
This also adds the exportable flag to the factory settings and
support for saving the exportable option for default styles in the
configuration. Construction entities with custom styles respect this
option as well. NOTE: Running this version will add new entries to the
configuration (Registry, .config etc.) on exit when testing this code.
Gdk::Cursor::create(Gdk::HAND1) yields a hand cursor more appropriate
for "grabbing" vs. pointing. Use the recommended create by name API
to get a "pointing hand" cursor.