Commit Graph

40 Commits

Author SHA1 Message Date
Benjamin Bræstrup Sayoc
c0c6df10ec Sketcher: Use QStringLiteral 2025-02-10 18:32:45 +01:00
tritao
65466d580b Gui: Reorganize the selection files into a top Selection folder. 2025-02-03 17:56:57 +01:00
Benjamin Nauck
dd6aa9f3c7 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
Benjamin Nauck
08c9a191e2 Add template based SelectionSingleton::countObjectsOfType
Also convert code to use this new method
2025-01-13 18:55:15 +01:00
Ladislav Michl
4d6ed9d531 Base: UnitsSchema: return std::string 2024-12-23 17:48:42 +01:00
Ladislav Michl
2ea8a633ac Base: Quantity: return std::string 2024-12-23 17:48:42 +01:00
Ladislav Michl
0ee3c9f8e6 Base: Drop QString-std::string conversion functions from Tools
Convenience helpers function Tools::toStdString and Tools::fromStdString
were implemented for Qt4 or older to perform utf8 aware conversion as
QString::toStdString/QString::fromStdString were using toAscii/fromAscii
internally (see https://dreamswork.github.io/qt4/classQString.html).

Since Qt5 QString uses toUtf8/fromUTf8, which makes the helper functions
obsolete (see https://doc.qt.io/qt-5/qstring.html#fromStdString).
2024-12-02 23:30:53 -05:00
ppphp
51c6dbd3e3 fix unique ptr usage in sketch (#15008)
* fix unique ptr usage in sketch

* [pre-commit.ci] auto fixes from pre-commit.com hooks
2024-07-08 10:53:49 -05:00
wmayer
4c9b21d003 Sketcher: fix typo in function name -> areCollinear
The same function exists in the Draft module but don't fix it there to avoid to possibly break add-ons
2024-03-26 10:34:01 +01:00
PaddleStroke
8afa940ca2 [Sketcher] Scale DSH : adds a tool to scale geometries. (#11265)
* Scale DSH : sketcher tool to scale geometries.
* Sketcher: Rotate and Scale : Move indexInVec to Utils.h as indexOfGeoId

---------

Co-authored-by: Paddle <PaddleStroke@users.noreply.github.com>
2024-02-01 09:08:58 +01:00
Paddle
b0176c2d92 Sketcher: add isPeriodicBsplineCurve helper function 2024-01-17 11:05:28 -03:00
Florian Foinant-Willig
7bc493acb5 Fix Sketcher::getRadiusCenterCircleArc(circle) 2023-12-17 16:01:29 +01:00
Abdullah Tahiri
4d860203fc Sketcher: Utils/CommandConstraints/EditModeConstraintCoinManager - refactor duplicated code 2023-12-17 16:01:29 +01:00
Florian Foinant-Willig
94eaa7db78 Sketcher: Arc to arc or circle distance constraint 2023-12-17 16:01:29 +01:00
Paddle
58aa2d5cec Adds areColinear function to Utils. 2023-11-13 14:00:18 +01:00
Florian Foinant-Willig
a32851073d Sketcher: modernize type checking 2023-10-23 18:09:23 +02:00
Florian Foinant-Willig
602819478c Sketcher: add TypeId checking helpers 2023-09-14 20:52:03 -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
Chris Hennes
791fe02934 Sketcher: Reformat to current clang-format standard 2023-09-04 07:17:28 -05:00
Florian Foinant-Willig
014a4e671a Sketcher: Add command to switch arc helper 2023-08-03 13:06:05 +02:00
Abdullah Tahiri
ec899d75c6 SketcherGui: apply clang-format 2023-05-25 17:08:03 +02:00
flachyjoe
21c2eb6014 Sketcher: Add circle to circle distance constraint 2023-03-19 14:05:35 +01:00
Abdullah Tahiri
6e763b678a Utils: getGeoIdsOfEdgesFromNames 2023-03-02 20:42:48 +01:00
Abdullah Tahiri
5a0e7d4ee3 Sketcher: Rewrite grid command
==============================

Fix unresolved issues:
https://github.com/FreeCAD/FreeCAD/pull/7754/files#r1025493443
https://github.com/FreeCAD/FreeCAD/pull/7754/files#r1019077589
https://github.com/FreeCAD/FreeCAD/pull/7754/files#r1025502204

Summary:
- EventFilter unnecessary in light of new implemented signal aboutToshow. The data of the drop-down action is updated only when necessary (when it is going to be shown).
- Structure of individual commands under drop-down simplified to a single action, rendering the need for groupcommands obsolete, while keeping all the grid related controls and
the logic for controlling the grid in a single action class.
- Reduce the complexity and overload of isActive to the bare minimum (determining if it is active and updating the icon to the right icon if so).

Refactor:
- Better name for utils functions, as when a DSH is active, the edit mode VPSketch is a data member of DSH, sketchgui (so this function is not really necessary when the DSH is active).
2023-02-25 23:13:55 +01:00
Abdullah Tahiri
816fa3fe3e Sketcher: Refactor miscelaneous command isActive() 2023-02-25 23:13:55 +01:00
0penBrain
dfe4c35600 [BugFix] Sketcher: correctly handles angle strings displayed at cursor for all locales, fixes #8611 2023-02-24 10:05:57 +01:00
wandererfan
a810fa68b4 [Sketcher]fix cursor display of angles 2023-01-30 11:04:42 -08:00
Ajinkya Dahale
a609bce527 [Sketcher] Use tangent at B-spline knot constraint
Also squashes:

[Sketcher] Make tangent-at-knot with just knot and line

[Sketcher] Disallow tangent at C0 knot

If passed on to planegcs can cause segmentation fault.

[Sketcher] (Re-)Support tangent at B-spline end-knots

New code had introduced problems for non-periodic spline end-points, and
periodic spline "end-points" were not supported anyway.

(here end-points mean star/end points)
2022-12-24 18:22:16 -06:00
Uwe
0e062212b5 [Sketch] Gui: U - End: remove unused headers
- also some sorting
2022-12-13 04:02:20 +01:00
Ajinkya Dahale
430b0baa00 [Sketcher] Stop treating knots as fixed in GUI commands
This stops constraints from becoming non-driving when not set.

Follow 0penbrain's comments

typo
2022-11-16 15:35:37 +01:00
Uwe
9ff9d589a2 [Base, Sketcher] remove redundant boolean checks 2022-10-10 02:49:17 +02:00
wmayer
e2a552a9c6 Sketcher: [skip ci] remove unused includes 2022-09-25 11:09:29 +02:00
wandererfan
dd14b42829 [Sketcher]make cursor coord display unit aware 2022-08-31 16:31:27 -04:00
Abdullah Tahiri
c6459bb7d3 Utils refactor w/o commandcreategeo 2022-06-28 19:28:06 +02:00
Abdullah Tahiri
bae8050fac Sketcher-Utils: Refactor common code up 2022-06-28 19:27:20 +02:00
Ajinkya Dahale
3e7830c21b [Sketcher] Allow multiplicity change of B-Spline end knots
The first and last knots (which are often also poles) of a B-Spline are not
represented in sketcher as knots, but as end points of the curve. This creates a
problem when we want to change the multiplicities of those knots. As a
workaround, these points are treated differently.

NOTE: While it is technically possible to have end knots in a non-periodic
spline with degree <= degree of the curve, `Geom_BSplineCurve::RemoveKnot()`
fails for the first and last knots, so we are stuck with this. So, this commit
effectively only makes knot multiplicity change possible for periodic splines.
For non-periodic splines this commit just changes the confusing "no knot is
selected" message to an unhelpful "multiplicity modification failed".
2022-02-19 16:10:43 +01:00
Abdullah Tahiri
fbda0498fd Sketcher: Fix recompute issue
=============================

Bug:
https://forum.freecadweb.org/viewtopic.php?f=3&t=64548

Apparently a find/replace gone wrong when moving code in:
f29a6a0518
2021-12-17 15:05:51 +01:00
Abdullah Tahiri
97c82a6703 Sketcher: Convert PointPos into an enum CLASS 2021-12-11 16:17:21 +01:00
Abdullah Tahiri
bb76be1371 Sketcher: GeoId, GeoElementId and GeoUndef refactor
===================================================

This commit is an independent refactor of the identifications used at Sketcher level.

It introduces a new type "GeoElementId" as a combination of GeoId and PointPos.

It moves the Undefined GeoId, previous Constraint::GeoUndef to GeoEnum, together with all
other fixed values of GeoIds.
2021-12-11 16:17:21 +01:00
Abdullah Tahiri
f29a6a0518 Sketcher: move GUI common utility functions to a new file Utils.h
=================================================================

Common utility functions used by almost all Command classes were previous in Constraint.h.

Aside from providing a very bad intent, it created unnecessary header dependencies.

This commit separates these common functions into a new header, utils.h, which is then
used in all command classes where it is necessary.
2021-12-07 16:30:55 +01:00