From b9504539dfc8c9e47a88e9a9691322625f19052d Mon Sep 17 00:00:00 2001 From: roangel <roangel@student.ethz.ch> Date: Thu, 1 Jun 2017 15:33:04 +0200 Subject: [PATCH] fixed weird crash when removing all CFZones --- .../GUI_Qt/CrazyFlyGUI/include/myGraphicsScene.h | 2 ++ .../GUI_Qt/CrazyFlyGUI/src/mainguiwindow.cpp | 6 +----- .../GUI_Qt/CrazyFlyGUI/src/myGraphicsScene.cpp | 10 ++++++++++ pps_ws/src/d_fall_pps/param/Crazyflie.db | 5 +++-- 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/pps_ws/src/d_fall_pps/GUI_Qt/CrazyFlyGUI/include/myGraphicsScene.h b/pps_ws/src/d_fall_pps/GUI_Qt/CrazyFlyGUI/include/myGraphicsScene.h index b1e5f4da..c3ffa601 100755 --- a/pps_ws/src/d_fall_pps/GUI_Qt/CrazyFlyGUI/include/myGraphicsScene.h +++ b/pps_ws/src/d_fall_pps/GUI_Qt/CrazyFlyGUI/include/myGraphicsScene.h @@ -46,6 +46,8 @@ public: void addCFZone(QRectF rect, int index); + void removeAllCFZones(); + public slots: void removeCrazyFlyZone(int cf_zone_index); void setSelectedCrazyFlyZone(int index); diff --git a/pps_ws/src/d_fall_pps/GUI_Qt/CrazyFlyGUI/src/mainguiwindow.cpp b/pps_ws/src/d_fall_pps/GUI_Qt/CrazyFlyGUI/src/mainguiwindow.cpp index 37a817a4..61710e13 100755 --- a/pps_ws/src/d_fall_pps/GUI_Qt/CrazyFlyGUI/src/mainguiwindow.cpp +++ b/pps_ws/src/d_fall_pps/GUI_Qt/CrazyFlyGUI/src/mainguiwindow.cpp @@ -821,11 +821,7 @@ void MainGUIWindow::on_load_from_DB_button_clicked() cf_linker->clear_all_links(); // remove all cf_zones existing - - for(int j = scene->crazyfly_zones.size() - 1; j >= 0; j--) - { - scene->removeCrazyFlyZone(scene->crazyfly_zones[j]->getIndex()); - } + scene->removeAllCFZones(); int size = scene->crazyfly_zones.size(); ROS_INFO("vector_cf_zones_size %d", size); diff --git a/pps_ws/src/d_fall_pps/GUI_Qt/CrazyFlyGUI/src/myGraphicsScene.cpp b/pps_ws/src/d_fall_pps/GUI_Qt/CrazyFlyGUI/src/myGraphicsScene.cpp index c56196d6..c8bda3c4 100755 --- a/pps_ws/src/d_fall_pps/GUI_Qt/CrazyFlyGUI/src/myGraphicsScene.cpp +++ b/pps_ws/src/d_fall_pps/GUI_Qt/CrazyFlyGUI/src/myGraphicsScene.cpp @@ -349,6 +349,16 @@ void myGraphicsScene::removeCrazyFlyZone(int cf_zone_index) } } +void myGraphicsScene::removeAllCFZones() +{ + for(int i = 0; i < crazyfly_zones.size(); i++) + { + this->removeItem(crazyfly_zones[i]); + } + crazyfly_zones.clear(); + emit numCrazyFlyZonesChanged(0); +} + void myGraphicsScene::removeTable() { for(int i = 0; i < table_pieces.size(); i++) diff --git a/pps_ws/src/d_fall_pps/param/Crazyflie.db b/pps_ws/src/d_fall_pps/param/Crazyflie.db index b9f4f06c..a4c31853 100644 --- a/pps_ws/src/d_fall_pps/param/Crazyflie.db +++ b/pps_ws/src/d_fall_pps/param/Crazyflie.db @@ -1,2 +1,3 @@ -1,CF1,,0,-0.58,1.22,0,0.97,1.89,0 -2,CF2,,1,-0.19,0.15,0,0.85,0.96,0 +1,CF1,,0,2.30378,0.506831,0,4.29424,2.29456,0 +2,CF2,,1,1.59421,0.884651,0,2.66317,1.62186,0 +3,CF3,,2,1.51128,1.97203,0,3.11471,2.82904,0 -- GitLab