New SVG icons, `Sketcher_DeleteConstraints`, `Sketcher_DeleteGeometry`
for two commands which previously used the very simple icon
`Element_SelectionTypeInvalid` (a single red X).
These icons clarify that the commands are used to delete
the constraints and the geometry, respectively.
Most tools should be exposed in the toolbars and not kept
"hidden" in the menus.
* `ConstrainInternalAlignment` is added in the "constraints" toolbar.
* `SelectElementsWithDoF` is added in the "tools" toolbar.
Also amend the name of the `Sketcher_BSplineConvertToNURB` command.
`SelectConstraints`, `SelectElementsAssociatedWithConstraints`,
these include the icon for parallel constraint, which was upgraded
in 4fb193aa.
`SelectRedundantConstraints`, `SelectConflinctingConstraints`,
previosuly were the same with only a small color variation (orange
outline and red outline). Now they have another symbol overlayed
(lightning and exclamation mark) to distinguish them more clearly.
The parallel icon was also upgraded in these icons.
The `Move` icon is also made more clear. The first element
now has a clear outline, instead of being a faded green color
which is hard to see. An arrow is added to imply movement
from the first position to the second position.
`Sketcher_ConstrainBlock` to `Constraint_Block`.
`Sketcher_ConstrainLock` to `Constraint_Lock`, and the corresponding
`_Driven` variant.
Adjust the icons in the taskpanel for the sketcher constraints,
elements, and for the action menu for constraints.
Adjust the icon order in the `Sketcher.qrc` resource file.
Update formatting in compliance with pep8 with the following exceptions:
* truncate to 120 characters in line
* prefer double quotes `"` to single quotes `'` in strings
Switch addon lookup mechanism from parsing html page to extracting info
from .gitmodules file.
This simplifies logic and allows using non-Github repos.
Readme for Github repos are extracted from HTML pages using regex.
Gitlab pages are converted to HTML using Python Markdown lib if present,
falling back to displaying raw markdown.
In this case image links are converted from relative to absolute paths.
The `Surface_Workbench` icon is the same as `Surface_Surface`,
which is now an SVG and not XPM.
The lines are thicker and the colors have been adjusted
with a gradient, instead of being solid and plain looking.
Also the following were updated: `BSplineSurface`,
`BezierSurface`, `Cut`, `Filling`, `Sewing.
The `BezierSurface`, `Cut`, and `Sewing` icons are not currently used
in the workbench, but they were still updated in case
a future command uses them.
Replace the hard-coded XPM icon in `InitGui.py` for the workbench
with an SVG file, which at this time is identical to the `Surface` icon.
Change `CMakeLists.txt` to properly install this new icon.
Rename all icons, so that all have the `Surface_` prefix.
Use the new icon names in the viewproviders and task panels.
If the object has a `Shape` it uses its bounding box to enlarge
the page size of the SVG. If it does not have a `Shape`
("Draft Text", "Draft Dimension", other `App::FeaturePython`)
it uses `Draft.get_bbox` to calculate one bounding box
from the viewprovider if possible.
Normally the bounding box is taken from `Shape.BoundBox`.
Certain objects don't have a `Shape`, like `App::FeaturePythons`,
so the bounding box is calculated from `ViewObject.RootNode`.