Mercurial > hg > svapp
comparison framework/Document.cpp @ 660:85ada073d2db single-point
Some debug output adjustments
author | Chris Cannam |
---|---|
date | Tue, 02 Apr 2019 14:26:46 +0100 |
parents | 029c224384d1 |
children | a2bf5e6c54ce |
comparison
equal
deleted
inserted
replaced
659:49cf3787cf22 | 660:85ada073d2db |
---|---|
72 //!!! Document should really own the command history. atm we | 72 //!!! Document should really own the command history. atm we |
73 //still refer to it in various places that don't have access to | 73 //still refer to it in various places that don't have access to |
74 //the document, be nice to fix that | 74 //the document, be nice to fix that |
75 | 75 |
76 #ifdef DEBUG_DOCUMENT | 76 #ifdef DEBUG_DOCUMENT |
77 cerr << "\n\nDocument::~Document: about to clear command history" << endl; | 77 SVDEBUG << "\n\nDocument::~Document: about to clear command history" << endl; |
78 #endif | 78 #endif |
79 CommandHistory::getInstance()->clear(); | 79 CommandHistory::getInstance()->clear(); |
80 | 80 |
81 #ifdef DEBUG_DOCUMENT | 81 #ifdef DEBUG_DOCUMENT |
82 SVDEBUG << "Document::~Document: about to delete layers" << endl; | 82 SVDEBUG << "Document::~Document: about to delete layers" << endl; |
152 { | 152 { |
153 LayerFactory::LayerTypeSet types = | 153 LayerFactory::LayerTypeSet types = |
154 LayerFactory::getInstance()->getValidLayerTypes(model); | 154 LayerFactory::getInstance()->getValidLayerTypes(model); |
155 | 155 |
156 if (types.empty()) { | 156 if (types.empty()) { |
157 cerr << "WARNING: Document::importLayer: no valid display layer for model" << endl; | 157 SVCERR << "WARNING: Document::importLayer: no valid display layer for model" << endl; |
158 return nullptr; | 158 return nullptr; |
159 } | 159 } |
160 | 160 |
161 //!!! for now, just use the first suitable layer type | 161 //!!! for now, just use the first suitable layer type |
162 LayerFactory::LayerType type = *types.begin(); | 162 LayerFactory::LayerType type = *types.begin(); |
274 m_primary = layers; | 274 m_primary = layers; |
275 } | 275 } |
276 | 276 |
277 void | 277 void |
278 moreModelsAvailable(vector<Model *> models) override { | 278 moreModelsAvailable(vector<Model *> models) override { |
279 std::cerr << "AdditionalModelConverter::moreModelsAvailable: " << models.size() << " model(s)" << std::endl; | 279 SVDEBUG << "AdditionalModelConverter::moreModelsAvailable: " << models.size() << " model(s)" << endl; |
280 // We can't automatically regenerate the additional models on | 280 // We can't automatically regenerate the additional models on |
281 // reload -- we should delete them instead | 281 // reload -- we should delete them instead |
282 QStringList names; | 282 QStringList names; |
283 foreach (Model *model, models) { | 283 foreach (Model *model, models) { |
284 m_doc->addAdditionalModel(model); | 284 m_doc->addAdditionalModel(model); |
290 delete this; | 290 delete this; |
291 } | 291 } |
292 | 292 |
293 void | 293 void |
294 noMoreModelsAvailable() override { | 294 noMoreModelsAvailable() override { |
295 std::cerr << "AdditionalModelConverter::noMoreModelsAvailable" << std::endl; | 295 SVDEBUG << "AdditionalModelConverter::noMoreModelsAvailable" << endl; |
296 m_handler->layersCreated(this, m_primary, vector<Layer *>()); | 296 m_handler->layersCreated(this, m_primary, vector<Layer *>()); |
297 delete this; | 297 delete this; |
298 } | 298 } |
299 | 299 |
300 void cancel() { | 300 void cancel() { |
367 | 367 |
368 LayerFactory::LayerTypeSet types = | 368 LayerFactory::LayerTypeSet types = |
369 LayerFactory::getInstance()->getValidLayerTypes(newModel); | 369 LayerFactory::getInstance()->getValidLayerTypes(newModel); |
370 | 370 |
371 if (types.empty()) { | 371 if (types.empty()) { |
372 cerr << "WARNING: Document::createLayerForTransformer: no valid display layer for output of transform " << names[i] << endl; | 372 SVCERR << "WARNING: Document::createLayerForTransformer: no valid display layer for output of transform " << names[i] << endl; |
373 //!!! inadequate cleanup: | 373 //!!! inadequate cleanup: |
374 newModel->aboutToDelete(); | 374 newModel->aboutToDelete(); |
375 emit modelAboutToBeDeleted(newModel); | 375 emit modelAboutToBeDeleted(newModel); |
376 m_models.erase(newModel); | 376 m_models.erase(newModel); |
377 delete newModel; | 377 delete newModel; |
430 // model, or delete the layer for each layer that is currently | 430 // model, or delete the layer for each layer that is currently |
431 // using one of these. Carry out this replacement before we | 431 // using one of these. Carry out this replacement before we |
432 // delete any of the models. | 432 // delete any of the models. |
433 | 433 |
434 #ifdef DEBUG_DOCUMENT | 434 #ifdef DEBUG_DOCUMENT |
435 cerr << "Document::setMainModel: Have " | 435 SVDEBUG << "Document::setMainModel: Have " |
436 << m_layers.size() << " layers" << endl; | 436 << m_layers.size() << " layers" << endl; |
437 cerr << "Models now: "; | 437 cerr << "Models now: "; |
438 for (ModelMap::const_iterator i = m_models.begin(); i != m_models.end(); ++i) { | 438 for (ModelMap::const_iterator i = m_models.begin(); i != m_models.end(); ++i) { |
439 cerr << i->first << " "; | 439 cerr << i->first << " "; |
440 } | 440 } |
441 cerr << endl; | 441 SVDEBUG << endl; |
442 cerr << "Old main model: " << oldMainModel << endl; | 442 SVDEBUG << "Old main model: " << oldMainModel << endl; |
443 #endif | 443 #endif |
444 | 444 |
445 for (LayerSet::iterator i = m_layers.begin(); i != m_layers.end(); ++i) { | 445 for (LayerSet::iterator i = m_layers.begin(); i != m_layers.end(); ++i) { |
446 | 446 |
447 Layer *layer = *i; | 447 Layer *layer = *i; |
448 Model *model = layer->getModel(); | 448 Model *model = layer->getModel(); |
449 | 449 |
450 #ifdef DEBUG_DOCUMENT | 450 #ifdef DEBUG_DOCUMENT |
451 cerr << "Document::setMainModel: inspecting model " | 451 SVDEBUG << "Document::setMainModel: inspecting model " |
452 << (model ? model->objectName(): "(null)") << " in layer " | 452 << (model ? model->objectName(): "(null)") << " in layer " |
453 << layer->objectName() << endl; | 453 << layer->objectName() << endl; |
454 #endif | 454 #endif |
455 | 455 |
456 if (model == oldMainModel) { | 456 if (model == oldMainModel) { |
457 #ifdef DEBUG_DOCUMENT | 457 #ifdef DEBUG_DOCUMENT |
458 cerr << "... it uses the old main model, replacing" << endl; | 458 SVDEBUG << "... it uses the old main model, replacing" << endl; |
459 #endif | 459 #endif |
460 LayerFactory::getInstance()->setModel(layer, m_mainModel); | 460 LayerFactory::getInstance()->setModel(layer, m_mainModel); |
461 continue; | 461 continue; |
462 } | 462 } |
463 | 463 |
464 if (!model) { | 464 if (!model) { |
465 cerr << "WARNING: Document::setMainModel: Null model in layer " | 465 SVCERR << "WARNING: Document::setMainModel: Null model in layer " |
466 << layer << endl; | 466 << layer << endl; |
467 // get rid of this hideous degenerate | 467 // get rid of this hideous degenerate |
468 obsoleteLayers.push_back(layer); | 468 obsoleteLayers.push_back(layer); |
469 continue; | 469 continue; |
470 } | 470 } |
471 | 471 |
479 | 479 |
480 if (m_models[model].source && | 480 if (m_models[model].source && |
481 (m_models[model].source == oldMainModel)) { | 481 (m_models[model].source == oldMainModel)) { |
482 | 482 |
483 #ifdef DEBUG_DOCUMENT | 483 #ifdef DEBUG_DOCUMENT |
484 cerr << "... it uses a model derived from the old main model, regenerating" << endl; | 484 SVDEBUG << "... it uses a model derived from the old main model, regenerating" << endl; |
485 #endif | 485 #endif |
486 | 486 |
487 // This model was derived from the previous main | 487 // This model was derived from the previous main |
488 // model: regenerate it. | 488 // model: regenerate it. |
489 | 489 |
499 ModelTransformer::Input | 499 ModelTransformer::Input |
500 (m_mainModel, m_models[model].channel), | 500 (m_mainModel, m_models[model].channel), |
501 message); | 501 message); |
502 | 502 |
503 if (!replacementModel) { | 503 if (!replacementModel) { |
504 cerr << "WARNING: Document::setMainModel: Failed to regenerate model for transform \"" | 504 SVCERR << "WARNING: Document::setMainModel: Failed to regenerate model for transform \"" |
505 << transformId << "\"" << " in layer " << layer << endl; | 505 << transformId << "\"" << " in layer " << layer << endl; |
506 if (failedTransformers.find(transformId) | 506 if (failedTransformers.find(transformId) |
507 == failedTransformers.end()) { | 507 == failedTransformers.end()) { |
508 emit modelRegenerationFailed(layer->objectName(), | 508 emit modelRegenerationFailed(layer->objectName(), |
509 transformId, | 509 transformId, |
510 message); | 510 message); |
516 emit modelRegenerationWarning(layer->objectName(), | 516 emit modelRegenerationWarning(layer->objectName(), |
517 transformId, | 517 transformId, |
518 message); | 518 message); |
519 } | 519 } |
520 #ifdef DEBUG_DOCUMENT | 520 #ifdef DEBUG_DOCUMENT |
521 cerr << "Replacing model " << model << " (type " | 521 SVDEBUG << "Replacing model " << model << " (type " |
522 << typeid(*model).name() << ") with model " | 522 << typeid(*model).name() << ") with model " |
523 << replacementModel << " (type " | 523 << replacementModel << " (type " |
524 << typeid(*replacementModel).name() << ") in layer " | 524 << typeid(*replacementModel).name() << ") in layer " |
525 << layer << " (name " << layer->objectName() << ")" | 525 << layer << " (name " << layer->objectName() << ")" |
526 << endl; | 526 << endl; |
527 | 527 |
528 RangeSummarisableTimeValueModel *rm = | 528 RangeSummarisableTimeValueModel *rm = |
529 dynamic_cast<RangeSummarisableTimeValueModel *>(replacementModel); | 529 dynamic_cast<RangeSummarisableTimeValueModel *>(replacementModel); |
530 if (rm) { | 530 if (rm) { |
531 cerr << "new model has " << rm->getChannelCount() << " channels " << endl; | 531 SVDEBUG << "new model has " << rm->getChannelCount() << " channels " << endl; |
532 } else { | 532 } else { |
533 cerr << "new model " << replacementModel << " is not a RangeSummarisableTimeValueModel!" << endl; | 533 SVDEBUG << "new model " << replacementModel << " is not a RangeSummarisableTimeValueModel!" << endl; |
534 } | 534 } |
535 #endif | 535 #endif |
536 setModel(layer, replacementModel); | 536 setModel(layer, replacementModel); |
537 } | 537 } |
538 } | 538 } |
597 return; | 597 return; |
598 } | 598 } |
599 | 599 |
600 #ifdef DEBUG_DOCUMENT | 600 #ifdef DEBUG_DOCUMENT |
601 if (input.getModel()) { | 601 if (input.getModel()) { |
602 cerr << "Document::addAlreadyDerivedModel: source is " << input.getModel() << " \"" << input.getModel()->objectName() << "\"" << endl; | 602 SVDEBUG << "Document::addAlreadyDerivedModel: source is " << input.getModel() << " \"" << input.getModel()->objectName() << "\"" << endl; |
603 } else { | 603 } else { |
604 cerr << "Document::addAlreadyDerivedModel: source is " << input.getModel() << endl; | 604 SVDEBUG << "Document::addAlreadyDerivedModel: source is " << input.getModel() << endl; |
605 } | 605 } |
606 #endif | 606 #endif |
607 | 607 |
608 ModelRecord rec; | 608 ModelRecord rec; |
609 rec.source = input.getModel(); | 609 rec.source = input.getModel(); |
620 cerr << "Document::addAlreadyDerivedModel: Added model " << outputModelToAdd << endl; | 620 cerr << "Document::addAlreadyDerivedModel: Added model " << outputModelToAdd << endl; |
621 cerr << "Models now: "; | 621 cerr << "Models now: "; |
622 for (ModelMap::const_iterator i = m_models.begin(); i != m_models.end(); ++i) { | 622 for (ModelMap::const_iterator i = m_models.begin(); i != m_models.end(); ++i) { |
623 cerr << i->first << " "; | 623 cerr << i->first << " "; |
624 } | 624 } |
625 cerr << endl; | 625 SVDEBUG << endl; |
626 #endif | 626 #endif |
627 | 627 |
628 emit modelAdded(outputModelToAdd); | 628 emit modelAdded(outputModelToAdd); |
629 } | 629 } |
630 | 630 |
650 SVDEBUG << "Document::addImportedModel: Added model " << model << endl; | 650 SVDEBUG << "Document::addImportedModel: Added model " << model << endl; |
651 cerr << "Models now: "; | 651 cerr << "Models now: "; |
652 for (ModelMap::const_iterator i = m_models.begin(); i != m_models.end(); ++i) { | 652 for (ModelMap::const_iterator i = m_models.begin(); i != m_models.end(); ++i) { |
653 cerr << i->first << " "; | 653 cerr << i->first << " "; |
654 } | 654 } |
655 cerr << endl; | 655 SVDEBUG << endl; |
656 #endif | 656 #endif |
657 | 657 |
658 if (m_autoAlignment) { | 658 if (m_autoAlignment) { |
659 SVDEBUG << "Document::addImportedModel: auto-alignment is on, aligning model if possible" << endl; | 659 SVDEBUG << "Document::addImportedModel: auto-alignment is on, aligning model if possible" << endl; |
660 alignModel(model); | 660 alignModel(model); |
686 SVDEBUG << "Document::addAdditionalModel: Added model " << model << endl; | 686 SVDEBUG << "Document::addAdditionalModel: Added model " << model << endl; |
687 cerr << "Models now: "; | 687 cerr << "Models now: "; |
688 for (ModelMap::const_iterator i = m_models.begin(); i != m_models.end(); ++i) { | 688 for (ModelMap::const_iterator i = m_models.begin(); i != m_models.end(); ++i) { |
689 cerr << i->first << " "; | 689 cerr << i->first << " "; |
690 } | 690 } |
691 cerr << endl; | 691 SVDEBUG << endl; |
692 #endif | 692 #endif |
693 | 693 |
694 if (m_autoAlignment) { | 694 if (m_autoAlignment) { |
695 SVDEBUG << "Document::addAdditionalModel: auto-alignment is on, aligning model if possible" << endl; | 695 SVDEBUG << "Document::addAdditionalModel: auto-alignment is on, aligning model if possible" << endl; |
696 alignModel(model); | 696 alignModel(model); |
770 getDefaultTransformFor(applied.getIdentifier(), | 770 getDefaultTransformFor(applied.getIdentifier(), |
771 applied.getSampleRate()) | 771 applied.getSampleRate()) |
772 .getPluginVersion()); | 772 .getPluginVersion()); |
773 | 773 |
774 if (!model) { | 774 if (!model) { |
775 cerr << "WARNING: Document::addDerivedModel: no output model for transform " << applied.getIdentifier() << endl; | 775 SVCERR << "WARNING: Document::addDerivedModel: no output model for transform " << applied.getIdentifier() << endl; |
776 } else { | 776 } else { |
777 addAlreadyDerivedModel(applied, input, model); | 777 addAlreadyDerivedModel(applied, input, model); |
778 } | 778 } |
779 } | 779 } |
780 | 780 |
838 SVDEBUG << "Document::releaseModel: Deleted model " << model << endl; | 838 SVDEBUG << "Document::releaseModel: Deleted model " << model << endl; |
839 cerr << "Models now: "; | 839 cerr << "Models now: "; |
840 for (ModelMap::const_iterator i = m_models.begin(); i != m_models.end(); ++i) { | 840 for (ModelMap::const_iterator i = m_models.begin(); i != m_models.end(); ++i) { |
841 cerr << i->first << " "; | 841 cerr << i->first << " "; |
842 } | 842 } |
843 cerr << endl; | 843 SVDEBUG << endl; |
844 #endif | 844 #endif |
845 | 845 |
846 delete model; | 846 delete model; |
847 } | 847 } |
848 } | 848 } |
851 Document::deleteLayer(Layer *layer, bool force) | 851 Document::deleteLayer(Layer *layer, bool force) |
852 { | 852 { |
853 if (m_layerViewMap.find(layer) != m_layerViewMap.end() && | 853 if (m_layerViewMap.find(layer) != m_layerViewMap.end() && |
854 m_layerViewMap[layer].size() > 0) { | 854 m_layerViewMap[layer].size() > 0) { |
855 | 855 |
856 cerr << "WARNING: Document::deleteLayer: Layer " | 856 SVCERR << "WARNING: Document::deleteLayer: Layer " |
857 << layer << " [" << layer->objectName() << "]" | 857 << layer << " [" << layer->objectName() << "]" |
858 << " is still used in " << m_layerViewMap[layer].size() | 858 << " is still used in " << m_layerViewMap[layer].size() |
859 << " views!" << endl; | 859 << " views!" << endl; |
860 | 860 |
861 if (force) { | 861 if (force) { |
862 | 862 |
863 #ifdef DEBUG_DOCUMENT | 863 #ifdef DEBUG_DOCUMENT |
864 cerr << "(force flag set -- deleting from all views)" << endl; | 864 SVCERR << "(force flag set -- deleting from all views)" << endl; |
865 #endif | 865 #endif |
866 | 866 |
867 for (std::set<View *>::iterator j = m_layerViewMap[layer].begin(); | 867 for (std::set<View *>::iterator j = m_layerViewMap[layer].begin(); |
868 j != m_layerViewMap[layer].end(); ++j) { | 868 j != m_layerViewMap[layer].end(); ++j) { |
869 // don't use removeLayerFromView, as it issues a command | 869 // don't use removeLayerFromView, as it issues a command |
932 PlayParameterRepository::getInstance()->copyParameters | 932 PlayParameterRepository::getInstance()->copyParameters |
933 (previousModel, model); | 933 (previousModel, model); |
934 } | 934 } |
935 | 935 |
936 LayerFactory::getInstance()->setModel(layer, model); | 936 LayerFactory::getInstance()->setModel(layer, model); |
937 // std::cerr << "layer type: " << LayerFactory::getInstance()->getLayerTypeName(LayerFactory::getInstance()->getLayerType(layer)) << std::endl; | |
938 | 937 |
939 if (previousModel) { | 938 if (previousModel) { |
940 releaseModel(previousModel); | 939 releaseModel(previousModel); |
941 } | 940 } |
942 } | 941 } |
952 { | 951 { |
953 Model *model = layer->getModel(); | 952 Model *model = layer->getModel(); |
954 if (!model) { | 953 if (!model) { |
955 #ifdef DEBUG_DOCUMENT | 954 #ifdef DEBUG_DOCUMENT |
956 SVDEBUG << "Document::addLayerToView: Layer (\"" | 955 SVDEBUG << "Document::addLayerToView: Layer (\"" |
957 << layer->objectName() << "\") with no model being added to view: " | 956 << layer->objectName() |
957 << "\") with no model being added to view: " | |
958 << "normally you want to set the model first" << endl; | 958 << "normally you want to set the model first" << endl; |
959 #endif | 959 #endif |
960 } else { | 960 } else { |
961 if (model != m_mainModel && | 961 if (model != m_mainModel && |
962 m_models.find(model) == m_models.end()) { | 962 m_models.find(model) == m_models.end()) { |
984 bool firstView = (m_layerViewMap.find(layer) == m_layerViewMap.end() || | 984 bool firstView = (m_layerViewMap.find(layer) == m_layerViewMap.end() || |
985 m_layerViewMap[layer].empty()); | 985 m_layerViewMap[layer].empty()); |
986 | 986 |
987 if (m_layerViewMap[layer].find(view) != | 987 if (m_layerViewMap[layer].find(view) != |
988 m_layerViewMap[layer].end()) { | 988 m_layerViewMap[layer].end()) { |
989 cerr << "WARNING: Document::addToLayerViewMap:" | 989 SVCERR << "WARNING: Document::addToLayerViewMap:" |
990 << " Layer " << layer << " -> view " << view << " already in" | 990 << " Layer " << layer << " -> view " << view << " already in" |
991 << " layer view map -- internal inconsistency" << endl; | 991 << " layer view map -- internal inconsistency" << endl; |
992 } | 992 } |
993 | 993 |
994 m_layerViewMap[layer].insert(view); | 994 m_layerViewMap[layer].insert(view); |
999 void | 999 void |
1000 Document::removeFromLayerViewMap(Layer *layer, View *view) | 1000 Document::removeFromLayerViewMap(Layer *layer, View *view) |
1001 { | 1001 { |
1002 if (m_layerViewMap[layer].find(view) == | 1002 if (m_layerViewMap[layer].find(view) == |
1003 m_layerViewMap[layer].end()) { | 1003 m_layerViewMap[layer].end()) { |
1004 cerr << "WARNING: Document::removeFromLayerViewMap:" | 1004 SVCERR << "WARNING: Document::removeFromLayerViewMap:" |
1005 << " Layer " << layer << " -> view " << view << " not in" | 1005 << " Layer " << layer << " -> view " << view << " not in" |
1006 << " layer view map -- internal inconsistency" << endl; | 1006 << " layer view map -- internal inconsistency" << endl; |
1007 } | 1007 } |
1008 | 1008 |
1009 m_layerViewMap[layer].erase(view); | 1009 m_layerViewMap[layer].erase(view); |
1105 rm->setAlignment(new AlignmentModel(model, model, nullptr, nullptr)); | 1105 rm->setAlignment(new AlignmentModel(model, model, nullptr, nullptr)); |
1106 return; | 1106 return; |
1107 } | 1107 } |
1108 | 1108 |
1109 if (!m_align->alignModel(m_mainModel, rm)) { | 1109 if (!m_align->alignModel(m_mainModel, rm)) { |
1110 cerr << "Alignment failed: " << m_align->getError() << endl; | 1110 SVCERR << "Alignment failed: " << m_align->getError() << endl; |
1111 emit alignmentFailed(m_align->getError()); | 1111 emit alignmentFailed(m_align->getError()); |
1112 } | 1112 } |
1113 } | 1113 } |
1114 | 1114 |
1115 void | 1115 void |
1266 out << indent + QString("<data%1%2>\n") | 1266 out << indent + QString("<data%1%2>\n") |
1267 .arg(extraAttributes == "" ? "" : " ").arg(extraAttributes); | 1267 .arg(extraAttributes == "" ? "" : " ").arg(extraAttributes); |
1268 | 1268 |
1269 if (m_mainModel) { | 1269 if (m_mainModel) { |
1270 | 1270 |
1271 #ifdef DEBUG_DOCUMENT | |
1272 SVDEBUG << "Document::toXml: writing main model" << endl; | |
1273 #endif | |
1274 | |
1271 if (asTemplate) { | 1275 if (asTemplate) { |
1272 writePlaceholderMainModel(out, indent + " "); | 1276 writePlaceholderMainModel(out, indent + " "); |
1273 } else { | 1277 } else { |
1274 m_mainModel->toXml(out, indent + " ", "mainModel=\"true\""); | 1278 m_mainModel->toXml(out, indent + " ", "mainModel=\"true\""); |
1275 } | 1279 } |
1280 playParameters->toXml | 1284 playParameters->toXml |
1281 (out, indent + " ", | 1285 (out, indent + " ", |
1282 QString("model=\"%1\"") | 1286 QString("model=\"%1\"") |
1283 .arg(m_mainModel->getExportId())); | 1287 .arg(m_mainModel->getExportId())); |
1284 } | 1288 } |
1289 } else { | |
1290 #ifdef DEBUG_DOCUMENT | |
1291 SVDEBUG << "Document::toXml: have no main model to write" << endl; | |
1292 #endif | |
1285 } | 1293 } |
1286 | 1294 |
1287 // Models that are not used in a layer that is in a view should | 1295 // Models that are not used in a layer that is in a view should |
1288 // not be written. Get our list of required models first. | 1296 // not be written. Get our list of required models first. |
1289 | 1297 |
1317 // models first and we might as well stick with that. | 1325 // models first and we might as well stick with that. |
1318 | 1326 |
1319 for (std::set<Model *>::iterator i = m_aggregateModels.begin(); | 1327 for (std::set<Model *>::iterator i = m_aggregateModels.begin(); |
1320 i != m_aggregateModels.end(); ++i) { | 1328 i != m_aggregateModels.end(); ++i) { |
1321 | 1329 |
1322 SVDEBUG << "checking aggregate model " << *i << endl; | 1330 #ifdef DEBUG_DOCUMENT |
1331 SVDEBUG << "Document::toXml: checking aggregate model " << *i << endl; | |
1332 #endif | |
1323 | 1333 |
1324 AggregateWaveModel *aggregate = qobject_cast<AggregateWaveModel *>(*i); | 1334 AggregateWaveModel *aggregate = qobject_cast<AggregateWaveModel *>(*i); |
1325 if (!aggregate) continue; | 1335 if (!aggregate) continue; |
1326 if (used.find(aggregate) == used.end()) { | 1336 if (used.find(aggregate) == used.end()) { |
1337 #ifdef DEBUG_DOCUMENT | |
1327 SVDEBUG << "(unused, skipping)" << endl; | 1338 SVDEBUG << "(unused, skipping)" << endl; |
1339 #endif | |
1328 continue; | 1340 continue; |
1329 } | 1341 } |
1330 | 1342 |
1343 #ifdef DEBUG_DOCUMENT | |
1331 SVDEBUG << "(used, writing)" << endl; | 1344 SVDEBUG << "(used, writing)" << endl; |
1345 #endif | |
1332 | 1346 |
1333 aggregate->toXml(out, indent + " "); | 1347 aggregate->toXml(out, indent + " "); |
1334 } | 1348 } |
1335 | 1349 |
1336 std::set<Model *> written; | 1350 std::set<Model *> written; |
1351 Model *model = i->first; | 1365 Model *model = i->first; |
1352 const ModelRecord &rec = i->second; | 1366 const ModelRecord &rec = i->second; |
1353 | 1367 |
1354 if (used.find(model) == used.end()) continue; | 1368 if (used.find(model) == used.end()) continue; |
1355 | 1369 |
1370 #ifdef DEBUG_DOCUMENT | |
1371 SVDEBUG << "Document::toXml: looking at model " << model | |
1372 << " (" << model->getTypeName() << ", \"" | |
1373 << model->objectName() << "\") [pass = " | |
1374 << pass << "]" << endl; | |
1375 #endif | |
1376 | |
1356 // We need an intelligent way to determine which models | 1377 // We need an intelligent way to determine which models |
1357 // need to be streamed (i.e. have been edited, or are | 1378 // need to be streamed (i.e. have been edited, or are |
1358 // small) and which should not be (i.e. remain as | 1379 // small) and which should not be (i.e. remain as |
1359 // generated by a transform, and are large). | 1380 // generated by a transform, and are large). |
1360 // | 1381 // |