I tried out your improvements and they are definitely most needed. There are some usability issues and unfortunately some bugs. First the issues I noticed:
- Multiple icons/constraints on a line are now all preselected and subsequently selected as well. I found it very inconvenient to try to remove a single constraint, since it can't be selecte individually, for example an horizontal constraint. I think the constraints should be selectable individually. You should figure out how to achieve this when multiple similar constraints are grouped under a single icon with only their numbers listed to distinguish them.
- The icons and texts tend to overlap the lines of the sketch. This could be avoided to some degree by aligning the now vertically placed icons to the line they are related to. I'm not sure if some of the icons should be rotated as well, since the parallel and equal icons could get mixed up. Of course they could be made more different from eachother to prevent this. No point in rotating ho/vert icons either. Rotated constarint numbers could be a better visual clue to which line the are related to.
- Moving the edges of a rectangle, created with the tool but otherwise unconstrained (only hor/vert), seems to occasionally move the unselected/undragged edges as well. This could be some solver or grid snap issue, haven't tested this without your changes.
Unfortunately I ran into SIGSEGVs while testing this with a sketch you can find as an attachment to this post (Cut/Sketch). First I noticed some coin warning messages about some function being called, which shouldn't be done. Unfortunately I could nto reproduce these messages to paste them here. I'll post them here if I run into them again.
The SIGSEGVs were generated by multiple ways. I got them at least while adding lines to the rightmost part of the sketch and hovering the mouse over the constraint icon groups. I couldn't reproduce them by any specific means, they seemed to be generated more or less randomly, just like the coin warnings.
Here is my platform information and the beginnig of a backtrace from a typical SIGSEGV:
OS: Ubuntu 14.04 LTS
Word size: 64-bit
Version: 0.14.3699 (Git)
Python version: 2.7.6
Qt version: 4.8.6
Coin version: 4.0.0a
SoQt version: 1.6.0a
OCC version: 6.7.0
0x00007ffff3c1f00c in SoField::isConnectedFromField() const () from /usr/lib/x86_64-linux-gnu/libCoin.so.80
#0 0x00007ffff3c1f00c in SoField::isConnectedFromField() const () from /usr/lib/x86_64-linux-gnu/libCoin.so.80
#1 0x00007ffff3c1f049 in SoField::isConnected() const () from /usr/lib/x86_64-linux-gnu/libCoin.so.80
#2 0x00007ffff3c1fbb5 in SoField::evaluateField() const () from /usr/lib/x86_64-linux-gnu/libCoin.so.80
#3 0x00007ffff749f16b in SoField::evaluate (this=0x237ff28) at /usr/include/Inventor/fields/SoField.h:142
#4 0x00007ffff749f22a in SoSFVec3f::getValue (this=0x237ff28) at /usr/include/Inventor/fields/SoSFVec3f.h:43
#5 0x00007fffc59d7e0a in SketcherGui::ViewProviderSketch::drawConstraintIcons (this=0x21ca220) at /home/sponssi/devel/sketchericons/source/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp:2061
#6 0x00007fffc59e29e7 in SketcherGui::ViewProviderSketch::draw (this=0x21ca220, temp=true) at /home/sponssi/devel/sketchericons/source/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp:3077
#7 0x00007fffc59e4762 in SketcherGui::ViewProviderSketch::updateData (this=0x21ca220, prop=0x21c9f40) at /home/sponssi/devel/sketchericons/source/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp:3276
#8 0x00007ffff76b10b8 in Gui::ViewProvider::update (this=0x21ca220, prop=0x21c9f40) at /home/sponssi/devel/sketchericons/source/src/Gui/ViewProvider.cpp:219
#9 0x00007ffff745ff93 in Gui::Document::slotChangedObject (this=0x1f826c0, Obj=..., Prop=...) at /home/sponssi/devel/sketchericons/source/src/Gui/Document.cpp:451
#10 0x00007ffff7470fdc in boost::_mfi::mf2<void, Gui::Document, App::DocumentObject const&, App::Property const&>::operator() (this=0x1f83570, p=0x1f826c0, a1=..., a2=...) at /usr/include/boost/bind/mem_fn_template.hpp:280
The beginning of the backtrace seemed to be always the same, but the end parts differed from eachother. I didn't look into this any deeped.
I hope this helps in fixing the problems.
- (45.25 KiB) Downloaded 25 times