From d41571e628f23e3e1569df0ef9aed58b7eac1f56 Mon Sep 17 00:00:00 2001 From: Jonathan Greig Date: Sat, 8 Mar 2014 07:57:49 -0600 Subject: [PATCH] Empty Path/Polygon/Polyline Check. --- embroidermodder2/view.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/embroidermodder2/view.cpp b/embroidermodder2/view.cpp index 75e2aab8c..a9d8533af 100644 --- a/embroidermodder2/view.cpp +++ b/embroidermodder2/view.cpp @@ -256,12 +256,23 @@ void View::clearRubberRoom() BaseObject* base = static_cast(item); if(base) { - if((base->type() == OBJ_TYPE_PATH && spareRubberList.contains(SPARE_RUBBER_PATH)) || - (base->type() == OBJ_TYPE_POLYGON && spareRubberList.contains(SPARE_RUBBER_POLYGON)) || - (base->type() == OBJ_TYPE_POLYLINE && spareRubberList.contains(SPARE_RUBBER_POLYLINE)) || + int type = base->type(); + if((type == OBJ_TYPE_PATH && spareRubberList.contains(SPARE_RUBBER_PATH)) || + (type == OBJ_TYPE_POLYGON && spareRubberList.contains(SPARE_RUBBER_POLYGON)) || + (type == OBJ_TYPE_POLYLINE && spareRubberList.contains(SPARE_RUBBER_POLYLINE)) || (spareRubberList.contains(base->objectID()))) { - vulcanizeObject(base); + if(!base->objectPath().elementCount()) + { + QMessageBox::critical(this, tr("Empty Rubber Object Error"), + tr("The rubber object added contains no points. " + "The command that created this object has flawed logic. " + "The object will be deleted.")); + gscene->removeItem(item); + delete item; + } + else + vulcanizeObject(base); } else {