Mercurial > hg > svapp
comparison framework/Document.cpp @ 52:43ad8d909e28
* Fix #1815930 new crash, just introduced!
author | Chris Cannam |
---|---|
date | Fri, 02 Nov 2007 14:12:17 +0000 |
parents | e41af8419d4a |
children | de2b3c6479c8 |
comparison
equal
deleted
inserted
replaced
51:e41af8419d4a | 52:43ad8d909e28 |
---|---|
53 //the document, be nice to fix that | 53 //the document, be nice to fix that |
54 | 54 |
55 // std::cerr << "\n\nDocument::~Document: about to clear command history" << std::endl; | 55 // std::cerr << "\n\nDocument::~Document: about to clear command history" << std::endl; |
56 CommandHistory::getInstance()->clear(); | 56 CommandHistory::getInstance()->clear(); |
57 | 57 |
58 // std::cerr << "Document::~Document: about to delete layers" << std::endl; | 58 std::cerr << "Document::~Document: about to delete layers" << std::endl; |
59 while (!m_layers.empty()) { | 59 while (!m_layers.empty()) { |
60 deleteLayer(*m_layers.begin(), true); | 60 deleteLayer(*m_layers.begin(), true); |
61 } | 61 } |
62 | 62 |
63 if (!m_models.empty()) { | 63 if (!m_models.empty()) { |
99 if (!newLayer) return 0; | 99 if (!newLayer) return 0; |
100 | 100 |
101 newLayer->setObjectName(getUniqueLayerName(newLayer->objectName())); | 101 newLayer->setObjectName(getUniqueLayerName(newLayer->objectName())); |
102 | 102 |
103 m_layers.insert(newLayer); | 103 m_layers.insert(newLayer); |
104 | |
105 std::cerr << "Document::createLayer: Added layer of type " << type | |
106 << ", now have " << m_layers.size() << " layers" << std::endl; | |
107 | |
104 emit layerAdded(newLayer); | 108 emit layerAdded(newLayer); |
105 | 109 |
106 return newLayer; | 110 return newLayer; |
107 } | 111 } |
108 | 112 |
139 | 143 |
140 //!!! and all channels | 144 //!!! and all channels |
141 setChannel(newLayer, -1); | 145 setChannel(newLayer, -1); |
142 | 146 |
143 m_layers.insert(newLayer); | 147 m_layers.insert(newLayer); |
148 | |
149 std::cerr << "Document::createImportedLayer: Added layer of type " << type | |
150 << ", now have " << m_layers.size() << " layers" << std::endl; | |
151 | |
144 emit layerAdded(newLayer); | 152 emit layerAdded(newLayer); |
145 return newLayer; | 153 return newLayer; |
146 } | 154 } |
147 | 155 |
148 Layer * | 156 Layer * |
245 // We need to ensure that no layer is left using oldMainModel or | 253 // We need to ensure that no layer is left using oldMainModel or |
246 // any of the old derived models as its model. Either replace the | 254 // any of the old derived models as its model. Either replace the |
247 // model, or delete the layer for each layer that is currently | 255 // model, or delete the layer for each layer that is currently |
248 // using one of these. Carry out this replacement before we | 256 // using one of these. Carry out this replacement before we |
249 // delete any of the models. | 257 // delete any of the models. |
258 | |
259 std::cerr << "Document::setMainModel: Have " | |
260 << m_layers.size() << " layers" << std::endl; | |
250 | 261 |
251 for (LayerSet::iterator i = m_layers.begin(); i != m_layers.end(); ++i) { | 262 for (LayerSet::iterator i = m_layers.begin(); i != m_layers.end(); ++i) { |
252 | 263 |
253 Layer *layer = *i; | 264 Layer *layer = *i; |
254 Model *model = layer->getModel(); | 265 Model *model = layer->getModel(); |
501 return; | 512 return; |
502 } | 513 } |
503 | 514 |
504 m_layers.erase(layer); | 515 m_layers.erase(layer); |
505 | 516 |
517 std::cerr << "Document::deleteLayer: Removing, now have " | |
518 << m_layers.size() << " layers" << std::endl; | |
519 | |
506 releaseModel(layer->getModel()); | 520 releaseModel(layer->getModel()); |
507 emit layerRemoved(layer); | 521 emit layerRemoved(layer); |
508 emit layerAboutToBeDeleted(layer); | 522 emit layerAboutToBeDeleted(layer); |
509 delete layer; | 523 delete layer; |
510 } | 524 } |