Commit Graph

76 Commits

Author SHA1 Message Date
marioalexis
2b68404892 src: Add descriptor protocol support for Python C++ extension modules 2023-04-10 16:53:51 +02: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
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
Andrew
0b54ecacfa remove unused GZstream library interface files 2023-02-22 16:01:30 +01: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
0d7c00c3c8 Fix trailing whitespace 2023-01-20 23:26:04 -06:00
wmayer
6770b0ba7d Base: move class ProgressIndicatorPy to its own files 2022-11-22 15:07:33 +01:00
Chris Hennes
1fac3fead0 cMake: Add support for compiling against Qt6 (#7647)
Removes the BUILD_QT5 flag and adds a new FREECAD_QT_VERSION option,
which can be set to either "Auto" (default), 5, or 6. Auto detects which
version of Qt is installed on the system and chooses it. If both version
are installed, Qt5 is used.

Note that this DOES NOT implement compiling against Qt6, it only adds
the necessary cMake infrastructure to begin work on the source code
changes that will be required.
2022-10-31 09:24:09 -05:00
wmayer
3569b73965 Base: [skip ci] Add function to read the CD of a zip file from a std::istream 2022-09-05 18:53:37 +02:00
wmayer
d2d2bd57fe Base: implement Line3 Polygon3 class 2022-08-04 02:17:22 +02:00
wmayer
7628569b43 Base: add Precision class
and move the Python binding from Part to Base module
2022-07-30 17:10:56 +02:00
wmayer
bfb544a739 Base: add convenience classes/functions that are marked as deprecated in Qt 5.15 and removed in Qt 6 2022-07-14 14:52:23 +02:00
wmayer
91e4e468dd Base: move ILogger sub-classes to their own source files in order to reduce including stream classes in client code 2022-03-06 10:13:47 +01:00
wmayer
6c2e1a2d6e Base: implement a lightweight smart pointer for PyObject like Py::Object to reduce includes of Python.h in header files 2022-03-04 15:51:51 +01:00
wmayer
254bc470b0 Base: [skip ci] support bitmask operations for enums 2022-01-08 15:48:40 +01:00
wmayer
f978765b8a Base: fix memory leak when creating object with factory method 2021-12-11 14:26:40 +01:00
wmayer
8371162427 Base: remove obsolete swig source files 2021-04-26 11:20:13 +02:00
Mateusz Skowroński
9ade68e9bf Fix CMake warning: qt5_make_output_file is not part of the official API, and might be removed in Qt 6. 2021-04-19 15:10:53 +02:00
Benjamin Nauck
be7cc40106 [Base] Remove unused std::make_unique back port
std::make_unique was introduced in c++14, so no need to have it back
ported anymore.
2021-03-06 21:20:32 +01:00
Bernd Hahnebach
0c9e6c6158 Base: add new unit schema for mm and N for use in FEM 2020-08-07 19:19:44 +02:00
wmayer
18e3be01eb CMake: use XercesC_LIBRARIES to store debug and release version of xerces 2020-03-16 12:24:40 +01:00
wmayer
79ef4be9de export typeid system to Python 2019-11-13 00:43:23 +01:00
wmayer
bd76bbd625 Add an XSD validation scheme and implement ParameterManager::CheckDocument(), function is used in the parameter editor 2019-10-14 22:56:03 +02:00
DeepSOIC
6a9e4b710b Base: ScLERP placement interpolation 2019-10-12 15:39:39 +02:00
wmayer
b14cf8a00d extend convertTo function to also support SbRotation/Base::Rotation 2019-09-06 21:29:51 +02:00
wmayer
8e582d68c4 use GNU directory structure on non-Windows systems 2019-08-22 16:57:11 +02:00
Abdullah Tahiri
1d2c45c845 Base: Move std::make_unique to Base 2019-07-14 12:37:35 +02:00
wmayer
344af8129b simplify handling of static Python libs 2019-07-03 16:09:47 +02:00
lo
1922c84ca0 cmake: add option to disable linking of python extension modules to python-libraries 2019-05-24 14:37:33 +02:00
wmayer
0521860740 rename BUILD_uSE_PCH to FREECAD_USE_PCH to be consistent with other build options 2019-04-15 13:31:31 +02:00
wmayer
193c253289 add module for Qt translation stuff 2018-10-28 12:58:14 +01:00
wmayer
4768028827 + fix cutting or selecting mesh in perspective projection mode 2018-10-11 10:48:27 +02:00
wmayer
0b3db26b24 reduce compile time after each time cmake configure is executed 2018-08-21 13:53:33 +02:00
wmayer
826b437940 reduce compile time after each time cmake configure is executed (swig) 2018-08-21 13:20:58 +02:00
hgutsche
1b00876014 Add library for concurremcy in >= VS2015
revert conditional in Points.cpp (i.e. reactivate parallel handling)
2018-08-11 11:55:51 +02:00
wmayer
0260370b65 + add option to switch off precompiled header 2018-07-25 20:17:11 +02:00
wmayer
bb1dbd720a handling of UTF-8 in zipios++ on Win32 2018-07-25 16:57:38 +02:00
Itai Nahshon
258ca0723d Add UnitsSchemaMmMin - izes are only in mm, speed in mm/munute. 2017-07-18 17:41:36 +02:00
wmayer
19d55fa227 fix issues in CoordinateSystem class and expose to Python 2017-06-20 21:22:59 +02:00
looooo
1355495f07 vs 2013 has already version info grater 18 2017-05-17 16:39:28 +02:00
Yorik van Havre
ccebc7d16b py3: Base: files A-I ported to python3
issue 0000995
2017-05-17 16:39:28 +02:00
Abdullah Tahiri
1d6ebb0e40 Exception Factory and producers 2017-05-13 15:27:57 +02:00
wmayer
743b83e853 Add switch to select between Qt4 and Qt5 2016-12-13 15:53:13 +01:00
wmayer
6cfaf916f8 remove superfluous Qt includes 2016-12-13 15:40:49 +01:00
Yorik van Havre
c8f12e5abb Added new units schema: Building Euro (everything in centimeters, areas/volumes in meters) 2016-05-25 19:10:48 -03:00
wmayer
0530114522 + fix build for FreeBSD 2015-09-02 18:06:37 +02:00