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 }