Commit Graph

31 Commits

Author SHA1 Message Date
AgCaliva
64f60721a9 merge master via cli 2023-09-16 02:12:58 -03:00
AgCaliva
375df38e78 fixing DOMDocument redefinition error 2 2023-09-14 03:50:53 -03:00
pre-commit-ci[bot]
e92ed45df9 [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
Florian Foinant-Willig
4a5da1940c Create overlay icon folder and ArcOverlay icon
And move BSpline overlay related icons to the new folder
2023-08-03 13:06:05 +02:00
Florian Foinant-Willig
159f82af45 Sketcher: Add command to switch arc helper 2023-08-03 13:06:05 +02:00
Abdullah Tahiri
78ae9c1d7d SketcherGui: apply clang-format 2023-05-25 17:08:03 +02:00
wmayer
52a81cd673 Sketcher: Create .qm out of .ts files 2023-05-07 08:49:34 +02:00
Paddle
271e3bec4a Move SoDatumLabel from Sketcher to Core so that it can be reused anywhere. 2023-04-12 16:48:07 +02:00
Abdullah Tahiri
873e34cd6e Sketcher: Extend ViewProviderSketchGeometryExtension to hold the VisualLayerId
==============================================================================

In the Layers implementation there are User Layers, which have no direct impact on visualisation,
and allow to group conceptually related geometry into logical entities, and Visual Layers, which
define how geometries are visualised (or even whether they are visualised or not).

For User Layers, SketchObject is responsible for the definition of the layers, and SketcherGeometryExtension
is responsible for indicating the User Layer to which a geometry belongs (via a LayerId field).

For Visual Layers, ViewProviderSketch is responsible for the definition of the visual layers, and
ViewProviderSketchGeometryExtension is responsible for indicating the visual layer to which a geometry belongs.

With this commit, ViewProviderSketchGeometryExtension:
- takes over the responsibility of carrying a visual layer Id.
- is extended to be persistent and serialise the Id.
- is extended to be accesible from Python.
2023-03-02 20:42:48 +01:00
Paddle
40271a29ea 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
Uwe
e24daabf1f [Sketch] Gui: A - D: remove unused headers
- also some sorting
2022-12-11 23:47:03 +01:00
berniev
71dc5ead2f Mod: Use override etc 2 2022-08-09 12:52:26 +02:00
berniev
f4ffd15864 Mod: redundant void 2 2022-08-08 10:27:50 +02:00
wmayer
51186c018e Sketcher: modernize C++11
* use nullptr
2022-03-23 19:26:15 +01:00
Uwe
38d7b77237 [Sketch] remove Python.h and Xerces
seems not to be necessary anymore
2022-03-21 02:51:57 +01:00
wmayer
0f9768fb33 Fix coverity issue:
* CID 332682: Resource leak
* CID 350607: Resource leak
* CID 332677: Resource leak
2022-03-14 11:35:04 +01:00
wmayer
5e0cfc64ee App: use forward declarations 2022-03-04 21:09:46 +01:00
Abdullah Tahiri
ac7185b088 Sketcher: Viewprovider B-Spline pole representation factor
==========================================================

Previously for Weights, ViewProviderSketch used getScaleFactor. This caused that upon zoom change
the Weights would not increase progresively, rather the would grow on the next redraw. Additionally,
upon substantial zoom out, the poles would grow several times bigger than the B-Spline.

This commit uses a new geometry extension intended only for ViewProviderSketch, to store a geometry
specific representation scale factor. This is calculated as a function of the B-Spline length. The
extension does not serialise to disk. It is just intended for runtime.

Dragging from the edge when the radius is constrained gives a wrong cosmetic result, because the representation circle and the
real value of the weight are different (by a scale factor). This commit prevents dragging on the edge in the most representative
cases where the radius is constrained.
2020-12-10 18:34:06 +01:00
wmayer
99b5aaf64e Sketcher: [skip ci] fix handling of icon search paths when another workbench uses a sketcher command 2020-10-01 16:28:23 +02:00
wmayer
c2d0305e44 Sketcher: split huge settings page into two pages 2020-02-08 19:45:23 +01:00
luz.paz
7008cf92de Sketcher: [skip ci] fix header uniformity
This PR fixes header uniformity across all Sketcher WB files
2019-12-22 01:00:29 +01:00
Abdullah Tahiri
71e16bfbb1 Sketcher: New toolbar for VirtualSpace and Command to switch VirtualSpace 2018-01-26 17:04:08 +01:00
wmayer
9e90accc81 split sketcher settings page and move to its own group 2017-03-06 14:37:40 +01:00
wmayer
03c232fa82 py3: ported Skechter to python3 2017-03-01 17:20:20 +01:00
Abdullah Tahiri
3933a89e07 Sketcher: new BSpline toolbar / command to hide control polygon 2017-02-21 13:24:10 +01:00
wmayer
eacd2dc668 + simplify porting of Sketcher module to Python3 2016-01-18 12:19:54 +01:00
Mateusz Skowroński
05f95c0506 Fix files encoding. Go from ISO8859-1 to UTF-8. 2015-09-21 19:50:49 -03:00
Abdullah Tahiri
d8f68afc62 New feature: Edit Sketch datum constraints from data Property view
This feature shows in the data properties associated to a TreeView element,
the datum constraints, i.e. those with an associated value.
2014-08-19 13:23:15 +02:00
wmayer
c4c04e3143 Squashed commit of the following:
commit 695becbbfff961b13e3edb5a4e1e4487bc53b4bb
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Mon Aug 4 15:24:33 2014 +0200

    - Making combo disable state.
    - Updating Art (Thanks Jim!)

commit d5391d40ace450fa2e65fe2b4ab8029ad37cacf8
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Fri Aug 1 00:40:15 2014 +0200

    - Adaptation of code to Workbench's new Template structure.
    - Minor adaptation of new ViewProvideSketch code to new constraint code (only in code extensions needed for element Widget)

commit ecdec20afa33c9a950e6054e80e4aa9c72aad8b6
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Thu Jul 31 15:31:38 2014 +0200

    Fix so that when applying a coincident constraint to a plurality of points,
    if one constraint on a couple of points exists, no new coincident constraint is
    added to this couple.

    Fixes: http://forum.freecadweb.org/viewtopic.php?f=3&t=6890

commit 32ef59d76e6c63356f5d36598ca11eb47c2e52af
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Thu Jul 31 14:13:58 2014 +0200

    Add some placeholder art for icons to avoid having a cross icon and annoying icon not found messages.

commit ccb60a3a7e71a0eb8ad5d896542314a98ef314a8
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Mon Jul 28 20:15:29 2014 +0200

    - Fixed Length Constraint accelerator (D) to SHIFT+D to avoid colision with other higher level FreeCAD accelerator assignment.
    - Selection Accelerators now toggle on shortcut execution, and act when no other element is selected (fixed bug)

    TODO: Art+Toolbar

commit 791358d046e8eeb03fa00272f5627c75254c48eb
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Mon Jul 28 15:12:07 2014 +0200

    Fixing shortcut system:
    - Take shortcuts automatically from CommandManager.
    - Fixed two shortcuts in CommandConstraints (Point on Object - O and
    Parallel Constraint - P to SHIFT+O and SHIFT+P to avoid collision with other constraints)
    - Fixed shortcuts in CommandConstraintAccel to non-already-existing combinations
    - Fixed Sketcher Menu to show accelerators

commit 12d366406a45038ce1a4f725a98e4f570475084b
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Mon Jul 28 11:53:37 2014 +0200

    Implemented SHIFT multiple selection functionality in listwidget.

commit 0606ea7dfe38fdf8924f65f14382f1b327145c80
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Mon Jul 28 11:02:02 2014 +0200

    Added Sketcher Accelerators for:
    - Selection of H Axis
    - V Axis
    - Origin

    Main TODO: Shortcuts and Shift in list widget implementation

commit 297464807fc56fbcf31efadff9625fc05bb20c41
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Wed Jul 23 11:37:21 2014 +0200

    Implementation of:
    - Switch on 'Z' instead of 'Shift'
    - Checkbox to select whether element internal name (e.g. Edge10) should be presented on list or not (Sponssi requested)
    - Checkbox to force going back to "Edge" type on change from one element to the next (Sponssi requested)

commit c8764b116acdcfdc7ef7658dc6009fb8db807906
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Wed Jul 23 07:57:11 2014 +0200

    TaskSketcher Elements:
    - Store Vertex within elements for optimization (reduce loops searching for vertex in every function call)
    - Added the accelerators described below + Toggle Construction as context menu commands
    - Fixed bug (Thanks sponssi!): After some element has been preselected from the list and the cursor moved to the drawing area,
    the preselection doesn't seem to be resetted in the widget or whereever it is handled.
    Tapping shift still swaps the preselection between the points of the previously selected element.
    The left mouse button has to be clicked in the draw area to get rid of this.
    http://forum.freecadweb.org/viewtopic.php?f=10&t=6861&sid=7eea4adc7ecf4cebd561b357601866a2&start=20
    - Extended naming of elements, to facilitate writing python code (as requested by sponssi).
    - Minor modifications (creation of utility fuctions, code readibility, ...)

    Sketcher Workbench:
    - First effort to add a toolbar with the accelerators.

    Sketcher Accelerators: (Perform actions on existing elements, as opposed to Geometry Creation, not restricted to applying constraints)
    - Close Shape : of selected edges (i.e. lines and arcs)
    - Connect : selected edges (connect endpoint edge with starting point of next edge according to selection order)
    - Select Constraints : associated with currently selected edges

commit 1dc18204a4e2e38f71d729a7692383f50a7d4654
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Sat Jul 12 16:06:48 2014 +0200

    New alternative implementation of the Sketch Element List.

    This version comprises:
    - Identification via icon of type of geometric element (Point, Arc, Line, Circle) and
      Type of selection (Edge, Starting Point, End Point, Center Point)
    - Corrected a bug where upon selection from the combobox, the icons were not updated (Thanks Jim!)
    - Implementation of jump to next valid type of last preselected element (aka fast-forward) for all the types.

commit 4d472ef796362405c3982355f86489fa92cbfe6d
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Thu Jun 26 17:15:51 2014 +0200

    Feature request by jmaustpc
    - When an object does not have an element, lets put a different icon.
    - Currently the constraint lock icon is used until availability of a new one.

commit 6d15478f6533ff3805520a8ca36d1c41908cb0af
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Thu Jun 26 14:54:23 2014 +0200

    Bug fix (preselection not disappearing on changing element without the element Type).

commit e33043e17781fcf6399257696f115f68ab4580ec
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Thu Jun 26 14:39:20 2014 +0200

    New nicer icons by jmaustpc. They look much nicer :-)

commit 2ce2d6ff1ad2d81b0b1e30ffcbe9f2cc445f2e5b
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Thu Jun 26 14:37:21 2014 +0200

    Fast-Forward functionality:
    - If an element not having "midpoint" is preselected, then on pressing SHIFT the
    Type will jump from EndPoint to Line skipping midpoint.
    - This is intended as a productivity feature, as most sketch elements usually are lines

commit 1865d06d06582a49da10ddc123133807a4593060
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Wed Jun 25 15:47:22 2014 +0200

    Bug fix (thanks jmaustpc)
    - Preselection is maintained even though the geometric element does not have the "Type".
    - Fix involves calling for remove preselection in TaskSketcherElement
    - Implementing the response to the message RmvPreselection in ViewProviderSketch

commit 14e21da4b4ed0e9a2b3e846a4e51f6745d5e0ab7
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Mon Jun 23 14:25:35 2014 +0200

    Fix Bug with null pointer (thanks jmaustpc!)
    Clean up code

commit 0d99eb633f1bca45d4e7bb22c57bd4892767a390
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Wed Jun 11 16:32:48 2014 +0200

    New widget for the Taskbar of the Sketcher WB.

    The objectives of this widget are:
    1. Allow editing of sketches when they have (partially) overlapping lines of any type
       (construction/external/normal).
    2. Allow the construction of sketches using the keyboard (less mouse intensive)

    The widget works as follows:
    1. A QListWidget presents a list of elements, element is here a geometric element
    formed Types edges, starting points, end points and midpoints (e.g. circles, arcs)
    2. On hovering/Entering one item in the list, it is preselected for easy identification.
    3. The selection can be switched from one type to another using the SHIFT key
    (press and release) in a round-robin fashion (or you can select it using the droplist)
    4. Selection of different types is possible (e.g. two points and a line).
    5. The contextual menu accessible by right click allow to apply a constraint to the
    selection.
    6. The constraints in the contextual menu have shortcuts, so you can actually use the
    shortcut directly from the QListWidget.

    Additional features introduced to other parts during development...
    - New color introduced for Types that are selected and preselected at the same time
    - Edges is a SoLineSet. You can not apply many So modifiers (width,offset) to parts of a SoLineSet.
    An edge part of a SoLineSet that is drawn after another one, covers it unless it is closer to the
    camera. The system of manual offsets already in place for points has been extended to properly
    handle (i.e. show) overlapping lines part of a SoLineSet.
2014-08-05 00:35:02 +02:00
wmayer
c21c2ae9fe + move sketcher related settings into own page 2014-03-09 18:07:46 +01:00
wmayer
120ca87015 + unify DLL export defines to namespace names
git-svn-id: https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk@5000 e8eeb9e2-ec13-0410-a4a9-efa5cf37419d
2011-10-10 13:44:52 +00:00