Commit Graph

34224 Commits

Author SHA1 Message Date
Eric Ye
034fd94a36 Change ladybug to latest ladybug-core 2023-09-09 13:58:16 -07:00
andrea
63a82b0b17 The DownloadStatistics.py file is the duplication of the githubstats.py file 2023-09-09 17:55:25 +02:00
andrea
4897202bc4 fix vtk > 6.1 check 2023-09-09 17:52:11 +02:00
andrea
19272554e1 Removed old code using qt<5.4 2023-09-09 17:50:51 +02:00
mosfet80
67a0d077e1 Delete src/Tools/astylerc
Removed config file for  astylerc c c++ formatter tool
2023-09-09 01:12:49 +02:00
wmayer
26cd974e08 Gui: fix clang-tidy warning 2023-09-08 21:45:10 +02:00
Michael Tuma
32c5968069 Made the interval that the Python profiler runs at configurable
Added a "User parameter:BaseApp/Preferences/PythonConsole/ProfilerInterval" int
property which sets how often (in milliseconds) the Python profiler runs while
Python code is running. Setting this value to zero will totally disable it.

Also added a preference in the Python console screen which allows the user to
set the value of this property to between 0 (disabled) and 5000 (once every 5
seconds). (+1 squashed commits)

Squashed commits:

[cca88ac633] Made the Python profiler only run when the console is running code

This has two purposes. First, it prevents a performance impact from running the
profiler whenever Python code is running. Second, it prevents crashes caused by
Qt's process events function being called too frequently. When the Python code
is running in the console, it monopolizes the main thread and prevents events
from being processed. Therefore, causing events to be processed in the callback
should not force events to be processed too frequently, because the normal loop
is being prevented by the Python code. (+1 squashed commits)

Squashed commits:

[45f86917e6] Made long-running Python code not freeze the GUI without multithreading

Removed the background thread running Python code and replaced it with a custom
profiler which the Python interpreter runs frequently (at every Python opcode I
believe) on the main thread whenever Python code is running. The profiler will
make Qt process any new events every 200 ms, preventing "App not responding"
messages and making sure any Ctrl+C keypresses will be processed. This prevents
the previous issue where running anything GUI-related from Python would crash
the program (because Qt isn't thread-safe). (+1 squashed commits)

Squashed commits:

[0ef7d810b3] Made the process of getting thread IDs cross-platform compatible

Instead of using <threads.h>, now the standard <thread> header from C++
11 is used to find the thread ID, since <threads.h> is apparently not
available on Windows. (+1 squashed commits)

Squashed commits:

[74c7b867f2] # This is a combination of 2 commits.

Python from the console now runs in the background

In a nutshell, all Python code which is input from the interactive console
now runs in a seperate QThread which runs in the background, instead of
on the UI thread. This means that long operates operations will no longer
cause the app to display an "App not responding" message, because the UI
thread is now free to keep running unencumbered.

However, it is still not possible to run multiple Python statements at
the same time. If the user tries to run some Python while a previous
statement is still being processed, instead it will display an error
message in the console stating that the previous command is still
being processed.

I also added a seperate QTimer which runs once every 100ms to flush any
output from the Python code back to the console. I can't flush the output
to the console from the background thread because the relevant Qt5 code
is not thread-safe (it causes random segfaults). So I added this timer
as a work-around, since it runs in the main UI thread.

Implemented Ctrl+C keyboard interrupts in the console

This is implemented by detecting a Ctrl+C key event in the Python
console in the main Qt UI thread, and sending a keyboard interrupt
to the background thread that runs the Python code.
2023-09-08 21:45:10 +02:00
wmayer
f1ef5c4729 Tux: apply clang format 2023-09-08 18:06:03 +02:00
wandererfan
728b2ec841 [Part]fix canScale logic
- fix canScale logic
- remove unused method
- add more comments
2023-09-08 18:04:26 +02:00
wandererfan
495ae5df75 [Part]correct handling of preselected objects 2023-09-08 18:04:26 +02:00
mosfet80
22971a05dc Update FCConfig.h
Clean fcconfig
2023-09-08 18:01:43 +02:00
FEA-eng
bf207019be Fixed minor typo in FEM preferences
solver --> solvers
2023-09-08 11:01:11 -05:00
andrea
dccca2b7ed fix compilation warning 2023-09-08 14:13:36 +02:00
wmayer
381efa3b35 Gui: filter warning about dead keys
Forum thread: https://forum.freecad.org/viewtopic.php?t=80981
2023-09-08 14:12:24 +02:00
wmayer
8a56da4ee0 Sandbox: [skip ci] fix build failures 2023-09-08 11:47:16 +02:00
Yorik van Havre
3645d8be3b Merge pull request #10556 from Roy-043/Draft-arcTracker-did-not-take-Working-Plane-rotation-into-account
Draft: arcTracker did not take Working Plane rotation into account
2023-09-08 11:36:25 +02:00
mosfet80
574953a4f5 Update CMakeLists.txt
Freecad use qt5 or qt6
2023-09-07 23:06:11 +02:00
Chris Hennes
b2042f36c6 Tools: Fix Start translation TS file name 2023-09-07 23:05:25 +02:00
luzpaz
6810c5703d Fix various typos 2023-09-07 20:34:49 +02:00
wandererfan
c700a9feb8 [TD]fix fail on multiple empty annotation 2023-09-07 13:11:09 -04:00
wandererfan
d7f5764b9e [Part]code review changes for FeatureScale 2023-09-07 18:21:56 +02:00
wandererfan
90aef60f32 [Part]add scale command & feature 2023-09-07 18:21:56 +02:00
Roy-043
2cbe037ce8 Start: Improve "Switch workbench after loading" tooltip
Make it clearer that this property is different from the "Start up workbench".
2023-09-07 09:39:08 -05:00
sliptonic
137baa1a0a Merge pull request #10567 from petterreinholdtsen/debian-1120-desktop-extra-categories
Add XDG desktop category X-CNC also used by LinuxCNC.
2023-09-07 09:06:02 -05:00
wmayer
c9774cdacc Test: add test for default file system encoding 2023-09-06 23:54:42 +02:00
Ajinkya Dahale
5300e70eab [Core] Avoid some seg-fault because of PySequence_Check(nullptr) 2023-09-06 16:17:21 +02:00
wandererfan
4dd2b8d757 [TD]refactor print routines out of MDIViewPage 2023-09-06 08:58:33 -04:00
wmayer
5e911daae2 Part: add tests to ensure that the fixed methods work correctly 2023-09-06 12:14:37 +02:00
wmayer
e6d350e719 Part: when replacing PyArg_ParseTupleAndKeywords with Base::Wrapped_ParseTupleAndKeywords then in a few cases the negation of the expression has been removed.
See also: https://forum.freecad.org/viewtopic.php?t=80958
2023-09-06 11:53:56 +02:00
wmayer
2a65715248 Mesh: fixes issue #10075: 3MF files exported from FreeCAD don't work in PrusaSlicer
Add an option to force to always write a mesh as model type even if it's not a solid
2023-09-06 07:28:07 +02:00
mosfet80
9583c1c0cb Delete src/Tools/plugins/widget/FreeCAD_widgets.vcxproj.user
removed Visual studio user personal file
2023-09-06 07:22:01 +02:00
mosfet80
f33ca32ddc Delete src/Tools/plugins/widget/FreeCAD_widgets.vcxproj.filters
removed custom Visual Studio filter file
2023-09-06 07:22:01 +02:00
Petter Reinholdtsen
e93e76edcc Add XDG desktop category X-CNC also used by LinuxCNC.
This ensure FreeCAD and LinuxCNC both show up in the CNC submenu when
both are installed.
2023-09-06 01:02:29 +02:00
FEA-eng
6171feb560 Update MainWindow.cpp
fixed small typo in the warning about 0.22 being dev version not for production use
2023-09-05 15:40:16 -05:00
kaktus Jacek
65f3355a78 Removing unnecessary strings from Crowdin + improving typos
patches for #10459 and #10426...
a few small details escaped attention need to be fixed
😉
Removing unnecessary strings from Crowdin and improving typos.
2023-09-05 15:38:58 -05:00
Chris Hennes
2dbc16e45e Merge pull request #10530 from chennes/addFormattingToBlameIgnoreFile
Git: Add recent formatting commits to ignore-revs
2023-09-05 11:46:23 -05:00
sliptonic
3746385fc0 Merge pull request #10430 from Stevecosoft/forum-80599_helix
Path: helix toolpath was not allowing Extra Offset values that it should
2023-09-05 09:03:38 -05:00
Roy-043
1c39dabdb6 Draft: arcTracker did not take Working Plane rotation into account
Steps to verify the issue:
1. Open FreeCAD.
2. Switch to Std_ViewTop.
3. Click one of the curved arrows of the Navigation Cube.
4. Switch to the Draft WB.
5. Make sure Draft_SelectPlane is set to "Auto".
6. Start Draft_Arc and click 2 points (for the radius and the start angle).
7. Result: The displayed arc does not match the start angle or the current point.

Additonally:
* Removed the normal argument from `__init__`. The tracker does not work properly with just a normal. AFAICT there is no code that specifies this normal.
* Minor improvement to `getAngle`: Switched the vectors.
2023-09-05 15:39:17 +02:00
wandererfan
3769dbeeb9 [TD]add support for view menu zoom 2023-09-05 08:47:40 -04:00
Rexbas
da4318f140 Gui: Add nullptr check in showRotationCenter 2023-09-05 08:54:11 +02:00
Jonas Bähr
5346b51edb Sketcher: Fix check in carbonCopy's python interface
Presumably due to an copy/paste error, carbonCopy used to verify the
referenced object via `isExternalAllowed` (just like addExternal).
Now using `isCarbonCopyAllowed`, the resulting error message is the
expected one for wrong objects, not a generic one after the operation
failed.
2023-09-05 08:49:31 +02:00
Chris Hennes
7c63b41b7e Merge pull request #10546 from chennes/addonManagerRefactorCacheCheck
Addon Manager: Refactor local cache update check
2023-09-04 19:53:59 -05:00
Chris Hennes
92016c4c9c Addon Manager: Refactor local cache update check 2023-09-04 19:13:18 -05:00
Jonas Bähr
9a7523fb4b Sketcher: Fix wrong format string in PyArg_ParseTuple
The part behind the column represents the function name itself, not an
error message. So previously, an argument error looked like this:
("Give an object" is not the method name)
```
>>> obj.carbonCopy()
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: Give an object() takes at least 1 argument (0 given)
>>> obj.carbonCopy(123)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: Give an object() argument 1 must be str, not int
```

While the format string also supports a text for the complete error message
(using a semicolon instead), I decided against this: Pythons standard text
is more precise than this:
(the type error here is not "Give an object")
```
>>> obj.carbonCopy()
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: Give an object
>>> obj.carbonCopy(123)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: Give an object
```
2023-09-05 00:38:30 +02:00
Jonas Bähr
34e877bc1d Sketcher: fix docs for solve(..)
Since the docstring was initially written, an additional error code was added.
2023-09-05 00:32:54 +02:00
Chris Hennes
6da62b83fa Merge pull request #10520 from qewer33/startpage-quickstart-open
StartPage: Add custom CSS option, re-organize preferences and further fixes
2023-09-04 11:54:39 -05:00
Chris Hennes
f1cd437fe9 Git: Add recent formatting commits to ignore-revs 2023-09-04 10:04:46 -05:00
Chris Hennes
1cdc73ff92 Web: Final application of pre-commit 2023-09-04 08:18:51 -05:00
Chris Hennes
fb0f543da2 Test: Final application of pre-commit 2023-09-04 08:18:51 -05:00
Chris Hennes
6c9557c39b Surface: Final application of pre-commit 2023-09-04 08:18:51 -05:00