"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
Unlike in the bug description of issue 19654 the user doesn't have
to preselect an edge in the 3D view but first start the dimension
command and then select an edge.
This commit adds some security checks to TechDrawHandler::quit(),
TechDrawHandler::getPage() and TDHandlerDimension::onSelectionChanged()
to be on the safe side that no null pointers are dereferenced.
But the ultimative fix for this whole problem is to change
activateHandler() and immediately delete the passed TechDrawHandler if
it fails to find the appropriate QGVPage. This is needed as otherwise
the handler behaves like a ghost object that affects the selection
mechanism and disallows to select anything in the 3D view or the tree
view.
Fixes issue 19654
* TechDraw: add transactions to multiple commands
* Feed each 'Create Dimension' option to the translation macro
* Call fixSceneDependencies when re-adding dimensions so that it shows up at the right place
- Remove currently present magic numbers
- Hard type enums, so magic numbers can no longer be introduced. We don't want people to introduce magic numbers.
- Remove currently present magic numbers
- Hard type enums, so magic numbers can no longer be introduced. We don't want people to introduce magic numbers.
* [TD] remove unused headers
- also some sorting
- also improve readability by not using an abbreviation (we consistently don't abbreviate class names)
- correct interpretation of True vs Projected
- handle long subelement names in references
- fix "too small" value condition
- better error messages for bad dimension geometry
- separate validation, geometry and reference handling into
individual files
- improve 3d reference geometry handling
- eliminate duplicate dim creation code
- add Dimension reference repair dialog
- Refactor formatting out of DrawViewDimension
- move dimension repaint control to ViewProvider