Commit Graph

1104 Commits

Author SHA1 Message Date
Abdullah Tahiri
624592fc8b Interpreter: Fix lack of notifier in DeveloperError call 2023-06-01 19:25:00 +02:00
Abdullah Tahiri
ad9cef7bfa Console: Ensure macros have a notifier string 2023-06-01 19:25:00 +02:00
Connor Worrell
edf1bbf6f4 [Base] US Building Schema correct sign on fraction 2023-05-31 19:53:49 -04:00
Abdullah Tahiri
0638a1b507 Console: Update loging macros to only send to developers 2023-05-25 14:09:06 +02:00
Abdullah Tahiri
55a61e82a9 Console: Improve the documentation 2023-05-23 14:24:45 +02:00
Abdullah Tahiri
1b59b75482 Base: Interpreter - Mark Exception reporting and stack as intended for developers 2023-05-23 14:24:45 +02:00
Abdullah Tahiri
5e5d863968 Console: Remove Translated Notification message
===============================================

With the new console extension, the translation state is coded separatedly.

Therefore, it is possible to code a Notification as translated without needing a specific type.

Additionally, any other message, such as Error of Warning can be translated.

It does not make sense to leave this message, if only for reasons of coherence and to simplify
maintainance of code.
2023-05-23 14:24:45 +02:00
Abdullah Tahiri
3b82bf62f7 Console: Extend the Python interface 2023-05-23 14:24:45 +02:00
Abdullah Tahiri
125a6f7bc4 Console: Convenience dedicated functions 2023-05-23 14:24:45 +02:00
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