Commit Graph

1095 Commits

Author SHA1 Message Date
Abdullah Tahiri
5f52885fbf Ilogger - Separate behaviour for user exposed and not exposed loggers 2023-05-23 14:24:45 +02:00
Abdullah Tahiri
9d9f928b2d Console: Extend framework with intended recipient and content type metainformation
==================================================================================

Limitations of the current framework:
- Codes the translated state only for TranslatedNotification as part of the type.
- Does not code the intended recipient (user, developer, ...)

Problems:
- Some errors are intended for developers, some errors may only be intended for users,
if, for example, there is another developer error which already contains all the information.
The current framework may lead to information duplication or to showing to the user developer
information, which is perceived as annoying.
- Logs shall be in English (report view), while every message to the user (UI) shall be translated.
The current framework can only differentiate where to report based on subscription (legacy logs do not
subscribe to notifications), and for notifications, whether it is translated or not depends on the type.
It is not possible to code errors or warnings that are already translated.

Solution:
- To extend the ILogger interface with additional metainformation, indicating the intended recipient
(User, Developer, All), and the content of the message (translated, untranslated, untranslatable). The latter
is useful for dynamic strings that won't find a match in the translation framework.

Bonus:
- This extended version allows to do away with translatednotification, as now any message can be independently
marked as translated or untranslated or untraslatable.
- It is now possible to provide the right icon of severity (error, warning, info), even when it is only user intended
and already translated.
2023-05-23 14:24:45 +02:00
Chris Hennes
9be9f2f8d1 Merge pull request #9582 from chennes/translateUnitSchemes
Gui: Translate unit system UI
2023-05-17 11:06:27 -05:00
marioalexis
623e65f2f0 Base: Include needed header file 2023-05-16 12:46:34 -03:00
Chris Hennes
8b73653633 Gui: Translate unit system UI 2023-05-15 20:16:46 -05:00
Chris Hennes
ec575c612a App/Toponaming: Add missing include to Writer 2023-05-11 14:34:35 -05:00
Chris Hennes
cc7effcfc7 App/Toponaming: Lint and compilation cleanup 2023-05-11 14:34:35 -05:00
Chris Hennes
9ebaa34e1e App/Toponaming: Add supporting code
Support for reading and writing binary data, and a small tweak to bitmask.
2023-05-11 14:34:35 -05:00
wmayer
8b5451a167 MSVC: fix build failure related to PCH 2023-04-12 08:30:44 +02:00
marioalexis
2b68404892 src: Add descriptor protocol support for Python C++ extension modules 2023-04-10 16:53:51 +02:00
Abdullah Tahiri
8321a9defb Console: wrong alignment 2023-03-26 11:33:57 +02:00
Uwe
e0695a18c8 [FEM] Elmer: add missing deformation info
- also some formatting changes done by clang
2023-03-26 09:32:56 +02:00
wwmayer
3c98b09128 Base: fixes #8902: Segfault from Part WB functionality in python scripting (#8927) 2023-03-17 22:50:30 +01:00
Gaël Écorchard
695c258fa3 Merge branch 'master' into empty_identifier_not_allowed 2023-03-15 14:14:15 +01:00
wmayer
6345ae3d7a MSYS2: fix creation of ProgressIndicatorPy 2023-03-14 22:24:33 +01:00
luzpaz
42a91608c4 Refine previous fix for #8866 2023-03-14 15:59:33 +01:00
luzpaz
f2e77a903b Fix misc. grammar and whitespace 2023-03-13 15:01:05 +01:00
wmayer
5297e94859 MSYS2: fix linking error with extern templates 2023-03-12 16:17:38 +01:00
Abdullah Tahiri
980f7f7f7a Base: Observer - fix template instantiation
===========================================

Merit goes to Werner for figuring out the issue and proposing a MSVC/MSYS2 viable solution:
https://github.com/FreeCAD/FreeCAD/pull/8781#issuecomment-1464898566
2023-03-12 06:06:29 +01:00
Daniel-Khodabakhsh
071200ac8a Add various matrix related expression functions (#8603)
Adds a few new Expression functions with the goal to:

- Simplify Placement, Rotation, Vector and Matrix object creation.
- Add new matrix functions for rotation and translation.
2023-03-11 20:13:23 -06:00
Gaël Écorchard
936c14a675 Do not allow an empty identifier 2023-03-10 13:10:00 +01:00
Abdullah Tahiri
ee0c3ad5c1 Console/ILogger: Refactor and extension
=======================================

Refactor:
 - Substitute the use of variadic templates with parameter packs.
 - Use recently incorporated external library "fmt" to handle printf like formating.
 - Extensive cleaning of pragmas and unnecessary forward declarations.
 - Parameter packs and libfmt provide a much stronger type checking now, so
   conversions that are by standard implicit as bool to int need an explicit static_cast
   to avoid compilation warnings.

Extension:
 - Include a notifier field, so that the originator of the message can be provided. E.g. Document#DocumentObject
 - Include a new type of message called CriticalMessage, this message is intended to have
   special behaviour in the future. Namely, it will be used to notify forward compatilibity issues.
   It will be used to substitute the current signal/slot mechanism.
 - Include two new types of messages for user notifications (Notification and TranslatedNotification). This messages
   will be use to convey UI notifications intended for the user (such as non-intrusive message about the usage of a tool). There
   are two versions to mark whether the string provided as a message is already translated or not. When using the console system for
   notifications, these notifications may originate from the App or the Gui. In the former, it is generally the case that the strings
   of messages are not (yet) translated (but they can be marked with QT_TRANSLATE_NOOP). In the latter, often the messages to be provided
   are already translated.

Python support for CriticalMessage, Notification and TranslatedNofification, including shortcuts:

    Crt = FreeCAD.Console.PrintCritical
    Ntf = FreeCAD.Console.PrintNotification
    Tnf = FreeCAD.Console.PrintTranslatedNotification
2023-03-07 16:13:23 +01:00
mosfet80
d50f1c9b3e Merge branch 'master' into removeGZstream 2023-03-01 19:43:56 +01:00
Andrew
ace46189c2 remove unused FDstream file 2023-03-01 12:28:00 -06:00
wmayer
f195c3a0ca Base: catch exception raised by Rotation::setValue 2023-03-01 18:43:15 +01:00
wmayer
a23d862b2b Base: fix/ignore some clang-tidy warnings 2023-02-28 15:17:06 +01:00
wmayer
545aa0eed9 Base: make static const predefined quantities 2023-02-28 15:17:06 +01:00
wmayer
752e33d340 Base: fix Lint warnings in Quantity 2023-02-28 15:17:06 +01:00
wmayer
c8a35d85fe Base: fix pow() of Quantity 2023-02-27 22:13:08 +01:00
wmayer
75fedd8146 Base: handle several Lint warnings 2023-02-27 20:07:01 +01:00
wmayer
57eb7a5b07 Base: add missing != operator to Quantity 2023-02-27 20:07:01 +01:00
wmayer
06fc99edfe Base: fix pow() of Unit 2023-02-27 20:07:01 +01:00
Uwe
9e211c7f93 [Base] fix issues with new units
- also sort units for better overview
2023-02-26 22:19:31 +01:00
Uwe
eb24cf2638 [Core] add missing velocity property
- fixes compilation because declared in header but no code
- also sort the properties to keep the overview
2023-02-26 16:38:02 +01:00
Oliver Oxtoby
806c47311e [App] [Base] Add missing Property classes for all Units (#6717)
- Add missing Property classes for all Units
- Add missing units to unit calculator, as well as some missing string representations
- also change units used for dynamic viscosity to the customary Pa*s
2023-02-26 15:28:28 +01:00
Jolbas
554a40f91c Fix create Rotation from scaled matrix
Support for creation of Rotation from matrices which is a combination of non uniform scale and a rotation
Fixes according to review
Scale -1 is Uniform, Not NoScaling
Fix hasScale() when negative scale
2023-02-24 20:33:40 -06:00
mosfet80
54c0512360 Merge branch 'FreeCAD:master' into master 2023-02-23 16:11:30 +01:00
0penBrain
0d577a8789 Base: introduce 'getSafeUserUnit' that fallbacks to full precision and internal unit ...
... in case unit schema would zero a non-zero quantity

 For example, using '1 mil' with UnitsSchemaImperialDecimal schema
2023-02-23 15:22:07 +01:00
Andrew
0b54ecacfa remove unused GZstream library interface files 2023-02-22 16:01:30 +01:00
wmayer
a8a6a7ac25 Fixes #8206: FreeCAD segfaults being run with parameters (e.g .desktop file has /usr/bin/freecad --single-instance) 2023-02-11 17:49:52 +01:00
Uwe
94a5bf7780 [Core] add quantity Magnetization
- needed for FEM and Material
2023-02-08 20:33:58 +01:00
Uwe
a58c74c556 [Core] disable the the unit Oersted
- is not feasible for practical usage and (was up to now not used, thus no consequence)
  moreover, Oersted is a cgs unit while we use SI units, thus also not suitable for FEM, only makes problems for magnetization
2023-02-08 19:59:36 +01:00
Uwe
a9b8be3e00 [Core] add current density
- necessary to implement electromagnetic features to the FEM WB
2023-02-04 03:22:24 -06:00
Andrew
e90b364c6e remove deleted files in CMakeList 2023-01-24 08:40:43 -07:00
mosfet80
354da8d49f Revert "Update CMakeLists.txt"
This reverts commit 10e8c98a189a4ecfb5a43b61d6c076682b324499.
2023-01-24 08:40:43 -07:00
mosfet80
513f68eb26 Update CMakeLists.txt
Remove unused old files
2023-01-24 08:40:43 -07:00
luzpaz
5d3f56989d Fix various indentation issues (tabs->spaces) 2023-01-23 16:59:28 +01:00
luzpaz
79e150a81b Fix trailing whitespace, typos, headers
Fix trailing whitespace, typos, and header uniformity.
2023-01-23 00:34:37 +01:00
luzpaz
0d7c00c3c8 Fix trailing whitespace 2023-01-20 23:26:04 -06:00
wmayer
e570d8553e Inspection: move to new style connect() 2023-01-13 15:57:18 +01:00