comparison framework/Document.cpp @ 371:dfcc5b355f33

Merge from branch warnfix_no_size_t
author Chris Cannam
date Wed, 18 Jun 2014 13:51:38 +0100
parents f1cab64363d7
children a4c2a4685cf1
comparison
equal deleted inserted replaced
355:e7a3fa8f4eec 371:dfcc5b355f33
233 //!!! This identifier may be wrong! 233 //!!! This identifier may be wrong!
234 emit modelGenerationWarning(transforms[0].getIdentifier(), message); 234 emit modelGenerationWarning(transforms[0].getIdentifier(), message);
235 } 235 }
236 236
237 QStringList names; 237 QStringList names;
238 for (int i = 0; i < newModels.size(); ++i) { 238 for (int i = 0; i < (int)newModels.size(); ++i) {
239 names.push_back(getUniqueLayerName 239 names.push_back(getUniqueLayerName
240 (TransformFactory::getInstance()-> 240 (TransformFactory::getInstance()->
241 getTransformFriendlyName 241 getTransformFriendlyName
242 (transforms[i].getIdentifier()))); 242 (transforms[i].getIdentifier())));
243 } 243 }
273 m_doc->addAdditionalModel(model); 273 m_doc->addAdditionalModel(model);
274 names.push_back(QString()); 274 names.push_back(QString());
275 } 275 }
276 vector<Layer *> layers = m_doc->createLayersForDerivedModels 276 vector<Layer *> layers = m_doc->createLayersForDerivedModels
277 (models, names); 277 (models, names);
278 m_handler->layersCreated(m_primary, layers); 278 m_handler->layersCreated(this, m_primary, layers);
279 delete this; 279 delete this;
280 } 280 }
281 281
282 void 282 void
283 noMoreModelsAvailable() { 283 noMoreModelsAvailable() {
284 std::cerr << "AdditionalModelConverter::noMoreModelsAvailable" << std::endl; 284 std::cerr << "AdditionalModelConverter::noMoreModelsAvailable" << std::endl;
285 m_handler->layersCreated(m_primary, vector<Layer *>()); 285 m_handler->layersCreated(this, m_primary, vector<Layer *>());
286 delete this; 286 delete this;
287 }
288
289 void cancel() {
290 foreach (Layer *layer, m_primary) {
291 Model *model = layer->getModel();
292 if (model) {
293 model->abandon();
294 }
295 }
287 } 296 }
288 297
289 private: 298 private:
290 Document *m_doc; 299 Document *m_doc;
291 vector<Layer *> m_primary; 300 vector<Layer *> m_primary;
292 Document::LayerCreationHandler *m_handler; //!!! how to handle destruction of this? 301 Document::LayerCreationHandler *m_handler; //!!! how to handle destruction of this?
293 }; 302 };
294 303
295 void 304 Document::LayerCreationAsyncHandle
296 Document::createDerivedLayersAsync(const Transforms &transforms, 305 Document::createDerivedLayersAsync(const Transforms &transforms,
297 const ModelTransformer::Input &input, 306 const ModelTransformer::Input &input,
298 LayerCreationHandler *handler) 307 LayerCreationHandler *handler)
299 { 308 {
300 QString message; 309 QString message;
303 312
304 vector<Model *> newModels = addDerivedModels 313 vector<Model *> newModels = addDerivedModels
305 (transforms, input, message, amc); 314 (transforms, input, message, amc);
306 315
307 QStringList names; 316 QStringList names;
308 for (int i = 0; i < newModels.size(); ++i) { 317 for (int i = 0; i < (int)newModels.size(); ++i) {
309 names.push_back(getUniqueLayerName 318 names.push_back(getUniqueLayerName
310 (TransformFactory::getInstance()-> 319 (TransformFactory::getInstance()->
311 getTransformFriendlyName 320 getTransformFriendlyName
312 (transforms[i].getIdentifier()))); 321 (transforms[i].getIdentifier())));
313 } 322 }
316 amc->setPrimaryLayers(layers); 325 amc->setPrimaryLayers(layers);
317 326
318 if (newModels.empty()) { 327 if (newModels.empty()) {
319 //!!! This identifier may be wrong! 328 //!!! This identifier may be wrong!
320 emit modelGenerationFailed(transforms[0].getIdentifier(), message); 329 emit modelGenerationFailed(transforms[0].getIdentifier(), message);
330 //!!! what to do with amc?
321 } else if (message != "") { 331 } else if (message != "") {
322 //!!! This identifier may be wrong! 332 //!!! This identifier may be wrong!
323 emit modelGenerationWarning(transforms[0].getIdentifier(), message); 333 emit modelGenerationWarning(transforms[0].getIdentifier(), message);
324 } 334 //!!! what to do with amc?
335 }
336
337 return amc;
338 }
339
340 void
341 Document::cancelAsyncLayerCreation(Document::LayerCreationAsyncHandle h)
342 {
343 AdditionalModelConverter *conv = static_cast<AdditionalModelConverter *>(h);
344 conv->cancel();
325 } 345 }
326 346
327 vector<Layer *> 347 vector<Layer *>
328 Document::createLayersForDerivedModels(vector<Model *> newModels, 348 Document::createLayersForDerivedModels(vector<Model *> newModels,
329 QStringList names) 349 QStringList names)
491 << typeid(*model).name() << ") with model " 511 << typeid(*model).name() << ") with model "
492 << replacementModel << " (type " 512 << replacementModel << " (type "
493 << typeid(*replacementModel).name() << ") in layer " 513 << typeid(*replacementModel).name() << ") in layer "
494 << layer << " (name " << layer->objectName() << ")" 514 << layer << " (name " << layer->objectName() << ")"
495 << endl; 515 << endl;
496 #endif 516
497 RangeSummarisableTimeValueModel *rm = 517 RangeSummarisableTimeValueModel *rm =
498 dynamic_cast<RangeSummarisableTimeValueModel *>(replacementModel); 518 dynamic_cast<RangeSummarisableTimeValueModel *>(replacementModel);
499 #ifdef DEBUG_DOCUMENT
500 if (rm) { 519 if (rm) {
501 cerr << "new model has " << rm->getChannelCount() << " channels " << endl; 520 cerr << "new model has " << rm->getChannelCount() << " channels " << endl;
502 } else { 521 } else {
503 cerr << "new model " << replacementModel << " is not a RangeSummarisableTimeValueModel!" << endl; 522 cerr << "new model " << replacementModel << " is not a RangeSummarisableTimeValueModel!" << endl;
504 } 523 }