Commit Graph

637 Commits

Author SHA1 Message Date
pjcreath
a2f3d98d5c Sketcher: prevent crash on undo/redo while dragging.
Fixes #25500
2025-11-24 08:54:50 -06:00
chris
2d4dac3fcc sketcher: fix issue #13852 resolve issue with state not updating constraint text 2025-11-23 23:28:51 +01:00
chris
6478ba2227 sketcher wb: fix issue #25076, resolve grid snapping placement 2025-11-17 10:51:28 -06:00
PaddleStroke
8373716537 Sketcher: Fix origin showing on sketch edit 2025-11-12 19:40:25 +01:00
pre-commit-ci[bot]
9fe130cd73 All: Reformat according to new standard 2025-11-11 13:49:01 +01:00
PaddleStroke
cfe4180dae Sketcher: Fix ctrlA with filter vertex index issue (#24665)
* Sketcher: Fix ctrlA with filter vertex index issue

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

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

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-10-16 13:01:30 -05:00
matthiasdanner
54c2470027 Sketcher: Fix Angle Constraint jumping to opposite side on movement (#24150)
* Sketcher: Fix Angle Constraint jumping to opposite side on movement

* implement way to dynamically disable snapping where not needed

---------

Co-authored-by: Matthias Danner <28687794+matthiasdanner@users.noreply.github.com>
2025-10-13 18:07:09 +02:00
PaddleStroke
603d0beb73 Sketcher: Make ctrlA work with filter (#24541) 2025-10-09 12:37:54 -05:00
Kacper Donat
7b4066f397 Sketcher: Do not force visibility of planes on edit
This updates the logic that had special handling for planes for the
temporary visibility feature of sketcher which was mishandled after move
to core datums.
2025-09-28 18:59:37 -05:00
matthiasdanner
bfb47a9a41 Sketcher: Display non-empty Sketch when having external geometry (#23660) 2025-09-23 11:58:26 -05:00
Markus Reitböck
45c02f7978 Sketcher: 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-23 00:51:00 +02:00
PaddleStroke
50db055a0f Sketcher: Coin resize when screen change. Fix #23267 (#23865)
* Sketcher: Coin resize when screen change. Fix #23267

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

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

* Update ViewProviderSketch.cpp

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-09-13 12:03:39 +02:00
PaddleStroke
cde481536e Sketcher: Fix ctrl A (#23866) 2025-09-12 15:40:24 -05:00
Matthias Danner
556f8b995d Sketcher: Fix Select all with BSplines and clean up selection logic 2025-09-12 12:56:41 -05:00
Bas Ruigrok
199f5d4d55 Sketcher: Cancel rubber band selection with RMB
Cleanup
2025-08-31 18:36:38 -05:00
Bas Ruigrok
15fe0ecd10 Sketcher: Don't show the context menu after rubber band selection 2025-08-31 17:24:28 -05:00
tetektoza
e41c36a82c Sketcher: Use different colors for touch/window selection (#23261)
* Sketcher: Use different colors for touch/window selection

As the title says. I think it was missing, so currently right to left
motion makes the box selection in Sketcher green with dashed lines,
whereas motion from left to right makes it blue with solid lines.

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

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

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-08-31 21:36:24 +02:00
tetektoza
4b11789f02 Sketcher: Introduce Select All (Ctrl + A) (#23289)
* Sketcher: Introduce Select All (Ctrl + A)

As the title says, this allows selecting all geometries on the sketch
with CTRL + A shortcut, plus also allows to select "Select All" option
from Edit menu.

* Sketcher: Use fmt instead of std::stringstream in selectAll

* Sketcher: Fix typo in selectAll

Co-authored-by: João Matos <joao@tritao.eu>

---------

Co-authored-by: João Matos <joao@tritao.eu>
2025-08-29 16:52:43 +02:00
paddle
76f2b120ff Sketcher: Port and fix internal faces from RealThunder's branch
Co-authored-by: Zheng Lei <realthunder.dev@gmail.com>
Co-authored-by: Kacper Donat <kacper@kadet.net>
Co-authored-by: Pierre-Louis Boyer <pierrelouis.boyer@gmail.com>
2025-08-25 17:09:10 +02:00
tetektoza
07d386fee4 Sketcher: Fix construction lines becoming solid after box selection
Currently if user tries to use box selection while having transformed
normal line to a construction line, the line becomes solid unless it
gets moved or new geometry is created.

The root cause of that is the `draw(true, false)` call which uses
outdated solver geometry where construction=false is being specified.
Solver updates lazily, which results in construction lines in normal
sublayer instead of construction.

So, this patch changes it to `draw(false, false)` after box selection.
This ensures the redraw uses current SketchObject geometry with
up-to-date construction flags. This should be safe, as box selection is
purely visual and we do not need geometry calculations in this
operation.
2025-08-24 22:48:14 -05:00
matthiasdanner
134e34944b Sketcher: Fix constraint selection in groups (#22937)
* Fix constraint selection in groups

* include paddlestrokes refactoring and fix for more than 2 constraints in a group

---------

Co-authored-by: Matthias Danner <28687794+matthiasdanner@users.noreply.github.com>
Co-authored-by: PaddleStroke <pierrelouis.boyer@gmail.com>
2025-08-24 22:08:32 -05:00
Matthias Danner
ff062983ef remove edit value option from non dimensional constraints 2025-08-15 13:51:14 +02:00
paddle
d259beadc5 Sketcher: Refactor TaskSketcherMessages to move most of the logic into Core to be reused by Assembly 2025-08-10 15:17:35 +02:00
theo-vt
30ce2ef619 Sketcher: Change the style of the curves in creation to match the construction/defining flag (#22407)
* Sketcher: Change EditCurvesDrawStyle to match either CurvesDrawStyle or CurvesConstructionDrawStyle in editDraw()

* Match color as well

* Match pattern scale as well

* Use enum instead of boolean flag

* Update src/Mod/Sketcher/Gui/Utils.h

---------

Co-authored-by: Kacper Donat <kadet1090@gmail.com>
2025-07-28 02:33:25 +00:00
matthiasdanner
57f251d742 Sketcher: Display arc angle and length constraints beyond center point (#22651)
* Allow arc segment length and angle constraints to go past the center point

* fix angle helper lines

* fix linter warning

* fix arc length calculation

---------

Co-authored-by: Matthias Danner <28687794+matthiasdanner@users.noreply.github.com>
2025-07-25 13:57:21 +02:00
PaddleStroke
64c8ec77f8 Sketcher: Dimension: Offset the label when moving mouse (#22387)
* Sketcher: Dimension: Offset the label when moving mouse

* Sketcher: Create dedicated enum for offset boolean

This improves readability because the intent must be stated explicitly.

---------

Co-authored-by: Kacper Donat <kadet1090@gmail.com>
2025-07-20 19:47:21 +02:00
PaddleStroke
15f2bb741e Sketcher: Fix random gray icon (#22502)
* Sketcher Fix #10027
2025-07-20 00:17:58 +02:00
Max Wilfinger
36659f0176 Sketcher: Update UI strings for consistency (#22167)
* Sketcher: Update UI strings for consistency

* Update src/Mod/Sketcher/App/Sketch.cpp

Co-authored-by: Ryan K <114723629+ryankembrey@users.noreply.github.com>

* Update src/Mod/Sketcher/Gui/Command.cpp

Co-authored-by: Ryan K <114723629+ryankembrey@users.noreply.github.com>

* Update src/Mod/Sketcher/App/SketchObject.cpp

Co-authored-by: Ryan K <114723629+ryankembrey@users.noreply.github.com>

* Update src/Mod/Sketcher/Gui/Command.cpp

Co-authored-by: Ryan K <114723629+ryankembrey@users.noreply.github.com>

* Update src/Mod/Sketcher/Gui/Command.cpp

Co-authored-by: Ryan K <114723629+ryankembrey@users.noreply.github.com>

* Update src/Mod/Sketcher/Gui/Command.cpp

Co-authored-by: Ryan K <114723629+ryankembrey@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Ryan K <114723629+ryankembrey@users.noreply.github.com>

* Apply suggestions from code review

* Apply suggestions from code review

---------

Co-authored-by: Ryan K <114723629+ryankembrey@users.noreply.github.com>
2025-06-30 22:51:46 +00:00
Karliss
d152bda853 Sketcher: fix Esc can leave setting synchronization 2025-06-30 09:51:08 -05:00
Jacques Beaurain
1bf656b6e3 Gui: HiDPI fixes for Sketcher (#21098)
* Gui: HiDPI fixes for Sketcher

(cherry picked from commit f043fd7c5c8a6ea003811453165eee7d643f3779)

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

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

(cherry picked from commit 42567ca9fcf2d6bab612715391a7b1911367f75d)

* Apply suggestions from code review

Co-authored-by: Kacper Donat <kadet1090@gmail.com>
(cherry picked from commit 28b52086e9cceae0e095421985479c546df49e44)

* qreal to double

(cherry picked from commit 4434ef18affa082a88390c1e68274de42f7c181e)

* more qreal to double

(cherry picked from commit df15eb6200d4ceab730ca8cf25ab0a90efe1cf41)

* Restore previous code which converted label size to points. View scaling would result in text that is too big.

* Ensure scaled marker size is one of the supported sizes for CIRCLE_LINE otherwise it would default to 7  (or what was set to "MarkerSize" in hGrp)

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

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

---------

Co-authored-by: Tim Ringenbach <tim.ringenbach@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Kacper Donat <kadet1090@gmail.com>
2025-05-06 19:47:09 +02:00
bofdahof
ba2c2ca5ad Console: rename PascalCase named methods to camelCase 2025-05-06 17:50:21 +02:00
Ladislav Michl
9683cf1e4f Base: rename Exception's PascalCase methods to camelCase 2025-05-05 23:50:01 +02:00
Benjamin Nauck
f22f3705db Use Base::toDegrees() instead of manually converting 2025-04-15 07:16:39 +02:00
Benjamin Nauck
1cff040fbc Sketcher: Add #include <limits> where used 2025-03-31 23:52:38 +02:00
Benjamin Nauck
3279a1dd8f Sketcher: Use std::numeric_limits and std::numbers instead of defines 2025-03-29 13:32:39 +01:00
Chris Hennes
9a77120e82 Merge pull request #20142 from bofdahof/ranges
Apply C++20 std::ranges (mainly to std::find)
2025-03-17 03:08:27 -05:00
bofdahof
fb71aa3292 Sketcher: apply std::ranges 2025-03-16 17:18:12 -05:00
Karliss
42790475d6 Add missing parent for messagebox and other popups
Unparented popups can easily get lost in backround, but they still block top level event loop when run with ::exec() thus preventing interactions with main window.  This mainly happens on wayland. Setting the parent ensures they are always kept on top and reasonably positioned.
2025-03-16 16:02:36 -05:00
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
Max Wilfinger
28aa531a02 Remove hack around geometry visibility in active sketch.
Revert #14386 and #16378
2025-02-24 22:09:37 +00:00
Kacper Donat
8dbc4042b3 Gui: Add 3 point lighting 2025-02-23 22:51:13 +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
Benjamin Bræstrup Sayoc
aa43ce8cc0 Sketcher: Use QStringLiteral 2025-02-10 18:32:45 +01:00
tritao
551c2e48fb Gui: Reorganize the selection files into a top Selection folder. 2025-02-03 17:56:57 +01:00
Benjamin Nauck
6f535f19fb Prefer to use BaseClass's isDerivedFrom<T> over non template or Base::Type's
Regex based changes, manually verified
2025-01-27 16:08:18 +01:00
Kacper Donat
676c2fe568 Gui: Add Show Plane utility to 2D Objects 2025-01-19 15:27:15 -05:00
Tobias Frost
460da406f8 spelling fixes (#18688)
* Fixes spelling of "Allow to" to "Allow one to"

and those variants:
Allows to -> Allows one to
allow to -> allow one to
allows to -> allows one to

* Fix "Let's -> Lets"

(and lower case variant.)

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

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

* Update src/3rdParty/salomesmesh/inc/MED_Wrapper.hxx

Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>

* Update src/Base/PyObjectBase.cpp
Update src/App/ExtensionContainer.h
Update src/App/PropertyContainer.h

Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>

* Use gerund in user-facing texts.

* Use gerund for two more user-facing strings.

Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>

* Update src/Mod/Fem/App/FemMeshShapeNetgenObject.cpp

Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>

* Update src/Mod/Fem/App/FemMeshShapeNetgenObject.cpp

Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>

* Update src/Mod/Fem/App/FemMeshShapeNetgenObject.cpp

Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>

---------

Co-authored-by: Tobias Frost <tobi@debian.org>
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-01-13 11:22:20 -06:00
Ladislav Michl
0b3adee2ab Base: Quantity: return std::string 2024-12-23 17:48:42 +01:00
Chris Hennes
7a0fc120d1 Merge pull request #18273 from Ondsel-Development/sk_group_drag
Sketcher: Group dragging
2024-12-09 12:29:49 -05:00
Florian Foinant-Willig
326a439d5b [Core] Fix for frozen status
A frozen object prevents the document to be saved
The frozen status propagates into object inheritance
A frozen sketch is no more editable
Transform and Placement can't be changed for a frozen object
The freeze icon is reduced
2024-12-06 11:56:48 -05:00