Commit Graph

23724 Commits

Author SHA1 Message Date
Benjamin Nauck
8589c4e782 Spreadsheet: make setContent use unique_ptr and cleanup
Make `Cell::setContent` use `unique_ptr` and
`make_unique` for expressions to avoid potential memory
leaks.
Also renames `expo` to `newExpr` to avoid mixup with the
member variable `expression`.

Both changes was made at the request of @chennes.
2021-01-20 18:55:27 +01:00
Benjamin Nauck
991e8bfb2b [Spreadsheet] Add unit tests for new input behaviour 2021-01-20 18:55:27 +01:00
Benjamin Nauck
7fdbd87b13 [Spreadsheet] Only evaluate cell values when prefixed with '='
This commit only changes the user interaction with spreadsheet and does
not affect backwards compatibility (as valid cell expressions are
prefixed with '=' when serialized).

This fixes [#4156](https://tracker.freecadweb.org/view.php?id=4156),
which is discussed in the forum thread:
https://forum.freecadweb.org/viewtopic.php?f=3&t=39665

There has been additional logic added to handle numbers and simple
fractions without using '='.
The behaviour is what is expected by the spreadsheet test cases
and in line with how other spreadsheet software works.
The '-prefix can still be used to force the input to be handled as
as string instead.

Example of numbers and fractions handled are:
  3
  2mm
  1/8
  1mm/2
  1/2mm
  2/m
  1mm/2s

More complex expressions are not handled without '=' and will be stored
as strings instead, for example:
  2 / 3 / 2
  1 + 1/3
2021-01-20 18:55:27 +01:00
marioalexis
b263c2aa87 Part: Crash when calling SubShapes of empty shape from Python 2021-01-18 19:47:35 +01:00
marioalexis
e4535762db Gui: Prevent crash when trying to access sub-objects of a deleted object from a SelectionObject 2021-01-18 19:46:03 +01:00
David Österberg
e6e77c7698 Update src/Mod/PartDesign/App/FeaturePipe.h
Co-authored-by: Benjamin Nauck <benjamin@nauck.se>
2021-01-18 17:38:15 +01:00
David Osterberg
de5c8574d3 PartDesign: Fix small bugs in the Pipe feature
- Previously a subtractive pipe on a body with no solids would create a solid. Now Pipe will generate an error.
- Fix incorrect property header. Previously Pipe was identifying itself as Pad (copy paste error)
2021-01-18 17:38:15 +01:00
wmayer
8924bd4734 Gui: [skip ci] must set device pixel ratio to QBitmaps on Windows when using for cursor as otherwise garbage is shown 2021-01-18 15:20:57 +01:00
Yorik van Havre
bbfb76cd45 Merge pull request #4271 from donovaly/TD-dimension-dialog
[TD] add dialog to modify some dimension settings
2021-01-18 15:00:48 +01:00
Yorik van Havre
68c1e7bcc0 Merge pull request #4283 from paullee0/ArchComponent_02
[ArchComponent] Fix Link Of Window Hosts if empty got error as Wall Child
2021-01-18 15:00:10 +01:00
Abdullah Tahiri
a2af4ce8e2 Sketcher: increase relative size of the subindices of the constraints
=====================================================================

Increase the size of the subindices as per request:
https://forum.freecadweb.org/viewtopic.php?p=468144#p468144
2021-01-18 14:25:30 +01:00
Bernd Hahnebach
fdb89678ac FEM: mesh tools, add a comment 2021-01-17 23:46:49 +01:00
Bernd Hahnebach
5fb28bdc96 FEM: utils, fix clipping FemMesh without Shape 2021-01-17 23:46:41 +01:00
paul lee
66807c7437 [ArchComponent] Fix Link Of Window Hosts if empty got error as Wall Child 2021-01-18 02:08:39 +08:00
Abdullah Tahiri
e191391384 Sketcher: Compensate for Coin not taking the dpi of the monitor into account in font pixel setting
==================================================================================================

Coin documentation indicates the size of a font is:

SoSFFloat SoFont::size        Size of font. Defaults to 10.0.
For 2D rendered bitmap fonts (like for SoText2), this value is the height of a character in screen pixels. For 3D text, this value is the world-space coordinates height of a character in the current units setting (see documentation for SoUnits node).

However, with hdpi monitors, the coin font labels do not respect the size passed in pixels:
https://forum.freecadweb.org/viewtopic.php?f=3&t=54347&p=467610#p467610
https://forum.freecadweb.org/viewtopic.php?f=10&t=49972&start=40#p467471

Because I (abdullah) have  96 dpi logical, 82 dpi physical, and I see a 35px font setting for a "1" in a datum label as 34px,
and I see kilsore and Elyas screenshots showing 41px and 61px in higher resolution monitors for the same configuration, I think
that coin pixel size has to be corrected by the logical dpi of the monitor. The rationale is that: a) it obviously needs dpi
correction, b) with physical dpi, the ratio of representation between kilsore and me is too far away.

This means that the following correction does not have a documented basis, but appears necessary so that the Sketcher is usable in
HDPI monitors.
2021-01-16 08:00:30 +01:00
Abdullah Tahiri
952f75f979 Sketcher: fix horizontal distance constraint on external edge
=============================================================

Fixes:
https://forum.freecadweb.org/viewtopic.php?f=3&t=54348#p467107
2021-01-15 14:38:48 +01:00
donovaly
1a296a4006 [TD] add dialog to modify some dimension settings
also fix issue that tolerance could be set despite theoretically exact is true under some circumstances

also some wording improvements

also a minor fix to use 0.0 instead of DBL_MIN
2021-01-15 05:21:49 +01:00
Abdullah Tahiri
e9c22f93fd Sketcher: Migrate old construction points as construction
=========================================================

Fix that construction points, which did not have the construction flag before, as construction flag was
reserved for internal alignment points, are migrated as construction points.

Fixes:
https://forum.freecadweb.org/viewtopic.php?f=8&t=53466&start=40#p467176
https://forum.freecadweb.org/viewtopic.php?p=467160#p467160
2021-01-14 19:22:15 +01:00
Abdullah Tahiri
d0859f46cb Sketcher: Increase distance from constraints to geometry
========================================================

With the possibility to increase icon sizes via font configuration, the
default hardcoded 2.5 step for seeking the constraint position becomes too
small, causing constraints, specially when multi-icon, to superimpose geometry points,
removing the ability to pick them.

Changing the default gives some increased room for icon size.
2021-01-14 17:22:09 +01:00
Abdullah Tahiri
eb184db9b5 Sketcher: fix font size 2021-01-14 16:27:48 +01:00
Yorik van Havre
5e800499af Merge pull request #4275 from realthunder/FixGetPartOf
App: fix Part::getPartOfObject()
2021-01-14 12:53:20 +01:00
Yorik van Havre
c8e7bccc11 Merge pull request #4276 from donovaly/TD-exact-no-tolerance
[TD] don't allow tolerances for exact values
2021-01-14 12:50:53 +01:00
sliptonic
6a471970ad Merge pull request #4188 from Russ4262/fix_import_base_geometry
Path: Fix `Import` feature of Base Geometry
2021-01-13 15:00:17 -06:00
sliptonic
967ca5d8ee Merge pull request #4184 from Schildkroet/leadinout_gui
[PATH] LeadInOut GUI
2021-01-13 14:28:28 -06:00
sliptonic
dc22199f57 Merge pull request #4227 from mlampert/feature/expose-enumerations-to-python
[App]: Expose PropertyEnumeration values list to python.
2021-01-13 12:27:53 -06:00
wmayer
e4573f1727 Win32: [skip ci] fix support of SpaceMouse Plus XT 2021-01-13 15:15:25 +01:00
wmayer
50f54a2f78 zipios++: [skip ci] apply bugfix on ZipLocalEntry::trailingDataDescriptor() from upstream 2021-01-13 13:22:07 +01:00
donovaly
81ff5a422f [TD] don't allow tolerances for exact values
as discussed here: https://forum.freecadweb.org/viewtopic.php?f=35&t=54218
when a value is theoretically exact it must not have a tolerance

This PR
* fixes this
* also fixes the bug that OverTolerance must not be negative if the tolerances are equal
2021-01-13 04:05:31 +01:00
sliptonic
3489ebe8eb Merge pull request #4187 from Russ4262/patch-2
Path: Add missing reference to thread cutter bit
2021-01-12 13:17:10 -06:00
Yorik van Havre
7b10771b7c Draft: Don't snap to ImagePlanes 2021-01-12 15:31:55 +01:00
Yorik van Havre
f1d9c795ed Arch: Fixed non-workng Panel tools 2021-01-12 15:10:16 +01:00
Zheng, Lei
6b527baf6a App: fix Part::getPartOfObject()
Exclude link broght in by expressions
2021-01-12 09:45:59 +08:00
wmayer
8c8afe6bd1 Sketcher: [skip ci] fix segmentation fault in ViewProviderSketch::drawConstraintIcons()
For more details see: https://forum.freecadweb.org/viewtopic.php?f=19&t=54193
2021-01-11 15:31:41 +01:00
wmayer
9a4a025b0a Win32: [skip ci] enable logging for SpaceMouse input events to figure out why Plus XT model stopped working 2021-01-11 13:51:19 +01:00
Yorik van Havre
acd0932bff Merge pull request #4232 from hyarion/feature-spreadsheet-allow-removed-aliases
[Spreadsheet] Remove alias from dynamic properties on removeRows/Columns
2021-01-11 12:25:56 +01:00
Yorik van Havre
c50796e009 Merge pull request #4263 from donovaly/TD-tweaks
[TD] preferences entry and tolerance step size
2021-01-11 12:21:40 +01:00
Yorik van Havre
548bf4ff42 Merge pull request #4261 from paullee0/ArchComponent_01
[ArchComponent] Link of Window get opening now
2021-01-11 12:19:19 +01:00
Yorik van Havre
59692dc6d5 Merge pull request #4265 from chennes/shadowFixAndAddUnitTests
[Start] Shadow fix and add unit tests
2021-01-11 12:11:56 +01:00
Yorik van Havre
ed80aa314e Merge pull request #4269 from eddyverl/Pyramids-and_Polyhedrons
Pyramids and polyhedrons
2021-01-11 12:09:53 +01:00
Yorik van Havre
734c12c872 Merge pull request #4272 from donovaly/TD-show-balloon
[TD] show balloon dialog on double-clicking
2021-01-11 11:55:34 +01:00
donovaly
699baa8477 [TD] show balloon dialog on double-clicking
when adding GD&T statements as described in https://wiki.freecadweb.org/TechDraw_Geometric_dimensioning_and_tolerancing
You will quickly get a lot of balloons and it is then very tiring to be forced to first select a balloon with a single-click in the drawing, then go to the model tree and there double-click to get the dialog.

This PR also removes unused includes from the dialog code.
2021-01-11 03:02:35 +01:00
Abdullah Tahiri
031a3940a9 Sketcher: ViewProvider HDPI lineWidths and pointSizes as float
==============================================================

A previous commit assumed values for lineWidths and pointSizes were integers. This commit fixes this.
2021-01-10 19:31:03 +01:00
Eddy Verlinden
f63b08f7d6 Update AddonManager.qrc 2021-01-10 17:25:31 +01:00
Eddy Verlinden
216a6c189b Add files via upload 2021-01-10 17:19:25 +01:00
Abdullah Tahiri
31c47eedb3 Sketcher: Change of color of Y axis
===================================

On request:
https://forum.freecadweb.org/viewtopic.php?f=10&t=53221&start=50#p464971

To better differentiate constrain element from Y-axis.
2021-01-10 16:33:12 +01:00
donovaly
96eaff8e4e [TD] some fixes
- the setting "Standard and Style" only affects new dimensions, thus it must be italic

- fix bug that the Property 'LockPosition' appears for dimensions -> this is an option for views and thus must be hidden for dimensions

- since tolerances are in the vast majority fractions of a millimeter/inch, set its stepsize to 0.1
(I hope I did it right in handleChangedPropertyType.)

- fix inconsistent newlines in TaskBalloon.h

- improve wording for a heading
2021-01-10 00:29:34 +01:00
Abdullah Tahiri
df1bf89cda Sketcher: Check for null geometry shapes before adding them to the toShape array 2021-01-09 20:08:05 +01:00
Abdullah Tahiri
024283e704 Part: Geometry trigger notifyAttach on extension addition 2021-01-09 20:08:05 +01:00
Abdullah Tahiri
b69b3c71c0 Part/Sketcher: Refactor Geometry Extensions copy/save/restore AND attachment notification
=========================================================================================

- Long overdue refactor to avoid repetition during save/restore and copy.
- New interface to notify an extension when it is attached. It also enables the extension to gain
a pointer to the geometry container. This is intended to extend the functionality already existing
in Part::Geometry.
2021-01-09 20:08:05 +01:00
Benjamin Nauck
6c6790e8b5 [Sketcher] Fix crash in SketcherObject::setDatum
The variable newVals can't be used after std::move, fetch it from the
constraint it if an error occurs.
2021-01-09 07:50:31 +01:00