MCPcopy Create free account
hub / github.com/MITK/MITK / SetNewPropertyList

Method SetNewPropertyList

Modules/QtWidgets/src/QmitkPropertyItemModel.cpp:356–463  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

354}
355
356void QmitkPropertyItemModel::SetNewPropertyList(mitk::PropertyList *newPropertyList)
357{
358 typedef mitk::PropertyList::PropertyMap PropertyMap;
359
360 this->beginResetModel();
361
362 auto propertyList = m_PropertyList.Lock();
363
364 if (propertyList.IsNotNull())
365 {
366 propertyList->RemoveObserver(m_PropertyListDeletedTag);
367 propertyList->RemoveObserver(m_PropertyListModifiedTag);
368
369 const PropertyMap *propertyMap = propertyList->GetMap();
370
371 for (PropertyMap::const_iterator propertyIt = propertyMap->begin(); propertyIt != propertyMap->end(); ++propertyIt)
372 {
373 std::map<std::string, unsigned long>::const_iterator tagIt = m_PropertyModifiedTags.find(propertyIt->first);
374
375 if (tagIt != m_PropertyModifiedTags.end())
376 propertyIt->second->RemoveObserver(tagIt->second);
377
378 tagIt = m_PropertyDeletedTags.find(propertyIt->first);
379
380 if (tagIt != m_PropertyDeletedTags.end())
381 propertyIt->second->RemoveObserver(tagIt->second);
382 }
383
384 m_PropertyModifiedTags.clear();
385 m_PropertyDeletedTags.clear();
386 }
387
388 m_PropertyList = newPropertyList;
389 propertyList = m_PropertyList.Lock();
390
391 if (propertyList.IsNotNull())
392 {
393 auto onPropertyListModified = itk::SimpleMemberCommand<QmitkPropertyItemModel>::New();
394 onPropertyListModified->SetCallbackFunction(this, &QmitkPropertyItemModel::OnPropertyListModified);
395 m_PropertyListModifiedTag = propertyList->AddObserver(itk::ModifiedEvent(), onPropertyListModified);
396
397 auto onPropertyListDeleted = itk::SimpleMemberCommand<QmitkPropertyItemModel>::New();
398 onPropertyListDeleted->SetCallbackFunction(this, &QmitkPropertyItemModel::OnPropertyListDeleted);
399 m_PropertyListDeletedTag = propertyList->AddObserver(itk::DeleteEvent(), onPropertyListDeleted);
400
401 auto modifiedCommand = itk::MemberCommand<QmitkPropertyItemModel>::New();
402 modifiedCommand->SetCallbackFunction(this, &QmitkPropertyItemModel::OnPropertyModified);
403
404 const PropertyMap *propertyMap = m_PropertyList.Lock()->GetMap();
405
406 for (PropertyMap::const_iterator it = propertyMap->begin(); it != propertyMap->end(); ++it)
407 m_PropertyModifiedTags.insert(
408 std::make_pair(it->first, it->second->AddObserver(itk::ModifiedEvent(), modifiedCommand)));
409 }
410
411 this->CreateRootItem();
412 propertyList = m_PropertyList.Lock();
413

Callers 4

SetPropertyListMethod · 0.95
UpdateMethod · 0.95

Calls 15

CreateRootItemMethod · 0.95
IsNotNullMethod · 0.80
AddObserverMethod · 0.80
HasFilterMethod · 0.80
GetAliasesMethod · 0.80
GetPointerMethod · 0.80
NewFunction · 0.50
LockMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
findMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected