Commit Graph

516 Commits

Author SHA1 Message Date
luzpaz
129d5882a7 Migrate domain name from freecadweb to freecad (#9352)
* Migrate domain name from freecadweb to freecad
* Migrate src/Mod/Material files
* Migrate Stylesheet related files
* Migrate *.svg files
* Migrate miscellaneous files
* Migrate some build files
* Migrate recently added TD AR_IRAM template files

Closes #6415
2023-04-24 15:19:20 -05:00
0penBrain
01e0948a2a [Bugfix]Sketcher: edge/point colors in preferences aren't took into account
Regression introduced by 58a9af2 (PR #9151)
2023-04-10 11:13:02 +02:00
wmayer
6237a0e67b Gui: rename getPointOnScreen() to getPointOnViewport() 2023-04-08 13:51:32 +02:00
wmayer
73f5e5ad57 Sketcher: restore toolbars when changing between workbenches in edit mode
This partially fixes issue #9135
2023-04-03 17:36:06 +02:00
0penBrain
58a9af212a Sketcher: do not apply line/edge color preference to existing sketches, fixes #8188 2023-04-01 16:31:17 +02:00
0penBrain
8bea52a5bf Gui: prevent crashes on MacOS using boost::format 2023-03-31 15:22:03 +02:00
xtemp09
a65a7f6740 [Sketcher] Fix segmentation fault in ViewProviderSketch::setEdit
Closes #8979
2023-03-25 00:02:32 +01:00
Abdullah Tahiri
41408b411f Encapsulate interface data members 2023-03-19 19:14:22 +01:00
Paddle
0f274c2e07 Sketcher: Snap: initial implementation: - creation of SnapManager class. - Move grid snap to this new class. - Add snap to object. - Add snap at angle. 2023-03-19 19:14:22 +01:00
flachyjoe
21c2eb6014 Sketcher: Add circle to circle distance constraint 2023-03-19 14:05:35 +01:00
Abdullah Tahiri
c604d1741d 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
Abdullah Tahiri
a32a49d2de ViewProvider: 3 fixed visual layers implementation
==================================================

Naive 3 layer implementation to enable the removal of current rendering order.

Layers is conceived to be much more powerful, when combining User Layers, which
work at structural level (conceptually grouping of geometry by the user) and visual
layers (which control the representation of parts of User layers).

However, that implementation will take quite some time and effort to get it right.

This commit enables 3 layers:
1. Normal layer (legacy one)
2. Discontinuous layer (experimental layer which discontinuous edges)
3. Hidden layer (a normal layer which is hidden)

One geometry can be added to one and only one visual layer at a given time.

So this enables to hide geometry (by assigning it to the hidden layer), which is
useful for selection when lines are overlapping, acting as a work-around for the
rendering order. It also allows to rework the rendering order (without the user
being affected), which is also necessary for the final visual layers implementation.
2023-03-02 20:42:48 +01:00
Abdullah Tahiri
a8ebeaa27d ViewProviderSketch: update geometry layer configuration on visual layer property change 2023-03-02 20:42:48 +01:00
Abdullah Tahiri
c75a7b524b Sketcher: ViewProviderSketch
============================

Adding PropertyVisualLayerList to ViewProviderSketch
2023-03-02 20:42:48 +01:00
Abdullah Tahiri
849f8ced13 Part/Sketcher: Grid - set grid orientation
==========================================

Extend ViewProviderGridExtension so that it is aware of the absolute direction of the XY plane on which the grid is to be drawn.

Fix the calculation of the cam origin.
2023-02-25 23:13:55 +01:00
0penBrain
05a5e7b341 Sketcher/Grid: fix error in parameter function call
Sketcher/Grid: fix algorithm computing the automatic grid spacing

Sketcher/Grid: forcefully redraw grid when one of its parameter is changed

Sketcher/Grid: always authorize user to change grid spacing, even if 'auto spacing' is enabled

Sketcher/Grid: apply a default factor of 10 for 'auto spacing' if number of subdivision is 1
2023-02-25 23:13:55 +01:00
Abdullah Tahiri
f9e0c1fd57 Sketcher: Grid - correction of design decisions
===============================================

Removal of ViewProviderGridExtension properties:
-GridStyle
-GridSnap

Improvement of ViewProviderGridExtension API:
- color via App::Color

Toolbar grid command:
- Conversion of Snapping to edit parameter
- Snap gets a class enum to support future Snapping functionalities as edit parameter

Sketcher Settings:
- Removal of snap preference

Behaviour:
- ShowGrid, GridAuto, GridSize preferences do not change any existing VP. They apply to any newly created sketch.
- Do not limit grid to hardcoded values

Snap to grid:
- Code updated to use closestpoint functionality provided by the extension,

Several other fixes
2023-02-25 23:13:55 +01:00
Abdullah Tahiri
d586ea6238 Sketcher/Part: Grid - Architecture
==================================

- Move all grid specific code out of ViewProviderSketch and EditModeCoinManager.
- The code in made into a new extension in Part - ViewProviderGridExtension
- ViewProviderSketch starts deriving from this new extension
- ViewProviderSketch configures the extension according to its Grid preferences
- Grid code refactored to remove hardcoded sketcher preference parameters.
- ViewProviderGridExtension handles property name/type changes within its competence.
2023-02-25 23:13:55 +01:00
Paddle
2cba01586a Sketcher: Grid rework. Include:
- Adding 'auto spacing' option.
    - Drawing grid dynamically on viewer area only.
    - Moving code to coinManager.
    - Adding a 'grid tool' to sketcher-edit-mode toolbar.
2023-02-25 23:13:55 +01:00
wmayer
3e58513c24 Mod: fix some compiler warnings:
* QString::indexOf() is now marked as [[nodiscard]]
* QApplication::fontMetrics() is deprecated, use the constructor of QFontMetricsF
* fix -Wunused-result
* fix -Wunused-but-set-variable
2022-12-31 21:54:45 +01:00
Uwe
0e062212b5 [Sketch] Gui: U - End: remove unused headers
- also some sorting
2022-12-13 04:02:20 +01:00
wmayer
d119c1c7a5 Gui/Sketcher: disable geometry deselection when user holds Ctrl or additionally Shift or Alt 2022-11-05 22:56:38 +01:00
Paddle
c9aadeec4c Gui: Allow to hide toolbars that are not needed.
In particular this hides edit-mode sketcher toolbars when in non-edit-mode.
    And hides non-edit-mode toolbar when in edit-mode.
    It also hides the structure toolbar when in edit-mode (as it is completely deactivated)
2022-11-04 12:02:16 -05:00
Paddle
eeddcfd2aa Base: + Sketcher: disable deselection when user holds Ctrl. 2022-11-04 10:44:52 -05:00
wmayer
af0a014cf2 Qt6 port:
* QApplication::setFallbackSessionManagementEnabled has been removed
* QString::medRef() has been removed. Use QString::mid() again.
* QTextStream::setCodec has been removed
* Use operator QVariant of the QFont class to make code Qt5 and Qt6 compatible
* Signature of QTreeWidget::mimeData() has changed in Qt6. Remove TreeWidget::mimeData() because it doesn't change the implementation
* QLayout::setMargin() is deprecated in Qt5 and has been removed in Qt6. Use QLayout::setContentsMargins()
* QDateTime::toTime_t() is deprecated in Qt5 and has been removed in Qt6. Use QDateTime::toSecsSinceEpoch()
* QDesktopWidget is deprecated in Qt5 and has been removed in Qt6. Use QScreen
2022-11-01 16:55:40 +01:00
0penBrain
4c6ba8ed4d Sketcher: remove unneeded flag 2022-10-21 15:15:43 +02:00
wmayer
ee0a0817f9 Sketcher: fix possible crash when closing the sketcher
For more details see the forum thread: https://forum.freecadweb.org/viewtopic.php?f=13&t=72774
2022-10-21 10:23:53 +02:00
0penBrain
525c05fae5 [Bugfix]Sketcher/BackEdit : Backedit lost if user changed camera mode
- in current implementation, backedit feature is lost if user changes camera mode (for example from orthographic to
   perspective, or oppositely). This happens because when changing camera mode, Coin actually do not just change a
   parameter of the camera node, but delete the current camera node and add a new one to the scenegraph. Thus the
   SoFieldSensor currently used (attached to camera orientation) is just detached and sensing is left -- notice is would
   be same with a SoNodeSensor attached to camera node --. The solution is to attach the sensor at scenegraph root node
   so it isn't lost when camera mode changed. No pre-check (such as checking if camera node changed since last call) has
   been added currently because it would not actually reduce callback execution time (and even worsen it).
2022-10-19 11:34:17 +02:00
Uwe
9ff9d589a2 [Base, Sketcher] remove redundant boolean checks 2022-10-10 02:49:17 +02:00
Uwe
f982d776fb [skip CI] [Sketcher] ViewProviderSketch.cpp: Clang formatting
- to please the CI (too long lines etc.)
2022-10-02 20:34:12 +02:00
Uwe
d6afbb5718 [Sketcher] rename a variable to please spellchecker
- also some code style improvements
2022-09-14 09:54:07 +02:00
0penBrain
b76da40885 [Bugfix]Sketcher: prevent dangling state of Shift key if key released out of Quarter 2022-09-13 22:20:15 -05:00
0penBrain
968fb5be34 Sketcher/BackEdit: makes clip plane switch side according to view side 2022-09-09 16:09:42 +02:00
0penBrain
7928a8c3a0 Sketcher: makes TempoVis properties read only
as they are not intended to be manually modified
2022-09-09 16:09:42 +02:00
0penBrain
b40d800550 Sketcher/BackEdit: makes view orientation factor accessible to coin managers 2022-09-09 16:09:42 +02:00
0penBrain
36fccfdd08 Sketcher/BackEdit: Add camera sensor to VP that detects side and redraw if side changed 2022-09-09 16:09:42 +02:00
berniev
da9ebc572f Mod: redundant void 2 2022-08-08 10:27:50 +02:00
berniev
b796a0d376 Mod: use empty 2022-08-06 19:30:13 +02:00
wmayer
d344ccc4eb Sketcher: [skip ci] Fix several clazy issues:
* Missing reference in range-for with non trivial type [-Wclazy-range-loop-reference]
* Unused QString [-Wclazy-unused-non-trivial-variable]
* Missing emit keyword on signal call [-Wclazy-incorrect-emit]
* Don't call QList::operator[]() on temporary [-Wclazy-detaching-temporary]
* Use multi-arg instead [-Wclazy-qstring-arg]
* Maybe you meant to call ViewProvider2DObjectGrid::onChanged() instead [-Wclazy-skipped-base-method]
2022-07-25 12:56:09 +02:00
Uwe
88a06f8f10 Mod: remove some unnecessary nullptr checks 2022-07-18 12:58:12 +02:00
Ajinkya Dahale
a88f69a9f0 [Sketcher] Only move one piece of B-spline when dragging 2022-07-02 07:35:30 +02:00
Abdullah Tahiri
3678a525a2 DrawSketchHandler: Cursor rework and preselect at point functionalities 2022-06-28 19:29:19 +02:00
Abdullah Tahiri
c6aa3c91e6 ViewProviderSketch: Cursor movement and preselection at sketch coordinates
===============================================================================

- Support to programatically move the cursor to sketch coordinates
- Support to try preselection at a given sketch coordinates
2022-06-28 18:58:47 +02:00
mosfet80
620c273c4e Boost version <=1.60 is never used in freecad 0.20 (#7038)
* Boost version 1.60 is never used in freecad 0.20
2022-06-24 02:20:26 +02:00
Uwe
68a499574a [Sketch] remove unnecessary Boolean comparisons 2022-06-19 18:35:52 +02:00
Chris Hennes
c9cffae11d Sketcher: Tweak pluralization of DoF 2022-06-08 09:16:48 -05:00
Ajinkya Dahale
6e97e9570c [Sketcher] Add missing newline 2022-06-04 22:35:55 +02:00
wmayer
57fcdd8182 Sketch: fixes #6890: Problem with Grid size preference 2022-05-16 10:18:42 +02:00
Zheng, Lei
3ef438eaf0 Fix mixed line endings 2022-04-26 12:52:55 -05:00
Chris Hennes
1ee046788d Sketcher: PR6497 move return statement to new line 2022-03-29 13:25:06 -05:00