Commit Graph

131 Commits

Author SHA1 Message Date
Chris Hennes
1a2070c36f Merge pull request #19636 from kadet1090/color-in-base
Base: Move App::Color to Base
2025-03-02 16:36:40 -06:00
Joao Matos
e0cd89ca66 Gui: Group Inventor headers in View3DInventorViewer.h. 2025-02-25 23:03:51 +00:00
Joao Matos
80d4cf9f40 Gui: Remove QtOpenGL.h. 2025-02-25 23:03:51 +00:00
Joao Matos
c3e5069190 Gui: Cleanup Qt OpenGL usings in QtOpenGL.h.
Previously the code defined compatiblity usings in `QtOpenGL.h` header,
which I think was added for backwards compatiblity with previous Qt
OpenGL widgets.

As far as I can tell, this is not necessary anymore, and can be cleaned
up.
2025-02-25 23:03:51 +00:00
Chris Hennes
9db06a5c87 Merge pull request #19719 from Rexbas/navicube-accumulative-animation
Gui: Accumulate orientation for NaviCube flat button animations
2025-02-24 17:15:45 +00:00
Kacper Donat
8dbc4042b3 Gui: Add 3 point lighting 2025-02-23 22:51:13 +01:00
Bas Ruigrok
ec041c0859 Gui: Return animation from setCameraOrientation and translateCamera 2025-02-21 21:57:00 +01:00
Kacper Donat
13fbab9e42 Base: Move App::Color to Base
Every basic data type is stored in Base module, color is standing out as
one that does not. Moving it to Base opens possibilities to integrate it
better with the rest of FreeCAD.
2025-02-17 21:10:26 +01:00
Chris Hennes
5766974067 Merge pull request #16995 from benj5378/axisColors
[Gui] Axis colors changeable
2025-02-03 18:11:46 +01:00
tritao
551c2e48fb Gui: Reorganize the selection files into a top Selection folder. 2025-02-03 17:56:57 +01:00
Benjamin Bræstrup Sayoc
44e3a94f29 [Gui] Make axis colors of corner axis changeable 2025-01-24 15:45:43 +01:00
Florian Foinant-Willig
ea8814785a Sketcher infinite axes 2024-11-25 18:27:10 +01:00
wmayer
a20d70d71a Core: In View3DInventorViewer::getPointOnXYPlaneOfPlacement throw exception
If no intersection point can be found throw a Base::RuntimeError
2024-11-11 01:10:44 +01:00
wmayer
6b932aa96e Gui: Use of Multisample class 2024-07-11 17:39:23 +02:00
xtemp09
70d9fe38b0 Fix the crash when closing a document
Closes #14189. This commit partially reverts
626e6a1a70aeca40a3773f617a2cef0093991a75 and
95748f8f5eac02007b6f3def89f65fc2181aba09.
2024-06-24 10:49:27 -05:00
0penBrain
4857ef19f2 Gui: offer possibility to editing view provider to handle "Select All" command 2024-05-27 10:52:00 -05:00
Bas Ruigrok
52b6f4f5ad Gui: Add alignToSelection() method and command 2024-05-13 19:04:06 +02:00
wmayer
b9f5d29a4f Gui: fixes #5609: Add MSAA 6x option 2024-03-14 11:41:33 +01:00
Paddle
a8ed4dd9a7 Assembly: Implement special drag mode for revolute. 2024-02-13 08:25:46 +01:00
Kacper Donat
bb52790710 Gui: Add ability to set coordinate system axis letter color
Fixes: #12172
2024-02-12 18:07:02 +01:00
Bas Ruigrok
ea8b5b4b39 Gui: Add a separate checkbox for enabling spinning animations (#11534)
* Gui: Create group box for animation preferences

* Gui: Add spinning animation checkbox

* Gui: Implement isAnimating() for NavigationAnimator

* Gui: No need to enable animations in DemoMode

The spin animation is played regardless of the user preference and does not need to be enabled before starting the spin animation

* Gui: Change comment
2023-12-04 10:50:29 -06:00
Rexbas
affc49049e Gui: Update rotation center indicator after zoom 2023-11-24 22:43:48 +01:00
wmayer
c81d52a5b2 Gui: replace SbBool with bool in View3DInventorViewer 2023-10-25 19:40:59 +02:00
wmayer
9a5cbcb805 Gui: fix lint warnings in View3DInventorViewer 2023-10-25 19:40:59 +02:00
Rexbas
56b60baeb2 Gui: Revert breaking Python interface change for viewPosition() 2023-10-25 11:17:55 +02:00
Rexbas
0441ea10fc Gui: Refactor navigation animations
- Animations are played through an Animator
- Standard animations have a fixed duration and inherit from QVariantAnimation
- The animation duration can be changed in the preferences
- Fix animations when using the two arrows above the NaviCube
- Start an animation or start and wait for an animation
- Replaces standard camera animations (e.g. by selecting standard views or NaviCube) with FixedTimeAnimation
- Replace View3DInventorViewer's CameraAnimation with FixedTimeAnimation
- Replace OpenInventor navigation style infinite spin animation with SpinningAnimation
- Stops an active animation when a new animation is started
- Stops an active animation when the user starts dragging, panning or zooming
- Refactor reorientCamera so it can be used in animations
- Enable animations by default
2023-10-25 11:17:55 +02:00
wmayer
e0d624bc66 Gui: rename methods setBacklight() & isBacklight() to harmonize with setHeadlightEnabled() & isHeadlightEnabled() 2023-10-24 13:30:40 +02:00
Yorik van Havre
f1fb45960d Revert "Gui: Refactor navigation animations" 2023-09-26 19:44:16 +02:00
Rexbas
dc216cde2a Gui: Refactor navigation animations
- Animations are played through an Animator
- Standard animations have a fixed duration and inherit from QVariantAnimation
- The animation duration can be changed in the preferences
- Fix animations when using the two arrows above the NaviCube
- Start an animation or start and wait for an animation
- Replaces standard camera animations (e.g. by selecting standard views or NaviCube) with FixedTimeAnimation
- Replace View3DInventorViewer's CameraAnimation with FixedTimeAnimation
- Replace OpenInventor navigation style infinite spin animation with SpinningAnimation
- Stops an active animation when a new animation is started
- Stops an active animation when the user starts dragging, panning or zooming
- Refactor reorientCamera so it can be used in animations
- Enable animations by default
2023-09-04 21:43:41 +02:00
Rexbas
20c462f45a Gui: Improve object center rotation mode 2023-08-16 16:02:32 -05:00
luzpaz
5b698e6b68 Fix various typos 2023-08-13 08:17:01 -07:00
Rexbas
b0dbdfc74b Add visual indication for the rotation center 2023-07-11 17:33:47 +02:00
wmayer
1491e526e7 Gui: workaround to show content of image plane
This workaround is needed on some platforms after the refactoring of the NaviCube code. For more details see also:
https://github.com/FreeCAD/FreeCAD/pull/9356#issuecomment-1529521654
2023-05-01 23:32:24 +02:00
Jolbas
b613a4ea27 Refactor Navigation Cube
-Use std commands in menu coming with icons
-Only draggable if activated in menu
-Remove textures except labels and used gl fill instead
-Borders on surrounding buttons
-Fix some openGL issues
-Remove duplicate parameter managment. Kept and improved the one in View3DSettings
-Remove lots of other redundant code
-Replaced FontSize param with FontZoom and enabled auto zoom/size on labels.
-Merged BorderColor and TextColor to single EmphaseColor parameter
-Merged ButtonColor and FrontColor to BaseColor parameter
-Added ChamferSize parameter to control edge and corner size
-Use glDrawArrays() innstead of glBegin() and glEnd()
-Draw butt ends on RGB coordinate system
-Fixe issues where cube switch corner on resize window
2023-04-24 12:19:10 +02:00
wmayer
e9a9413c71 Gui: rename getPointOnScreen() to getPointOnViewport() 2023-04-08 13:51:32 +02:00
wmayer
6509cc72e7 Gui: add method to convert between QPoint and SbVec2s considering device pixel ratio 2023-04-08 13:51:32 +02:00
wmayer
d6190cb79c Gui: add enum types to handle background gradients
This fixes some API flaws where booleans were used to distinguish between three different types
2023-04-04 18:44:27 +02:00
xtemp09
414c803ff3 [GUI] Radial gradient implementation
This commit implements radial gradient as background and adds the option
to settings. It also renames "Color gradient" as "Linear gradient",
keeping Linear gradient default. Internally, it remains unchanged for
compatibility.

Radio gradient is more suitable for CAD, since it gives a more balanced
color distribution across the screen, improving visibility of model and
sketches with a halo-like effect.
2023-04-02 16:33:01 +07:00
Paddle
e0b1117701 Core: View3DInventorViewer, add 3 functions:
- getDimensions
- getMaxDimension()
- getCenterPointOnFocalPlane()
2023-02-25 23:13:55 +01:00
wmayer
9dc366f817 Gui: fix regression that NaviCube cannot be switched off any more 2023-02-07 22:16:09 +01:00
Uwe
5fdd405a69 [Gui] allow to specify font for NaviCube
- the problem is that depending on the OS, the font of the NaviCube is hardly readable. For example under Windows 11, there is no Helvetica font and therefore an ugly replacement font is used. On some laptop screens the font is too large or too small etc.
- as solution this PR add the change the NaviCube's font and font size

- the PR also fixes an issue that the position (corner) of the NaviCube was not respected when the NaviCube is recreated. This fix is necessary for the PR therefore included

- as by-product the PR fixes #8082 since every change in the preferences now properly recreates the NaviCube

- the PR also removes the strange and unused class "HuuhaaClassPy"
2023-01-27 02:23:46 +01:00
wmayer
308cf4ffb0 Gui: code-refactoring
Split selection handling from View3DInventorViewer and move to View3DInventorSelection
2022-11-16 20:27:14 +01:00
wmayer
23961706be Gui: modernize C++: replace 'typedef' with 'using' 2022-08-29 14:09:18 +02:00
berniev
3877fc62c3 Gui: Single arg ctors must be explicit (PR #7369) 2022-08-24 15:06:03 +02:00
berniev
75fa455c5d Gui: Use override etc 2 2022-08-09 12:43:23 +02:00
berniev
3d1f70765a Gui: redundant void 2 2022-08-08 10:21:44 +02:00
wmayer
3fddaf4a2f Fix several clazy issues:
* Q_PROPERTY should have either NOTIFY or CONSTANT [-Wclazy-qproperty-without-notify]
* Use Q_ENUM instead of Q_ENUMS [-Wclazy-qenums]
* Add missing a Q_OBJECT macro [-Wclazy-missing-qobject-macro]
* Signal/Slot arguments need to be fully-qualified [-Wclazy-fully-qualified-moc-types]
2022-07-24 19:03:30 +02:00
wmayer
299c20e918 Gui: get rid of some const_cast 2022-06-28 15:26:02 +02:00
wmayer
0082a80148 Gui: add convenience function View3DInventorViewer::getBoundingBox() 2022-04-12 13:43:58 +02:00
wmayer
1178df06b4 Gui: modernize C++11
* use nullptr
2022-03-23 18:41:21 +01:00