diff --git a/src/GraphicView.cpp b/src/GraphicView.cpp index 2a60cdcc6e4b8a50b031c4838962bd181b609be0..d0e0aa2240b0e1265b3a65c3544949f458a00fd3 100644 --- a/src/GraphicView.cpp +++ b/src/GraphicView.cpp @@ -1634,14 +1634,11 @@ void jpsGraphicsView::delete_marked_lines() RemoveIntersections(marked_lines[i]); - delete marked_lines[i]->get_line(); + qDebug()<< "jpsGraphicsView::delete_marked_lines(): Delete undefined line!"; //marked_lines[i]->set_line(nullptr); delete marked_lines[i]; line_vector.removeOne(marked_lines[i]); - - - } marked_lines.clear(); diff --git a/src/datamanager.cpp b/src/datamanager.cpp index 6432947cfceac8ba902d7385c3fdde4d5e4a8bbb..244250ef2c71c2606647c672af95c4f260a92975 100644 --- a/src/datamanager.cpp +++ b/src/datamanager.cpp @@ -1580,15 +1580,38 @@ void jpsDatamanager::remove_all() void jpsDatamanager::remove_marked_lines() { - dtrace("Enter jpsDatamanager::remove_marked_lines"); QList<jpsLineItem* > marked_lines = _mView->get_markedLines(); + QList<jpsObstacle*> obstacle_list = this->get_obstaclelist(); + QList<jpsRoom* > cList= this->get_roomlist(); + for (int i=0; i<marked_lines.size(); i++) { - if (marked_lines[i]->is_Wall()==true) + if (marked_lines[i]->is_Wall()==true && obstacle_list.size()>0) + { + for (int m=0; m<obstacle_list.size(); m++) + { + QList<jpsLineItem* > deleted_obstacle_lines; + for (int n=0; n<obstacle_list[m]->get_listWalls().size(); n++) + { + if(marked_lines[i]==obstacle_list[m]->get_listWalls()[n]) + { + deleted_obstacle_lines.push_back(obstacle_list[m]->get_listWalls()[n]); + } + } + obstacle_list[m]->removeWall(deleted_obstacle_lines); + qDebug()<< "jpsDatamanager::remove_marked_lines(): Obstacle line is deleted!"; + } + } + else + { + qDebug()<< "jpsDatamanager::remove_marked_lines(): Marked line isn't in obstacle!"; + } + + if (marked_lines[i]->is_Wall()==true && cList.size()>0) { - QList<jpsRoom* > cList= this->get_roomlist(); for (int j=0; j<cList.size(); j++) - { QList<jpsLineItem* > delete_candidates; + { + QList<jpsLineItem* > delete_candidates; for (int k=0; k<cList[j]->get_listWalls().size(); k++) { if (marked_lines[i]==cList[j]->get_listWalls()[k]) @@ -1597,6 +1620,7 @@ void jpsDatamanager::remove_marked_lines() } } cList[j]->removeWall(delete_candidates); + qDebug()<< "jpsDatamanager::remove_marked_lines(): Wall line is deleted!"; } } @@ -1611,9 +1635,13 @@ void jpsDatamanager::remove_marked_lines() break; } } + qDebug()<< "jpsDatamanager::remove_marked_lines(): Door line is deleted!"; + } + else + { + qDebug()<< "jpsDatamanager::remove_marked_lines(): Marked line isn't defined!"; } } - dtrace("Leave jpsDatamanager::remove_marked_lines"); } void jpsDatamanager::set_view(jpsGraphicsView *view) diff --git a/src/mainWindow.cpp b/src/mainWindow.cpp index 749c1484a0e597d7d02f3da0e909d927925d2852..ff0ddee6dc79f345bafc990d9401abee051d1d69 100644 --- a/src/mainWindow.cpp +++ b/src/mainWindow.cpp @@ -198,8 +198,6 @@ MWindow :: MWindow() { // room type data gathering connect(actionGather_data,SIGNAL(triggered(bool)),this, SLOT(GatherData())); - - } MWindow::~MWindow()