diff --git a/modules/gfx/src/scene.cc b/modules/gfx/src/scene.cc index e9025cd39f7a5f6c9b4235bf995faf77442f287b..5c1e9cbb7149115b219ceccc8e88698fa5e70e97 100644 --- a/modules/gfx/src/scene.cc +++ b/modules/gfx/src/scene.cc @@ -1043,7 +1043,6 @@ void Scene::Remove(const GfxNodeP& go) if(!go) return; root_node_->Remove(go); this->NotifyObservers(bind(&SceneObserver::NodeRemoved, _1,go)); - std::cerr << "Scene::Remove(node):" << go.use_count() << std::endl; } void Scene::RemoveAll() diff --git a/modules/gui/src/scene_win/scene_node.cc b/modules/gui/src/scene_win/scene_node.cc index 70818d1acc3d606e3650983597f234da90bacd2d..3e99b51ccfbdcef37d0ddaeaf08bd558ac8b6c43 100644 --- a/modules/gui/src/scene_win/scene_node.cc +++ b/modules/gui/src/scene_win/scene_node.cc @@ -29,7 +29,7 @@ SceneNode::SceneNode(QObject* parent):QObject(parent){ parent_ = NULL; } -int SceneNode::GetChildRow(const SceneNode* node) const{ +int SceneNode::GetChildRow(const SceneNode* node) const { for(int i = 0; i < this->children().size(); i++){ if (this->children()[i] == node) return i; @@ -41,7 +41,7 @@ SceneNode::~SceneNode() { } int SceneNode::GetRow() const{ - if(parent_){ + if (parent_) { return parent_->GetChildRow(this); } return 0; diff --git a/modules/gui/src/scene_win/scene_win_model.cc b/modules/gui/src/scene_win/scene_win_model.cc index f712174f2e6135717348d9bfc1dfcb65d06fe681..4fc10d492230d54f86d6b08657955615172f399e 100644 --- a/modules/gui/src/scene_win/scene_win_model.cc +++ b/modules/gui/src/scene_win/scene_win_model.cc @@ -123,9 +123,11 @@ QModelIndex SceneWinModel::index(int row, int col, QModelIndex SceneWinModel::parent(const QModelIndex& index) const { - if(!index.isValid())return QModelIndex(); - + if(!index.isValid()) + return QModelIndex(); SceneNode* node = GetItem(index); + if (!node) + return QModelIndex(); assert(node); SceneNode* parent_node = node->GetParent(); @@ -302,9 +304,8 @@ bool SceneWinModel::RemoveNode(SceneNode* node) QModelIndex parent_index =this->GetIndexOf(parent); int row = node->GetRow(); this->beginRemoveRows(parent_index,row,row); - this->endRemoveRows(); - node->setParent(NULL); delete node; + this->endRemoveRows(); return true; } return false;