diff options
Diffstat (limited to 'js/tools/PenTool.js')
-rwxr-xr-x | js/tools/PenTool.js | 77 |
1 files changed, 54 insertions, 23 deletions
diff --git a/js/tools/PenTool.js b/js/tools/PenTool.js index 7749d525..bb9c71e7 100755 --- a/js/tools/PenTool.js +++ b/js/tools/PenTool.js | |||
@@ -955,33 +955,64 @@ exports.PenTool = Montage.create(ShapeTool, { | |||
955 | 955 | ||
956 | handleDelete:{ | 956 | handleDelete:{ |
957 | value: function(event){ | 957 | value: function(event){ |
958 | //clear the selected subpath...the only new additions to this function w.r.t. ToolBase | 958 | var len = this.application.ninja.selectedElements.length; |
959 | if (this._selectedSubpath){ | 959 | if (len===0) { |
960 | if (this._selectedSubpath.getSelectedAnchorIndex()>=0){ | 960 | //clear the selected subpath...the only new additions to this function w.r.t. ToolBase |
961 | this._hoveredAnchorIndex=-1; | 961 | if (this._selectedSubpath){ |
962 | this._selectedSubpath.removeAnchor(this._selectedSubpath.getSelectedAnchorIndex()); | 962 | if (this._selectedSubpath.getSelectedAnchorIndex()>=0){ |
963 | this._selectedSubpath.createSamples(); | 963 | this._hoveredAnchorIndex=-1; |
964 | //clear the canvas | 964 | this._selectedSubpath.removeAnchor(this._selectedSubpath.getSelectedAnchorIndex()); |
965 | this.application.ninja.stage.clearDrawingCanvas();//stageManagerModule.stageManager.clearDrawingCanvas(); | 965 | this._selectedSubpath.createSamples(); |
966 | this.DrawSubpathAnchors(this._selectedSubpath); | 966 | //clear the canvas |
967 | this.ShowSelectedSubpath(); | 967 | this.application.ninja.stage.clearDrawingCanvas();//stageManagerModule.stageManager.clearDrawingCanvas(); |
968 | this.DrawSubpathAnchors(this._selectedSubpath); | ||
969 | this.ShowSelectedSubpath(); | ||
970 | } | ||
971 | else { | ||
972 | this._selectedSubpath.clearAllAnchors(); //perhaps unnecessary | ||
973 | this._selectedSubpath = null; | ||
974 | //clear the canvas | ||
975 | this.application.ninja.stage.clearDrawingCanvas();//stageManagerModule.stageManager.clearDrawingCanvas(); | ||
976 | |||
977 | //undo/redo...go through ElementController and NJEvent | ||
978 | var els = []; | ||
979 | ElementController.removeElement(this._penCanvas); | ||
980 | els.push(this._penCanvas); | ||
981 | NJevent( "deleteSelection", els ); | ||
982 | this._penCanvas = null; | ||
983 | } | ||
984 | } | ||
985 | //do nothing if there was no selected subpath and if there was no selection | ||
986 | } | ||
987 | else { | ||
988 | |||
989 | //undo/redo...go through ElementMediator (see ElementMediator.handleDeleting() from where the much of this function is copied) | ||
990 | //clear the canvas | ||
991 | this.application.ninja.stage.clearDrawingCanvas();//stageManagerModule.stageManager.clearDrawingCanvas(); | ||
992 | var els = []; | ||
993 | for(var i = 0; i<len; i++) { | ||
994 | els.push(this.application.ninja.selectedElements[i]); | ||
968 | } | 995 | } |
969 | else { | 996 | for(i=0; i<len; i++) { |
970 | this._selectedSubpath.clearAllAnchors(); //perhaps unnecessary | 997 | ElementController.removeElement(els[i]._element); |
971 | this._selectedSubpath = null; | ||
972 | //clear the canvas | ||
973 | this.application.ninja.stage.clearDrawingCanvas();//stageManagerModule.stageManager.clearDrawingCanvas(); | ||
974 | |||
975 | //undo/redo...go through ElementController and NJEvent | ||
976 | var els = []; | ||
977 | ElementController.removeElement(this._penCanvas); | ||
978 | els.push(this._penCanvas); | ||
979 | NJevent( "deleteSelection", els ); | ||
980 | this._penCanvas = null; | ||
981 | } | 998 | } |
982 | } | 999 | NJevent( "deleteSelection", els ); |
1000 | |||
1001 | //clear out the selected path if it exists | ||
1002 | if (this._selectedSubpath) { | ||
1003 | this._selectedSubpath.clearAllAnchors(); | ||
1004 | this._selectedSubpath = null; | ||
1005 | if (this._entryEditMode === this.ENTRY_SELECT_PATH){ | ||
1006 | this._entryEditMode = this.ENTRY_SELECT_NONE; | ||
1007 | } | ||
1008 | this._penCanvas = null; | ||
1009 | } | ||
1010 | } | ||
1011 | //redraw the stage to update it | ||
1012 | this.application.ninja.stage.draw(); | ||
983 | } | 1013 | } |
984 | }, | 1014 | }, |
1015 | |||
985 | handleResetPenTool: { | 1016 | handleResetPenTool: { |
986 | value: function (event) { | 1017 | value: function (event) { |
987 | this.Reset(); | 1018 | this.Reset(); |