Commit Graph

2333 Commits

Author SHA1 Message Date
Kacper Donat
6cc652f414 Merge pull request #23321 from chennes/refactorApplicationAndAddVersioning
Refactor App::Application directory handling and add versioning
2025-08-31 21:35:02 +02:00
Chris Hennes
78c6c5a962 Merge pull request #23368 from kadet1090/show-placement-and-plane-in-attacher
Gui: Show placement and plane in attacher
2025-08-30 14:13:43 -05:00
Chris Hennes
f3c675ed5b Update translations 2025-08-28 16:14:49 +02:00
Chris Hennes
fa98beb221 App: refactor to use unique_ptr
Also address other reviewer comments.
2025-08-27 11:51:22 -05:00
Chris Hennes
5c7a44d7d8 App: Fix problems with temp dir creation 2025-08-27 11:51:22 -05:00
Chris Hennes
bce7ff8708 App: Add directory versioning for data and config
At the application level, support the existence of subdirectories inside
the original config and data paths for a specific version of the
software. For a new installation, create them, but for an existing
installation use the most recent available version, even if it's not the
current one (and even if it's not versioned at all). Any migration must
be done at the GUI level due to the amount of data that is potentially
being copied during that process.
2025-08-27 11:51:22 -05:00
Chris Hennes
3426c9ff21 App: Migrate directory handling to helper class
Use std::filesystem wherever possible, replacing most uses of
std::string when the object is actually a path. This is the first stage
of refactoring, and does not make any changes to Application that affect
client code. Access to the new directory-handling class is implemented,
but is unused by any external code.
2025-08-27 11:51:22 -05:00
Kacper Donat
13a74c14fd App: Add helpers for guarding property overrides.
Within code often it is required to temporarly override value of some
object properties. To properly restore old values they must be stored
somewhere and the developer must remember to manualy restore them.

This commit introduces utilities that can be used to make it easier
using RAII idiom to guard the overrides.
2025-08-27 16:53:37 +02:00
Benjamin Nauck
1b49998f6f Merge pull request #23291 from 3x380V/measurement
Measure: Useability improvements
2025-08-26 06:51:50 +02:00
drwho495
3ee1e3335f Toponaming: Remove updateElementReferences call in PropertyLinkSub (#23263)
* remove updateElementReferences call in PropertyLinkSub

* Retrigger checks

* update element refs after the document has restored
2025-08-25 21:39:40 -05:00
Frank David Martínez M
0f2ea5588c [Core] Fix #15558: Direct expression in ternary operator (#22938)
* [Core] Fix #15558: Direct expression in ternary operator

* [Core] Added tests for Non-Numeric conditions in ternary op.

* [Core] prevent relational operator chains at grammar level.

* [Core] Rewrite expressions grammar as a layered grammar.

* [Core] Revert to left associative relops (like C/C++) plus tests.
2025-08-25 21:52:42 +02:00
wmayer
d1a84ab538 Measure: Fix TaskMeasure
Made several fixes to TaskMeasure:
* Move to correct namespace
* Handle possible exception in update() method
* Add null pointer checks for buttonBox
* Cannot use 'Measure::MeasurePython' as template argument in addObject<>
  because the macro PROPERTY_HEADER_WITH_OVERRIDE determines the invalid
  string 'App::FeaturePythonT<FeatureT>' so that an exception is raised

Note: The changes might fix issue 20304
2025-08-25 09:21:33 +02:00
wmayer
c15e46348d App: Remove build dependency to Coin3D
Fixes https://github.com/FreeCAD/FreeCAD/issues/20897
2025-08-24 22:18:55 -05:00
Chris Hennes
1ac1d93069 Merge pull request #23164 from ickby/FEM_post_fixes_4
Fem: Fix for 3 issues
2025-08-19 19:00:55 -05:00
Stefan Tröger
96ed82f0cf FEM: Keep result pipeline and only reload data. Fixes #20542 2025-08-19 17:44:21 +02:00
drwho495
a43e712700 Toponaming: Update element references of PropertyLinks everytime the program needs to access the values (#22785) 2025-08-18 11:11:49 -05:00
Chris Hennes
40b1ea294c Update translations 2025-08-18 17:55:24 +02:00
Chris Hennes
867708c3c0 App: Remove use of dangerous localtime() function 2025-08-18 17:44:34 +02:00
Chris Hennes
dd4a477dce Merge pull request #22788 from pieterhijma/fix-func-expr-simplify
Core: Fix expression function simplify
2025-08-12 11:07:44 -05:00
Chris Hennes
ffbeb1fb4e Merge pull request #22985 from pieterhijma/fix-rename-prop-with-expr
Core: Fix renaming a property with an expression
2025-08-11 11:13:54 -05:00
Pieter Hijma
8b8d4eb32a Core: Add logic for updating exprs on prop rename 2025-08-08 17:31:11 +02:00
marioalexis
863be11668 App: Fix ExtensionPython macro 2025-08-08 17:11:51 +02:00
qewer33
164ecfebac Gui: Add about image for dev version
Co-authored-by: ein-shved <yury.shvedov@kaspersky.com>
Co-authored-by: Ladislav Michl <ladis@triops.cz>
Co-authored-by: qewer33 <qewer33@proton.me>
Co-authored-by: 3x380V <i58604845+3x380V@users.noreply.github.com>
2025-08-05 17:33:05 -05:00
Frank David Martínez M
d4c38502d8 [Core] Add Boolean Functions to expressions (AND, OR, NOT) (#22506)
* [Core] Add Boolean Functions to expressions (AND, OR, BOOL, NOT)

* [Core] Add `if` function to expressions to overcome ternary operator limitations

* [Core] Update expressions grammar to recognize relational operations as arguments

* [Core] The `if` function has been removed as no consensus was reached regarding its convenience or necessity. Its inclusion was considered potentially confusing or redundant.

* [Core] Make boolean cast based on Confusion threshold.
2025-08-05 03:50:13 +00:00
Pieter Hijma
1ebcae0c0b Core: Fix func expression simplify 2025-08-04 16:51:11 +02:00
theo-vt
7f5b890e2a Core: Set ::Remove flag before calling breakLinks (#22759)
* Ensure the ::Remove flag of DocumentObject is set to true before calls to breakLinks

* TechDraw: remove then add balloon annotation when changing the SourceView

* Revert "TechDraw: remove then add balloon annotation when changing the SourceView"

This reverts commit 483b4fe4a0715ff63c2669af33fc3beb60a93f54.
2025-08-03 15:45:04 +02:00
Chris Hennes
ecaab33160 App: Fix XML namespace issue in Branding 2025-07-28 12:17:34 -05:00
Chris Hennes
e8cfca002a App: Update setContent call for Qt 6.8 2025-07-25 00:12:22 +02:00
Chris Hennes
787c190368 Remove boost::filesystem includes 2025-07-18 20:26:56 +02:00
theo-vt
b8e8b57411 Core: Remember export information on a per document basis (#22067)
* Use a new struct ExportInfo to hold export information on a per document basis
2025-07-16 02:43:57 +00:00
Benjamin Nauck
a071d8a808 Merge pull request #21995 from chennes/moveBackupPolicy
Extract BackupPolicy class into its own file to facilitate automated testing
2025-07-12 17:58:14 +02:00
Chris Hennes
406ba22aa2 Merge pull request #21975 from pieterhijma/transaction-rename-property
Core: Add redo/undo to property rename
2025-06-30 10:36:26 -05:00
Benjamin Nauck
5ed384c7f3 App: Expose allowObject for groups in python 2025-06-22 23:50:12 +02:00
Benjamin Nauck
1cf0f8570d App: Trim “Gui::” and “NavigationStyle” more securely
By using regex we can remove prefix and suffix more securely as we can’t assume all navigation styles are formatted the same (mistakes can happen)
2025-06-16 11:07:40 -05:00
Pieter Hijma
6d5d4757ef Core: Add undo/redo support to property renaming 2025-06-16 17:57:44 +02:00
Chris Hennes
d86a05ddc2 App: Extract BackupPolicy into its own file
No code changes except to add AppExport to BackupPolicy
2025-06-15 10:33:42 -05:00
Benjamin Nauck
92bf6e5f2a Merge pull request #21147 from 3x380V/units
Units rework II
2025-06-04 15:58:00 +02:00
theo-vt
8e50eef9d4 App::Document addObject and removeObject code reuse (#21481)
* Concatenate all of Document::addObject[s] functions into calls to Document::_addObject

* Fix minor logic errors

* use ::isPerformingTransaction instead of direct operators

* Uniform case for enum

* Remove dupplicate code for Document::removeObject

* Use CamelCase for enum and fix comment
2025-06-03 14:19:20 +00:00
Ladislav Michl
a0917bcc7c Base: Units: introduce unit one
Dimensionless quantities have all exponents equal to zero.
Such quantities are simply numbers. The associated unit is
the unit one, symbol 1, although this is rarely explicitly
written.

See chapter 2.3.3 Dimensions of quantities, The International
System of Units, 9th edition.
2025-06-03 09:31:38 +02:00
Ladislav Michl
0c9584ab2d Base: Quantity: use isDimensionless whenever feasible
Quantity is often queried for Unit just to see if it has a dimension.
Ask Quantity directly using isDimensionless() method and modify that
method not to care about Quantity value validity; no user was ever
asking for value validity.
2025-06-03 09:31:38 +02:00
Ladislav Michl
6c4880782e App: Quantity: use predefined unit types 2025-06-03 09:31:38 +02:00
Kacper Donat
df6949dcde Merge pull request #21427 from tritao/async-occt-progress
Part: Introduce `OCCTProgressIndicator` and port operations to support it.
2025-06-02 18:04:38 +02:00
Chris Hennes
b83dfa2ae7 Merge pull request #21706 from 3x380V/fix_start
Start: Fix crash
2025-06-02 09:45:09 -05:00
Yorik van Havre
640642eed2 Translations: Merged crowdin translations 2025-06-02 11:48:26 +02:00
Yorik van Havre
26e16765b0 Translations: updated ts files 2025-06-02 11:07:28 +02:00
wmayer
58ba945659 App: Handle possibly raised exception in ZipFile constructor
This fixes the issue reported at:
https://forum.freecad.org/viewtopic.php?t=93619
2025-06-02 08:22:07 +02:00
Joao Matos
2da938b545 Part: Add OCCT progress support to Part boolean and shape builders
Introduce a `Build(const Message_ProgressRange&)` overload in
`FCBRepAlgoAPI_BooleanOperation` (guarded by `OCC_VERSION_HEX <
0x070600`) and route user-abort checks around the operation. Add a new
`OCCTProgressIndicator` adapter (`OCCTProgressIndicator.h`) that bridges
`Message_ProgressIndicator` to `Base::ProgressIndicator`. Include
`OCCTProgressIndicator.h` where needed and update all `Build()` calls in
`TopoShape` and `TopoShapeExpansion` to pass
`OCCTProgressIndicator().Start()`, enabling singleton-based progress
reporting and user-break handling.
2025-05-30 18:25:32 +01:00
Gonzalo Odiard
a07d9f032f App: Make Label property on Document read only (#21562)
Fixes: #10010
2025-05-29 22:43:34 +02:00
Pieter Hijma
8c01d577e7 Core: Update expressions on property rename
This includes both expressions in generic containers and in
spreadsheets.
2025-05-26 18:11:27 +02:00
Pieter Hijma
3797e35dbc Core: Add a Python interface for property rename 2025-05-26 18:11:27 +02:00