Fix bug: scene rect was wrong when border propertie is same in code and config.

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@3875 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
blacksun
2015-03-30 15:58:16 +00:00
parent dc3dcf9e90
commit 2a04e3c64f
3 changed files with 24 additions and 21 deletions

View File

@@ -74,11 +74,8 @@ Diagram::Diagram(QETProject *project) :
connect(&border_and_titleblock, SIGNAL(needTitleBlockTemplate(const QString &)), this, SLOT(setTitleBlockTemplate(const QString &)));
connect(&border_and_titleblock, SIGNAL(diagramTitleChanged(const QString &)), this, SLOT(titleChanged(const QString &)));
connect(&border_and_titleblock, &BorderTitleBlock::borderChanged, [this]() {
QRectF old_rect = this->sceneRect();
this->setSceneRect(border_and_titleblock.borderAndTitleBlockRect().united(this->itemsBoundingRect()));
this->update(old_rect.united(this->sceneRect()));
});
connect(&border_and_titleblock, SIGNAL(borderChanged(QRectF,QRectF)), this, SLOT(adjustSceneRect()));
adjustSceneRect();
}
/**
@@ -805,7 +802,7 @@ bool Diagram::fromXml(QDomElement &document, QPointF position, bool consider_inf
content_ptr -> images = added_images.toSet();
content_ptr -> shapes = added_shapes.toSet();
}
adjustSceneRect();
return(true);
}
@@ -1186,6 +1183,17 @@ bool Diagram::usesTitleBlockTemplate(const QString &name) {
return(name == border_and_titleblock.titleBlockTemplateName());
}
/**
* @brief Diagram::adjustSceneRect
* Recalcul and adjust the size of the scene
*/
void Diagram::adjustSceneRect()
{
QRectF old_rect = sceneRect();
setSceneRect(border_and_titleblock.borderAndTitleBlockRect().united(itemsBoundingRect()));
update(old_rect.united(sceneRect()));
}
/**
Cette methode permet d'appliquer de nouvelles options de rendu tout en
accedant aux proprietes de rendu en cours.