Commit Graph

2382 Commits

Author SHA1 Message Date
Uwe
6091c89947 [Sketch] change polyline icon
- the same intention as https://github.com/FreeCAD/FreeCAD/pull/7588 but proposal with less strokes
2022-11-06 08:09:45 +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
caa953ac55 Sketcher: Add concentric capabilities to coincidence constraint. 2022-11-04 13:21:01 -05: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
f2bc69647f Sketcher: Split sketcher toolbar in sketcher-edit-mode and sketcher-non-edit-mode. 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
8365f90c09 Sketcher: [skip ci] fix constraint dialogs to use QDialog instead of QWidget
With Qt6 this fixes a compilation error because uic uses the modern style of connect()
2022-11-02 13:49:14 +01: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
Chris Hennes
2f7be9e782 cMake: Add support for compiling against Qt6 (#7647)
Removes the BUILD_QT5 flag and adds a new FREECAD_QT_VERSION option,
which can be set to either "Auto" (default), 5, or 6. Auto detects which
version of Qt is installed on the system and chooses it. If both version
are installed, Qt5 is used.

Note that this DOES NOT implement compiling against Qt6, it only adds
the necessary cMake infrastructure to begin work on the source code
changes that will be required.
2022-10-31 09:24:09 -05:00
Paddle
f91d41f743 Optional : Point icon color fix. From green to red. This way internal points are yellow. Construction points are blue. The issue is that all normal points are construction. So they appear blue and not red. Not sure if that's a problem. 2022-10-29 20:25:34 +02:00
Paddle
d22e049930 Fix issues raised by OpenBrain. 2022-10-29 20:25:34 +02:00
Paddle
deff1f42e4 ElementWidget: Fix extended naming settings not initializing. Adds 'Collapse filter' option. 2022-10-29 20:25:34 +02:00
Abdullah Tahiri
1104a84587 Sketcher: ElementWidget - Rename ElementType to SubElementType - make SubElementType nested to ElementItem 2022-10-29 20:25:34 +02:00
Abdullah Tahiri
6ff553fa5d Sketcher: ElementItem - do not select/preselect invalid 2022-10-29 20:25:34 +02:00
Paddle
a656ffbd53 SKETCHER: Element widget rework see https://forum.freecadweb.org/viewtopic.php?f=8&t=72239&sid=b7787fadb4c2a7e9682d28f31ede5eb8 2022-10-29 20:25:34 +02:00
Abdullah Tahiri
bad35fe26c Sketcher: GeometryFacade - new static function to check for internal alignment 2022-10-29 20:25:34 +02:00
Roy-043
55510f33c5 Sketcher: Correct icon for Sketcher_CreatePointFillet 2022-10-25 00:33:28 +02:00
Abdullah Tahiri
bffb82d531 Sketcher: Solver - Improvement of popularity contest and bug fix
================================================================

Master has a problem in that internal alignment constraints are suggested to the user for removal.

This is fundamentally wrong, as an internal alignment constraint are an inherent part of the geometry. They cannot be the ones suggested for removal.

The popularity contest algorithm is an heuristic algorithm that determines which redundant/conflicting constraints should be proposed for removal.

Basically, the algorithm works on groups of redundant/conflicting constraints detected via the QR decomposition. A constraint may belong to more than one group.

The algorithm runs some heuristics, each constraint scoring a value, the one constraint from each group scoring the highest is proposed (is more popular and wins the contest).

This PR documents the algorithm, and adds a further condition, that internal alignment constraints are never proposed.

As the solver works with solver constraints as opposed to the sketcher, which works with sketcher constraints, information about whether a solver constraint originated from a
sketcher constraint that is internal alignment is necessary. So the solver constraint is extended to accomodate this piece of information.

As a bonus, it fixes a bug. Solver constraints carry information of the ID of the corresponding sketcher constraint in their tag. Knots are not currently implemented as constraints.
However, the tag index was not being update. This caused the popularity contest to provide wrong suggestions despite good detection.
2022-10-21 19:54:51 +02:00
Paddle
a46bed1a78 Sketcher: remove select DOF. 2022-10-21 09:47:07 -05: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
luz paz
57090a43f7 [Sketcher] [Part] Fix typos and whitespace 2022-10-19 11:36:56 +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
Yorik van Havre
d8d55a0e88 Merged crowdin translations 2022-10-17 15:12:16 +02:00
Yorik van Havre
dd7b589ff1 Updated ts files 2022-10-17 11:18:07 +02:00
Uwe
85b0fcf66d [Sketch] TaskSketcherGeneral.ui: add missing stdset
- were strangely removed by out sort_ui.py script but are of course important
2022-10-17 02:51:25 +02:00
Uwe
1bfbba320b [Sketch] TaskSketcherGeneral.ui: fix compiler warning
- problem was the customwidget declaration
- the other changes were made by Qt's designer and our sort_ui.py script
2022-10-17 02:36:33 +02:00
Uwe
c3e4d3c258 Revert "[Sketch] TaskSketcherGeneral: restore wording of FC 0.20"
This reverts commit 354cffe559.
2022-10-17 02:31:08 +02:00
Ajinkya Dahale
3d7871fca5 [Sketcher] Allow driving constraint on construction geometry
Fixes issue #7442.

Also, the following commits are squashed into this one:

[Sketcher] Remove unnecessary variables

[Sketcher] Use `setDriving` within `toggleDriving`

Suggestion courtesy @0penbrain.

[Sketcher] Remove redundant check: `SketchObject::testDrivingChange`

`GeoEnum::GeoUndef = -2000` so checking if it's `< 0` is redundant.
2022-10-16 11:20:15 +02:00
Uwe
354cffe559 [Sketch] TaskSketcherGeneral: restore wording of FC 0.20
- see https://forum.freecadweb.org/viewtopic.php?p=633198#p633198
- also fix problem with wrong custom widget definition (kindly automatically fixed by Qt's designer)
2022-10-15 04:50:50 +02:00
Ajinkya Dahale
b179ad385b [Sketcher] [planegcs] Add references for equations
Some equations were mentioned by just the number without telling the resource they were from. The book was found couple years ago but not mentioned here.
2022-10-11 08:07:47 +02:00
Paddle
767ff373ee Sketcher: Control edit, change the text of 'Show grid' checkbox to 'Grid. 2022-10-10 08:50:56 -07:00
Paddle
2da9caece2 Sketcher: Remove 'Edit controls' widget 'Grid Size' LABEL. 2022-10-10 08:50:56 -07:00
Yorik van Havre
fce72e46c8 Merged crowdin translations 2022-10-10 11:06:08 +02:00
Yorik van Havre
df52f32c87 Updated ts files 2022-10-10 10:19:30 +02:00
Uwe
9ff9d589a2 [Base, Sketcher] remove redundant boolean checks 2022-10-10 02:49:17 +02:00
Paddle
bf04c0ea93 Sketcher: Make 'Edit control' widget optional. ENABLED by default. 2022-10-07 12:32:55 -07:00
PaddleStroke
8ef96bb9fe Sketcher: Remove StopOperation from toolbar (#7569)
Rarely used, see poll at https://forum.freecadweb.org/viewtopic.php?f=8&t=71922

Co-authored-by: Paddle <PaddleStroke@users.noreply.github.com>
2022-10-07 11:03:44 -05:00
PaddleStroke
d20f2af95f Sketcher: Remove two tools from toolbar (#7568)
Removes "Select conflicting constraints" and "Select redundant constraints", as discussed in https://forum.freecadweb.org/viewtopic.php?f=8&t=71923

Co-authored-by: Paddle <PaddleStroke@users.noreply.github.com>
2022-10-07 11:01:23 -05:00
wmayer
82866db0ca Mod: replace QRegExp with QRegularExpression 2022-10-07 14:03:53 +02:00
Yorik van Havre
8b7c61277a Merged crowdin translations 2022-10-06 12:48:05 +02:00
Yorik van Havre
d87fd4d97e Updated ts files 2022-10-06 12:16:32 +02:00
0penBrain
26aaf0af45 Sketcher : optimize code that was present for Qt4 compatibility
Was introduced by 634e47f31, new code only supported by Qt5
2022-10-03 11:12:35 -07:00
Chris Hennes
ef62fc3530 Sketcher: Remove Snell's Law from toolbar
Leave menu item intact so it is still accessible, but does not use up toolbar space.
2022-10-03 09:25:42 -05: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
wmayer
e2a552a9c6 Sketcher: [skip ci] remove unused includes 2022-09-25 11:09:29 +02:00
Uwe
2ef4b7a06b [Gui] fix some CI warnings
- narrowing conversion from 'unsigned long' to signed type 'int' is implementation-defined
- floating point literal has suffix 'f', which is not uppercase
- narrowing conversion from 'double' to 'float'
- Slots named on_foo_bar are error prone
- also tome Clang style fixes

(see here for the reports: https://github.com/FreeCAD/FreeCAD/pull/7522/commits/d9c2efcc)
2022-09-24 19:58:11 +02:00
0penBrain
5cd2160bf5 Sketcher/constraints: improve command opening management
TODO : do same in CmdSketcherConstrainTangent::substituteConstraintCombinations
2022-09-24 16:05:23 +02:00
0penBrain
e4916d8057 Sketcher: fix misleading indentation 2022-09-24 16:05:23 +02:00
0penBrain
189875b769 [Bugfix]Sketcher/Point-on-object: do not substitute constraint if conditions are not OK 2022-09-24 16:05:23 +02:00