Commit Graph

26860 Commits

Author SHA1 Message Date
luz paz
e417fd9436 Crowdin: remove trailing whitespace [skip ci] 2021-03-02 17:29:21 +01:00
wmayer
2fe153118c Gui: [skip ci] for the author label use the same font configuration as with the rich text as otherwise the text appears very tiny 2021-03-02 17:23:41 +01:00
Chris Hennes
0bc39982df [GUI] Make UrlLabel in About styleable
The UrlLabel in the About FreeCAD box was not styleable because its
rich-text contents overrode any styling applied to it. This commit
converts it to a plain text label that can then be styled in a
stylesheet using the Gui--UrlLabel selector. If no stylesheet is
applied, the UrlLabel styles itself using the old-school blue text with
an underline, but any applied stylesheet completely overrides this
default.

This does not affect the "clickability" of a UrlLabel widget, which is
handled independently of the label's content (including its textual
hyperlink, which was and still is ignored).
2021-03-02 16:45:03 +01:00
wmayer
dfba396b4f Gui: support to customize the font size of bounding boxes 2021-03-02 16:29:57 +01:00
David Osterberg
c1b3fba031 Beautify xml step 1: These changes do not affect the uic output 2021-03-02 16:29:11 +01:00
wmayer
5853dbcf08 travis: using C++17 for the clang build doesn't currently work on Bionic.
So revert the change from commit c3b61ab2e77c and instead suppress the C++17 related warnings caused by OCCT
2021-03-02 12:44:56 +01:00
wmayer
eed1a3f1b7 travis: OCCT 7.5.1 uses [[nodiscard]] that is a C++17 feature.
To avoid to get tons of warnings because of -Wpedantic the clang build should use C++17, too
2021-03-02 12:13:08 +01:00
Chris Hennes
96406ff97c [Arch] LGTM issues in Dice3DS
LGTM identified a few minor issues in the Dice3DS code -- none of them
appear to be real errors, so the changes here should not affect the
behavior of the code.
2021-03-01 10:35:39 -06:00
Yorik van Havre
19e4113de4 Arch: Fixed SectionPlane outside objects bug in ArchSectionPlane - Fixes #4549 2021-03-01 16:49:31 +01:00
Chris Hennes
4ebdff9d9c [Draft] Fix localize_vectors double definition
LGTM identified an instance where a function was defined twice: in this
case, one version was intended to take a list of items and the second
version just a single item. Because they share the same name and number
of arguments, the second definition overrode the first. This causes no
problems in the current code because the version that takes a list is
never used. However, for consistency with the analogous
"globalize_vectors" and "globalize_vector" functions, the "localize*"
versions are changed to match that pattern. All calls in are
converted to the singular use.
2021-03-01 09:36:21 -06:00
Chris Hennes
784ee36121 [Draft] Eliminate unused loop iteration variables
When creating arrays of colors, the color information is often created
to be the same length as some array of objects. In three instances this
was achieved with a loop over that list of objects, even though the
objects themselves are never used. This commit eliminates those loops
and creates the required number of color instances directly.

Identified by LGTM.
2021-03-01 09:19:20 -06:00
Chris Hennes
3e48fef002 [OpenSCAD] Add unit test framework to module
The OpenSCAD module did not have any unit tests. This commit adds the
basic framework (and two very simple tests). The framework is modeled
after the unit tests in the FEM module.
2021-03-01 15:21:18 +01:00
David Osterberg
1110f1198b PartDesign: Allow use of circle edge as axis in PolarPattern 2021-03-01 14:48:24 +01:00
David Osterberg
c862ec458c PartDesign: Allow use of circle edge as axis in ProfileBased 2021-03-01 14:48:24 +01:00
wmayer
9120d4a7d9 PD: [skip ci] PolarPattern: Support 1 occurrence
This is analogous to support 1 occurrence of the linear pattern feature: 74ea8353edc9
2021-03-01 13:58:02 +01:00
donovaly
88c6ed3d2d [PD] fix multi-transform View
- fixes bug 4581
  See the first issue reported here:
  https://forum.freecadweb.org/viewtopic.php?f=3&t=56093#p482553

- also fix issue that one could set 1 occurrence for polar patterns despite 2 are required at least

- also fix potential dereferencing null pointer (reported by MSVC)
2021-03-01 13:11:15 +01:00
Chris Hennes
6640f13be1 [Arch] Refactor to eliminate unused variable
LGTM complains about the unused variable in a loop that is really only
using the variable to iterate a set number of times. This replaces that
loop with a multiplication by the length of the array, eliminating the
unused iteration variable and clarifying the intent of the code.
2021-02-28 23:42:14 -06:00
Chris Hennes
2d9c9accda [DRAFT] Remove unused loop variable
LGTM is concerned about the unused loop variable in this algorithm.
While there was nothing wrong here, to eliminate the alarm the loop was
removed entirely, since Python allows the use of the multiplication
operator here to achieve the same effect.
2021-02-28 23:18:53 -06:00
Chris Hennes
59ecfbe508 [Draft] Return once the button is found 2021-02-28 21:48:31 -06:00
Chris Hennes
747dc8b81a [DRAFT] Refactor sync_snap_toolbar_button
LGTM objected to the re-use of the loop variable a in the algorithm.
Upon closer inspection, the algorithm in this function could be modified
to match the algorithm in sync_snap_statusbar_button (which does the
same thing to the statusbar that this does to the toolbar). This
eliminates the double-use. This change does not affect the functionality
of the routine.
2021-02-28 21:42:46 -06:00
Chris Hennes
d93567ce27 Add library versions to LibraryVersions.h 2021-02-28 20:45:34 -06:00
David Osterberg
beb85522e4 PartDesign: Hole. Address Donovaly bugs 7 and 8
bug 7: the update view checkbox should be enabled/disabled based on Model thread.
       the checked state should not change

bug 8: the Thread depth options should be disabled when Model thread is unchecked.
       because they don't do anything in the model it is confusing if they are enabled.
2021-02-28 20:13:14 +01:00
David Osterberg
10f922613b PartDesign: Hole: Always update view if modelthread is disabled
Also: Check the Update View checkbox and disable it, when turning off
model thread.
2021-02-28 20:13:14 +01:00
David Osterberg
99215a9f9f PartDesign: Hole: Turn off keyboard tracking on model thread spinboxex 2021-02-28 20:13:14 +01:00
David Osterberg
41724cd29b PartDesign: Hole: Rename Automatic Tapped (DIN76) and change default to Hole depth. 2021-02-28 20:13:14 +01:00
David Osterberg
d7ae53d597 PartDesign: [Hole] Add Entire Depth thread depth mode 2021-02-28 20:13:14 +01:00
David Osterberg
d94946781e PartDesign: Add true threads to Hole
- Thread runout according to DIN 76-1
- Through all length updated to be calculated based on bounding box
- New properties: ModelThread, ThreadDepthType, ThreadDepth,
                  UseCustomThreadClearance, CustomThreadClearance
- Rename Old but unused parameters related to thread modeling.
- Functionality exposed in UI
2021-02-28 20:13:14 +01:00
Chris Hennes
fd1c856afc [CMAKE] Add version info for MEDfile 2021-02-28 19:31:05 +01:00
Chris Hennes
113ef52708 [CMAKE] Cleanup version info for Python & XercesC 2021-02-28 19:27:48 +01:00
Chris Hennes
75a6ac4c8b [CMAKE] Add Coin3D version info
Modelled after the code for Eigen3, this adds a version check for Coin.
If pkg_config (or some other method) finds the version string, just
print that. If not, do a REGEX MATCH on the file in Coin's headers that
includes the version information. Note that in this case the beta
version information is excluded.
2021-02-28 19:27:26 +01:00
Chris Hennes
0332ba1e20 [Offline Docs] Fix static analysis issues
LGTM identified a number of minor issues (mostly unused imports) in the
offline docs code. This commit addresses those, plus tweaks some output
formatting to include missing spaces, makes a regex more rigorously safe
by escaping some periods, and updates the use of a get() function which
appears to have changed since it was first written.
2021-02-28 17:53:58 +01:00
Chris Hennes
62bfb44a0d [Tools] Fix static analyis issues
This commit addresses issues identified by LGTM for the various
independent (and mostly-independent) files in the Tools subdirectory.
The vast majority of the issues are trivial, and are things like unused
imports or catching BaseException. There was one true bug identified, a
global variable being changed in a function where it was not marked
global, but it only affected output quantity (the variable is named
"VERBOSE"). A couple of other issues identified variables that appear to
represent no-longer-existing options in the code. The options were left,
but a deprecation printout replaces the variable in the event the option
is provided.
2021-02-28 17:53:04 +01:00
luz paz
6f6c1deed7 Crowdin: Startpage - add whitespace to tooltip [skip ci] 2021-02-28 17:15:08 +01:00
luz paz
504cd1e7a5 Crowdin: Startpage: remove obsolete translation [skip ci] 2021-02-28 17:15:08 +01:00
luz paz
4e0fa6a736 Crowdin: StartPage - remove obsolete translation [skip ci]
Ticket 0004578  
ref: https://crowdin.com/translate/freecad/7254/en-en?filter=basic&value=0#6572932
2021-02-28 17:15:08 +01:00
wmayer
24b446c9f7 Sketcher: fixes #0004303: Three choices in a Sketcher menu each with the same Ctrl+Shift+E 'address' 2021-02-28 13:14:48 +01:00
wmayer
d6db4ee48f Image: fixes #0003959: Created image plane is not proportional to loaded image 2021-02-28 13:14:30 +01:00
wmayer
da4d9b64c0 Tux: fixes #0004565: Status bar text runs under Navigation Button 2021-02-28 13:14:05 +01:00
wmayer
88a2dc1c70 Gui: [skip ci] allow to unbind() an ExpressionBinding and automatically unbind it if the observed object has been deleted
For more details see: https://forum.freecadweb.org/viewtopic.php?f=8&t=56097
2021-02-28 12:37:50 +01:00
Benjamin Nauck
b44175f4fe Tools: updatecrowdin.py rewrite to support new api
Crowdin has depreciated their old api and will shut it down completely
in december 2021.

What's new:
 * rewritten in Python 3 (drops support for discontinued Python 2)
 * uses Crowdin's api v2
 * runs on vanilla Python 3, (no external modules)
 * automatically adds new translation from the src directory
 * supports api token to be specified in an environment variable
   (Makes GitHub integration easier in the future)
 * requires project id to be explicitly set with an environment variable
   (Makes testing safer)

The api token can be set either in ~/.crowdin-freecad-token similar to
how the old api key was set, or by specifying it in an environment
variable. The later has been added to make it easier with GitHub-Crowdin
integration in the future.

The requirement to explicitly set CROWDIN_PROJECT_ID has been introduced
to avoid accidentally using the main Crowdin project while testing the
script.

The script has been tested on Python versions 3.7, 3.8 and 3.9.

Co-authored-by: Mattias Pierre <github@mattiaspierre.com>
2021-02-28 12:03:41 +01:00
Chris Hennes
648ae39f50 Clean up various LGTM-flagged items
Static analysis showed some unused variables and imports, and running
the code in Python 3.9 revealed a few invalid escapes (previous versions
of Python silently "fixed" these, so the code change here will not
affect the results).
2021-02-27 18:23:15 +01:00
Chris Hennes
26ce308cf1 [DRAFT] Add call to super().__init__ where missing
Identified by LGTM. The toplevel superclass does initialize one data
member to an empty array, but this didn't appear to cause any problems.
2021-02-27 18:21:54 +01:00
Chris Hennes
1667c4d9f6 [Part] Fix signature of TempoVis dummy function
If the import of TempoVis fails, TaskAttachmentEditor creates s dummy
function to replace the real TempoVis function. That function's
signature did not match the real TempoVis. Caught by LGTM.
2021-02-27 18:21:05 +01:00
Chris Hennes
d5779d8c9b [PD] Fix minor static analysis issues in FCGear
LGTM has identified a number of minor issues with the FCGear Part Design
scripts. This commit addresses each of them, and also corrects two minor
spelling errors in the dialog. None of the errors or their fixes are
expected to result in changes to the functionality of the script.
2021-02-27 18:20:32 +01:00
David Osterberg
9d24f90dd7 PartDesign: Transformded. Align the "property category" of Refine with other PD commands 2021-02-27 18:19:14 +01:00
wmayer
7530e48935 Gui: [skip ci] fix memory leak in SelectionFilter 2021-02-27 18:17:52 +01:00
wmayer
c243741296 Gui: [skip ci] re-add removed Py_INCREF of module 2021-02-27 11:13:30 +01:00
wmayer
dd4dd204d0 App/Gui: fix memory leaks:
+ add function to cleanup units and quantities in debug build
+ fix reference leak in PropertyVector::getPyPathValue()
+ fix reference leak in PropertyPlacement::getPyPathValue()
+ in InterpreterSingleton::init() use a static std::vector<wchar_t*> instead of a C array
  to free memory at program end
+ in MainWindow::closeEvent() explicitly delete all task watchers
+ in ReportOutputObserver constructor pass parent to QObject
+ in PropertyEditor destructor explicitly delete QItemEditorFactory
2021-02-27 10:56:19 +01:00
wmayer
6584c6e2ac App: [skip ci] AddressSanitizer: heap-use-after-free
When removing a dynamic property its myName member must be nullified as the memory has been de-allocated
2021-02-27 02:21:14 +01:00
wmayer
fdbd84ec39 FEM: [skip ci] fix crash in Constraint::getDirection 2021-02-26 08:11:16 +01:00