diff --git a/source/ArmarXGui/gui-plugins/StatechartViewerPlugin/view/StateItem.cpp b/source/ArmarXGui/gui-plugins/StatechartViewerPlugin/view/StateItem.cpp index 011de9812656002a943a65c85a236e68f99fb2f3..f39866bc8befc4721e71763ab5cb9331eab72bad 100644 --- a/source/ArmarXGui/gui-plugins/StatechartViewerPlugin/view/StateItem.cpp +++ b/source/ArmarXGui/gui-plugins/StatechartViewerPlugin/view/StateItem.cpp @@ -281,11 +281,14 @@ namespace armarx break; } - StateItem* substateItem = it.value(); - // substateItem->setParentItem(0); - substateItem->scene()->removeItem(substateItem); - substateItem->deleteLater(); + QPointer<StateItem> substateItem = it.value(); subStates.remove(substate); + // substateItem->setParentItem(0); + if (substateItem) + { + substateItem->scene()->removeItem(substateItem); + substateItem->deleteLater(); + } } break; diff --git a/source/ArmarXGui/gui-plugins/StatechartViewerPlugin/view/StateItem.h b/source/ArmarXGui/gui-plugins/StatechartViewerPlugin/view/StateItem.h index f4662b453ff7d5112b7e222ce9a9f7cfcae7cfbf..b95387a1e361c9ad133305d66c542ee4304df247 100644 --- a/source/ArmarXGui/gui-plugins/StatechartViewerPlugin/view/StateItem.h +++ b/source/ArmarXGui/gui-plugins/StatechartViewerPlugin/view/StateItem.h @@ -15,9 +15,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * - * @package - * @author - * @date + * @package + * @author + * @date * @copyright http://www.gnu.org/licenses/gpl-2.0.txt * GNU General Public License */ @@ -31,6 +31,7 @@ #include <ArmarXCore/core/logging/Logging.h> #include <QGraphicsWidget> +#include <QPointer> #include <boost/shared_ptr.hpp> @@ -107,7 +108,7 @@ namespace armarx QWidget* subWidget; StateScene* stateScene; statechartmodel::StateInstancePtr state; - typedef QMap<statechartmodel::StateInstancePtr, StateItem*> StateInstanceItemMap; + typedef QMap<statechartmodel::StateInstancePtr, QPointer<StateItem>> StateInstanceItemMap; StateInstanceItemMap subStates; QString instanceName; QMap<statechartmodel::TransitionCPtr, TransitionItem*> transitions;