Commit Graph

56 Commits

Author SHA1 Message Date
pre-commit-ci[bot]
25c3ba7338 All: Reformat according to new standard 2025-11-11 13:49:01 +01:00
Markus Reitböck
412b72d8d6 Start: use CMake to generate precompiled headers on all platforms
"Professional CMake" book suggest the following:

"Targets should build successfully with or without compiler support for precompiled headers. It
should be considered an optimization, not a requirement. In particular, do not explicitly include a
precompile header (e.g. stdafx.h) in the source code, let CMake force-include an automatically
generated precompile header on the compiler command line instead. This is more portable across
the major compilers and is likely to be easier to maintain. It will also avoid warnings being
generated from certain code checking tools like iwyu (include what you use)."

Therefore, removed the "#include <PreCompiled.h>" from sources, also
there is no need for the "#ifdef _PreComp_" anymore
2025-09-22 23:17:39 +02:00
Markus Reitböck
749ac36615 do not use precompiled header for setting global compiler definitions and to disable compiler warnings
only 4 of these warnings are still relevant, CMake shall be used to disable them

Compiler definitions:

  NOMINMAX:
    * is already globally defined in SetGlobalCompilerAndLinkerSettings.cmake

  WIN32_LEAN_AND_MEAN:
    * use CMake target_compile_options on relevant targets

Warnings that still occur:

  C4251, C4273, C4275: all related to dllimport / export
    * use CMake target_compile_options on relevant targets

  C4661: no suitable definition provied for explicit template instantiation request
    * triggered in Mesh because of Vector3D in Base - not all functions are defined in header
    * use CMake target_compile_options on relevant targets

Warnings that are Currently not triggered (fix code if they appear again):

  C4005: macro redefinition

  C4244: argument conversion, possible loss of data

  C4267: conversion from size_t to type, possible loss of data

  C4305: truncation from type1 to type2
    * only occurrence disabled in Reader.cpp

  C4522: multiple assignment operator specified

  C5208: unnamed class in typedef name

Obsolete Compiler warnings:

  C4181: not mentioned in Microsoft docs anymore

  C4290: C++ exception specification ignored except to indicate a function is not __declspec(nothrow)
    * throw(optional_type_list)  deprecated in C++17

  C4482: nonstandard extension used: enum 'enumeration' used in qualified name
    * not generated for compilers that support C++11

  C4503: 'identifier': decorated name length exceeded, name was truncated
    * obsolete since Visual Studio 2017

  C4786: not mentioned in Microsoft docs anymore
2025-09-11 20:21:04 -05:00
bofdahof
998f4e4d45 Console: rename PascalCase named methods to camelCase 2025-05-06 17:50:21 +02:00
Chris Hennes
4428ba3bf2 Start: Apply reviewer suggestion
Co-authored-by: Pieter Hijma <pieterhijma@users.noreply.github.com>
2025-04-21 21:21:52 +02:00
Chris Hennes
42cd4d76f2 Start: Refactor f3d to use worker threads 2025-04-21 21:21:52 +02:00
Adrian Insaurralde Avalos
da35868b96 Start: refactor f3d previews, use caching and configurable f3d path 2025-04-21 21:21:52 +02:00
MaxiV
c8411bdbba Start: Switch to using QProcess, not std::system 2025-04-21 21:21:52 +02:00
MaxiV
a2055d7b90 Start: add f3d previews 2025-04-21 21:21:52 +02:00
tritao
6c2c6847eb CMake: Cleanup targets with transitive dependencies 2025-03-17 12:12:06 +00:00
Furgo
59ddb94aba Start: enable multiple custom folder paths
* Update tooltip to indicate support for multiple custom folder paths
* Remove migration step that worked around lack of multiple folder support
* Remove obsolete migration method
* Address linter warnings: build/include_what_you_use
* Add QStringList as requested on https://github.com/FreeCAD/FreeCAD/pull/19948/files#r1982267583
2025-03-06 10:13:40 +01:00
Furgo
779e1efa55 Start: add option to show only FreeCAD native files in custom folder 2025-03-02 06:44:54 +01:00
Benjamin Bræstrup Sayoc
755229df23 Build: suppress warnings from 3rd party libraries
Warnings from 3rd parties are not relevant and are only polluting the warning output. Marking these libraries as SYSTEM suppresses warning.

https://gcc.gnu.org/onlinedocs/cpp/Invocation.html#index-I
https://gcc.gnu.org/onlinedocs/cpp/System-Headers.html
2025-02-25 14:39:05 +00:00
Joao Matos
cc6ffb44de Core: Move PyCXX library to src/3rdParty. 2025-02-24 16:36:06 +00:00
Benjamin Bræstrup Sayoc
dda05369c4 Base: remove unneeded includes 2025-02-18 11:07:57 -06:00
Furgo
2e07d3be95 Start: add optional custom folder view (#19473)
* Start: add optional additional folder view

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Added logic to migrate ShowCustomFolder parameter

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Rename Additional to Custom folder

* Change Start page text to sentence case for consistency

* Fix breakage created by pre-commit.ci

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Rearrange migration logic to make it more explicit

* Revert "Change Start page text to sentence case for consistency"

This reverts commit 8a31a1238c0380ddbe13e6e5838a3be6b13400a5.

* Make parameterGroup local

* Apply suggestions and linter improvements

* Adapted suggestion to simplify migration logic

* Start: Warning -> Message for rename of ShowCustomFolder

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>
2025-02-17 10:18:35 -06:00
Joao Matos
27ebc68a11 CMake: Modernize build files using outdated Python variables. 2025-02-16 10:21:26 -06:00
tritao
9636068460 Base: Move zipios library to 3rdParty folder. 2025-02-14 13:08:28 -06:00
Benjamin Bræstrup Sayoc
b5517aa9f4 Start: Use QStringLiteral 2025-02-10 18:32:45 +01:00
wmayer
e235e94fda Start: Fix opening file for writing 2024-12-04 09:49:53 -05:00
wmayer
f51804729e Start: Fix extracting thumbnails on Windows 2024-11-28 18:56:37 +01:00
wmayer
55d5123b9a Start: Implement Thumbnail Managing Standard
as specified here: https://specifications.freedesktop.org/thumbnail-spec/0.8.0/

The changes are:
* use MD5 as hashing algorithm
* write thumbnails to ~/.cache/thumbnails/normal
2024-11-26 11:14:52 -05:00
wmayer
3070832e54 Start: Show thumbnail if filename contains a dot
Fixes #18109
2024-11-26 09:42:05 -05:00
wmayer
2819ca438e Start: fixes #17857: Icon-files of the startup screen are not removed from /tmp
It's basically a port of #10951 to the new start page implementation.

Note: Icon files are not removed but re-used instead.

The commit adds some new functions:

* getThumbnailsImage()
  Returns the name of the PNG inside a project file

* getThumbnailsName()
  Returns the directory name containing the image files

* getThumnailsParentDir()
  Returns the parent directory of the directory containing the image files

* getThumbnailsDir()
  Returns the path to the thumbnail directory. There is no need to always create a unique directory
  after each restart because it doesn't harm if the thumbnail directoy contains deprecated files.

* createThumbnailsDir()
  Creates the thumbnail directoy if it doesn't exist yet.

* getSha1Hash
  Helper function to compute a SHA-1 hash of a given path. If the same path is passed
  then the hash value will be the same.
  This way it can be avoided to create a different image file from a project file
  after each restart.

* getUniquePNG
  Computes the path of a PNG image file for a given project file. It's also possible
  to pass an arbitrary string as argument.

* useCachedPNG
  If the PNG image exists and if it's newer than the project file True is returned
  and False otherwise.

For a given project file it is checked if the thumbnail directory already contains
a cached image. If it's newer than the project file it will used, otherwise it will
be re-created.

Fix freecadCanOpen() abd DisplayedFilesModel::addFile() to also check for lower-case
file extensions.
2024-11-20 09:44:35 -05:00
wmayer
4185605d5e clang/gcc: Add build option FREECAD_WARN_ERROR to force to make warnings into errors 2024-05-29 13:37:07 +02:00
wmayer
56f84c8042 Fix various compiler warnings:
* fix -Wunused-parameter
* fix -Wunused-function
* fix -Wunused-private-field
* fix -Wunused-variable
* fix -Winconsistent-missing-override
2024-04-30 16:59:31 +02:00
Chris Mayo
b509511f44 Start: Allow system Microsoft GSL to be used 2024-04-24 14:23:21 -05:00
wmayer
003cbb2020 Start: do not try to open empty file name 2024-04-23 11:53:52 +02:00
Chris Hennes
e0debb03ca Start: Cleanup and minor bugfixes
Start: Remove QML include
Start: Eliminate errors on unreadable images
Start: Ensure command succeeded
Start: Correct startup WB
Also re-enable the migrator, which was not the culprit.
Gui: Roll back unneeded NoneWorkbench changes
2024-04-21 22:27:50 -05:00
Chris Hennes
cfb0873d38 Start: Migrate to simple command 2024-04-21 22:27:50 -05:00
Chris Hennes
d0a87d3e0c Start: Remove old WB and replace with new 2024-04-21 22:27:50 -05:00
pre-commit-ci[bot]
222a2520b1 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2023-09-12 13:02:35 -04:00
wmayer
17bf44ec9a Start: apply clang format 2023-09-03 14:21:53 +02:00
wmayer
9a749e51c8 Mod: modernize C++: use equals default 2023-08-21 20:21:30 +02:00
Uwe
6ef4e8155f [Start] Gui: enable precompiled headers
- also some whitespace changes
2022-12-14 04:02:05 +01:00
Uwe
e5cb1b24cd [Start] remove unused includes
- also some sorting
2022-12-07 05:09:18 +01:00
berniev
ddafb98813 Mod: Use override etc 2 2022-08-09 12:52:26 +02:00
wmayer
b4ef571688 Start: include header with export macros 2022-03-24 20:51:04 +01:00
Uwe
c9dee5e70a [Start] remove unused headers and Xerces 2022-03-20 21:36:16 +01:00
wmayer
0054cbddaa Fix coverity issue:
* CID 332682: Resource leak
* CID 350607: Resource leak
* CID 332677: Resource leak
2022-03-14 11:35:04 +01:00
luz paz
d238da0fab StartWB: Make all file headers uniform and trim whitespace [skip-ci]
[skip ci]
2020-11-19 13:42:23 +01:00
wmayer
c36bdb4e34 CMP0050: make Start module aware of cmake policy 2018-08-20 20:40:08 +02:00
wmayer
55545fbcad py3: ported Start to python3 2017-03-02 12:46:57 +01:00
wmayer
d78d747760 + simplify porting of Start module to Python3 2016-01-17 22:13:32 +01:00
Mateusz Skowroński
43a4a5938c Fix files encoding. Go from ISO8859-1 to UTF-8. 2015-09-21 19:50:49 -03:00
wmayer
7d98705396 + harmonize XercesC cmake variables with official check 2015-07-28 14:17:49 +02:00
wmayer
d95003e92c + replace deprecated PYTHON_INCLUDE_PATH 2015-07-25 18:29:42 +02:00
Sebastian Hoogen
debca91e98 remove support for automake 2014-11-26 10:26:30 +01:00
wmayer
6b89c03181 Add initial support for different libdir (jobermayr) 2014-05-10 12:57:38 +02:00
mdinger
337f05d56e Move python module prefix and suffix properties into macro to be set together 2014-05-03 16:00:30 +02:00