ModelEditor: Introduce QMT_ASSERT

This change shall solve a lot of Coverity findings

Change-Id: I1e699f7363426e9b6008fc77d3f498fe3d968b4f
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
Jochen Becher
2017-07-09 11:49:13 +02:00
parent 8ccdbe1944
commit 05f7b92f0a
49 changed files with 360 additions and 362 deletions

View File

@@ -150,10 +150,10 @@ void DiagramSceneController::deleteFromDiagram(const DSelection &dselection, MDi
DSelection remainingDselection;
foreach (const DSelection::Index &index, dselection.indices()) {
DElement *delement = m_diagramController->findElement(index.elementKey(), diagram);
QMT_CHECK(delement);
QMT_ASSERT(delement, return);
if (delement->modelUid().isValid()) {
MElement *melement = m_modelController->findElement(delement->modelUid());
QMT_CHECK(melement);
QMT_ASSERT(melement, return);
if (melement->owner())
mselection.append(melement->uid(), melement->owner()->uid());
} else {
@@ -173,9 +173,9 @@ void DiagramSceneController::createDependency(DObject *endAObject, DObject *endB
m_diagramController->undoController()->beginMergeSequence(tr("Create Dependency"));
MObject *endAModelObject = m_modelController->findObject<MObject>(endAObject->modelUid());
QMT_CHECK(endAModelObject);
QMT_ASSERT(endAModelObject, return);
MObject *endBModelObject = m_modelController->findObject<MObject>(endBObject->modelUid());
QMT_CHECK(endBModelObject);
QMT_ASSERT(endBModelObject, return);
if (endAModelObject == endBModelObject)
return;
@@ -200,9 +200,9 @@ void DiagramSceneController::createInheritance(DClass *derivedClass, DClass *bas
m_diagramController->undoController()->beginMergeSequence(tr("Create Inheritance"));
MClass *derivedModelClass = m_modelController->findObject<MClass>(derivedClass->modelUid());
QMT_CHECK(derivedModelClass);
QMT_ASSERT(derivedModelClass, return);
MClass *baseModelClass = m_modelController->findObject<MClass>(baseClass->modelUid());
QMT_CHECK(baseModelClass);
QMT_ASSERT(baseModelClass, return);
if (derivedModelClass == baseModelClass)
return;
@@ -226,9 +226,9 @@ void DiagramSceneController::createAssociation(DClass *endAClass, DClass *endBCl
m_diagramController->undoController()->beginMergeSequence(tr("Create Association"));
MClass *endAModelObject = m_modelController->findObject<MClass>(endAClass->modelUid());
QMT_CHECK(endAModelObject);
QMT_ASSERT(endAModelObject, return);
MClass *endBModelObject = m_modelController->findObject<MClass>(endBClass->modelUid());
QMT_CHECK(endBModelObject);
QMT_ASSERT(endBModelObject, return);
// TODO allow self assignment with just one intermediate point and a nice round arrow
if (endAModelObject == endBModelObject && intermediatePoints.count() < 2)
@@ -263,18 +263,18 @@ bool DiagramSceneController::relocateRelationEndB(DRelation *relation, DObject *
bool DiagramSceneController::isAddingAllowed(const Uid &modelElementKey, MDiagram *diagram)
{
MElement *modelElement = m_modelController->findElement(modelElementKey);
QMT_CHECK(modelElement);
QMT_ASSERT(modelElement, return false);
if (m_diagramController->hasDelegate(modelElement, diagram))
return false;
if (auto modelRelation = dynamic_cast<MRelation *>(modelElement)) {
MObject *endAModelObject = m_modelController->findObject(modelRelation->endAUid());
QMT_CHECK(endAModelObject);
QMT_ASSERT(endAModelObject, return false);
DObject *endADiagramObject = m_diagramController->findDelegate<DObject>(endAModelObject, diagram);
if (!endADiagramObject)
return false;
MObject *endBModelObject = m_modelController->findObject(modelRelation->endBUid());
QMT_CHECK(endBModelObject);
QMT_ASSERT(endBModelObject, return false);
DObject *endBDiagramObject = m_diagramController->findDelegate<DObject>(endBModelObject, diagram);
if (!endBDiagramObject)
return false;
@@ -595,7 +595,7 @@ DElement *DiagramSceneController::addModelElement(const Uid &modelElementKey, co
DObject *DiagramSceneController::addObject(MObject *modelObject, const QPointF &pos, MDiagram *diagram)
{
QMT_CHECK(modelObject);
QMT_ASSERT(modelObject, return nullptr);
if (m_diagramController->hasDelegate(modelObject, diagram))
return 0;
@@ -605,7 +605,7 @@ DObject *DiagramSceneController::addObject(MObject *modelObject, const QPointF &
DFactory factory;
modelObject->accept(&factory);
auto diagramObject = dynamic_cast<DObject *>(factory.product());
QMT_CHECK(diagramObject);
QMT_ASSERT(diagramObject, return nullptr);
diagramObject->setPos(pos);
m_diagramController->addElement(diagramObject, diagram);
alignOnRaster(diagramObject, diagram);
@@ -657,7 +657,7 @@ DObject *DiagramSceneController::addObject(MObject *modelObject, const QPointF &
DRelation *DiagramSceneController::addRelation(MRelation *modelRelation, const QList<QPointF> &intermediatePoints,
MDiagram *diagram)
{
QMT_CHECK(modelRelation);
QMT_ASSERT(modelRelation, return nullptr);
if (m_diagramController->hasDelegate(modelRelation, diagram))
return 0;
@@ -665,18 +665,18 @@ DRelation *DiagramSceneController::addRelation(MRelation *modelRelation, const Q
DFactory factory;
modelRelation->accept(&factory);
auto diagramRelation = dynamic_cast<DRelation *>(factory.product());
QMT_CHECK(diagramRelation);
QMT_ASSERT(diagramRelation, return nullptr);
MObject *endAModelObject = m_modelController->findObject(modelRelation->endAUid());
QMT_CHECK(endAModelObject);
QMT_ASSERT(endAModelObject, return nullptr);
DObject *endADiagramObject = m_diagramController->findDelegate<DObject>(endAModelObject, diagram);
QMT_CHECK(endADiagramObject);
QMT_ASSERT(endADiagramObject, return nullptr);
diagramRelation->setEndAUid(endADiagramObject->uid());
MObject *endBModelObject = m_modelController->findObject(modelRelation->endBUid());
QMT_CHECK(endBModelObject);
QMT_ASSERT(endBModelObject, return nullptr);
DObject *endBDiagramObject = m_diagramController->findDelegate<DObject>(endBModelObject, diagram);
QMT_CHECK(endBDiagramObject);
QMT_ASSERT(endBDiagramObject, return nullptr);
diagramRelation->setEndBUid(endBDiagramObject->uid());
QList<DRelation::IntermediatePoint> relationPoints;
@@ -712,17 +712,17 @@ bool DiagramSceneController::relocateRelationEnd(DRelation *relation, DObject *t
Uid (MRelation::*endUid)() const,
void (MRelation::*setEndUid)(const Uid &))
{
QMT_CHECK(relation);
QMT_ASSERT(relation, return false);
if (targetObject && targetObject->uid() != relation->endAUid()) {
MRelation *modelRelation = m_modelController->findRelation(relation->modelUid());
QMT_CHECK(modelRelation);
QMT_ASSERT(modelRelation, return false);
MObject *targetMObject = m_modelController->findObject(targetObject->modelUid());
QMT_CHECK(targetMObject);
QMT_ASSERT(targetMObject, return false);
AcceptRelationVisitor visitor(modelRelation);
targetMObject->accept(&visitor);
if (visitor.isAccepted()) {
MObject *currentTargetMObject = m_modelController->findObject((modelRelation->*endUid)());
QMT_CHECK(currentTargetMObject);
QMT_ASSERT(currentTargetMObject, return false);
m_modelController->undoController()->beginMergeSequence(tr("Relocate Relation"));
// move relation into new target if it was a child of the old target
if (currentTargetMObject == modelRelation->owner())