Commit Graph

260 Commits

Author SHA1 Message Date
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
Uwe
7a551a82f3 [App] remove header
slipped in with previous commit but will be part of a PR
2022-03-02 01:53:28 +01:00
Uwe
71d6e43d54 [Base] some sorting and cleanup 2022-03-02 01:51:05 +01:00
Uwe
d3473523d2 [App] Application: remove unused includes
- also sort the includes
2022-02-22 13:17:07 +01:00
wmayer
659a55ffb9 Base: Exception handling:
* Harmonize FreeCAD with Python exception types
* Implement AbortException::getPyExceptionType() to avoid handling it in client code
* Remove catch block for plain C strings
2022-01-19 18:00:04 +01:00
luz paz
546a243ad9 App: fix doxygen typo 2021-12-30 01:09:10 +01:00
wmayer
dcb0c4c75f App: workaround for boost's file_lock with version < 1.76 on Windows 2021-12-20 16:08:47 +01:00
Chris Hennes
aab7cb408c Core: Modify metadata Python handling to use dict
Rather than trying to use a generic Py::Object and assigning properties
to it, use a Py::Dict object for simple data structures like Url,
Maintainer, and Author.

Update metadata standard to include subdirectory
2021-12-18 20:29:42 -06:00
wmayer
33fa183392 App: [skip ci] improve importing a Python module when passed as program argument 2021-12-01 13:34:24 +01:00
wmayer
3be18613e4 App: remove code to copy user config from old to new location 2021-11-24 19:11:34 +01:00
wmayer
1c6b7cca9d App: save version number of the most important libraries 2021-11-23 12:55:49 +01:00
wmayer
387661360c App: standard path handling
* distinguish between temp and cache location
* document's transident directory is created in the cache location
* add functions to access temp and cache location via Python
2021-11-15 16:26:25 +01:00
wmayer
fde9663c24 App: do not raise an exception if application data directory doesn't exist because this breaks the CI tests
Instead try to create the directories and throw an exception if this fails.
2021-11-12 10:17:35 +01:00
wmayer
873d79d3b5 App: [skip ci] add program option --keep-deprecated-paths to keep old path names 2021-11-11 14:04:40 +01:00
wmayer
e32f841264 App: fix issue 0002956 2021-11-11 13:51:14 +01:00
wmayer
0b75d53676 App: code cleanup 2021-11-10 18:33:26 +01:00
wmayer
68be996d57 App: add a CMake test to check if C runtime provides backtrace symbols 2021-11-09 14:16:12 +01:00
wmayer
c83ada98d6 App: add new config key UserConfigPath to store the path to the config files 2021-11-09 13:46:26 +01:00
wmayer
55afa21ba1 App: issue 0002956: implement XDG_CACHE_HOME 2021-11-09 00:20:55 +01:00
wmayer
a9b7506007 App: further code refactoring in Application::ExtractUserPath() 2021-11-08 22:17:06 +01:00
wmayer
b32b908eae App: keep custom user data path as is if FREECAD_USER_HOME or FREECAD_USER_DATA is set 2021-11-08 18:28:02 +01:00
wmayer
dbd3e8784a App: code refactoring in Application::ExtractUserPath() 2021-11-08 16:17:08 +01:00
wmayer
ae0198ea0a App: split Application::ParseOptions into two functions
to simplify handling of options that should be processed before determining user directories
2021-11-08 11:10:13 +01:00
wmayer
f36126770c App: harmonize API of App::Application
* make getHomePath() static and return a std::string
* make getExecutableName() static and return a std::string
2021-11-04 10:50:09 +01:00
Zheng, Lei
c349e78f45 Minor code change according to suggestions 2021-10-30 12:30:45 +08:00
Zheng, Lei
ba4c992eaa App: use enum in API Application::getDocumentByPath() 2021-10-30 11:03:55 +08:00
Zheng, Lei
ad9ad30c00 App: fix external document loading
The problem happens when partial loading is enabled. If document A
contains a link to some object in document B, it will load B as partial
document with only that object and its necessary dependencies. But if
document A contains another link to some object in document C which also
has a link to some object in document B, the link in document C may not
be restored, because document B is partially loaded without the linked
object. This patch will check for this case and reload document B for
more objects.

See an example reported in
https://forum.freecadweb.org/viewtopic.php?p=495078#p495078
2021-10-30 11:03:52 +08:00
wmayer
c74d2b8dd5 App: add class PropertyRotation 2021-10-29 12:40:32 +02:00
wmayer
a261249217 App: replace ctime() with boost's date/time functions in Application::logStatus() 2021-09-30 19:50:19 +02:00
0penBrain
1061773d56 [Core] exit() can prevent core dumping, use abort() instead on debug mode 2021-08-18 18:12:31 +02:00
wmayer
f9a54c3385 Py3: fixes #0004081: Abillity to show console output when running under Python 2021-04-01 17:51:10 +02:00
wmayer
acbb604a16 App: use std::wstring_convert instead of QString to encode/decode unicode/utf-8 2021-03-29 16:19:13 +02:00
wmayer
6c01302a19 Gui: fix unicode handling of path names on Windows 2021-03-29 15:41:13 +02:00
Benjamin Nauck
dbc4611bb2 App: Refactor win appData setup with boost::filesystem 2021-03-29 15:03:41 +02:00
Benjamin Nauck
a7e6171e49 App: Refactor *nix appData setup with boost::filesystem 2021-03-29 15:02:49 +02:00
Benjamin Nauck
c431672e87 App: Refactor mac appData setup with boost::filesystem
This will make it easier to add support for migration when moving
appData from `Library/Preferences` to `Library/Application Support`.
2021-03-29 15:02:36 +02:00
Chris Hennes
3788105210 [Core] Remove deprecated code for 0.20 2021-03-07 08:44:57 +01:00
wmayer
c243741296 Gui: [skip ci] re-add removed Py_INCREF of module 2021-02-27 11:13:30 +01:00
wmayer
dd4dd204d0 App/Gui: fix memory leaks:
+ add function to cleanup units and quantities in debug build
+ fix reference leak in PropertyVector::getPyPathValue()
+ fix reference leak in PropertyPlacement::getPyPathValue()
+ in InterpreterSingleton::init() use a static std::vector<wchar_t*> instead of a C array
  to free memory at program end
+ in MainWindow::closeEvent() explicitly delete all task watchers
+ in ReportOutputObserver constructor pass parent to QObject
+ in PropertyEditor destructor explicitly delete QItemEditorFactory
2021-02-27 10:56:19 +01:00
luz paz
84553bf191 App: Fix header uniformity, trailing whitespace, and doxygen headers 2020-11-19 13:38:37 +01:00
wmayer
f0aba7a561 MSVC: [skip ci] make working with C++17 compiler 2020-11-09 16:13:34 +01:00
Priit Laes
d6b8725b34 build: boost: Drop branches requiring boost-1.46 2020-10-13 12:56:28 +02:00
Priit Laes
6cc4d8aec2 build: boost: Drop boost-1.44-specific checks 2020-10-13 12:56:28 +02:00
Chrismettal
a33a1f184d Seed randomizer on application init 2020-10-12 19:10:06 +02:00
wmayer
f55f7f040a Python: [skip ci] expose Python types in their corresponding modules 2020-09-21 15:04:26 +02:00
Zheng, Lei
dcae039c52 App/Gui: warn when loading/saving file with identical physical path 2020-08-31 14:05:14 +02:00
wmayer
5cc5ac3e9a App: improve support of portable version of FreeCAD 2020-08-05 15:47:50 +02:00
wmayer
1a34d3da1f Coverity: Uncaught exception 2020-07-20 17:34:26 +02:00
Zheng, Lei
36d046d489 App/Gui: introduce temporary document
Add new argument to Application::newDocument() to create a temporary
    document. Also exposed to Python API App.newDocument() with a named
    argument 'temp'.

    The temporary document is marked with status bit 'TempDoc'. The user
    will not be prompt for saving when closing. The undo/redo is disabled.
    The AutoSaver skips it. And the tree view will not show it.
    PropertyXLink allows linking to/from object within a temporary document
    without saving.
2020-07-14 19:36:05 +02:00
Bernd Hahnebach
986aca5b82 App: properties, add vacuum permittivity 2020-06-29 17:46:41 +02:00