forked from qt-creator/qt-creator
ModelEditor: Fix scene boundary on export
Change-Id: I93d783b2db7e65f5d7cbab2c7b2367587be320d5 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -36,6 +36,7 @@
|
|||||||
|
|
||||||
#include "qmt/diagram/dobject.h"
|
#include "qmt/diagram/dobject.h"
|
||||||
#include "qmt/diagram/drelation.h"
|
#include "qmt/diagram/drelation.h"
|
||||||
|
#include "qmt/diagram/dswimlane.h"
|
||||||
#include "qmt/diagram_controller/diagramcontroller.h"
|
#include "qmt/diagram_controller/diagramcontroller.h"
|
||||||
#include "qmt/diagram_controller/dselection.h"
|
#include "qmt/diagram_controller/dselection.h"
|
||||||
#include "qmt/diagram_scene/items/objectitem.h"
|
#include "qmt/diagram_scene/items/objectitem.h"
|
||||||
@@ -956,14 +957,26 @@ void DiagramSceneModel::saveSelectionStatusBeforeExport(bool exportSelectedEleme
|
|||||||
m_graphicsScene->clearSelection();
|
m_graphicsScene->clearSelection();
|
||||||
removeExtraSceneItems();
|
removeExtraSceneItems();
|
||||||
|
|
||||||
if (!exportSelectedElements) {
|
foreach (QGraphicsItem *item, m_graphicsItems) {
|
||||||
status->m_sceneBoundingRect = m_graphicsScene->itemsBoundingRect();
|
if (!exportSelectedElements
|
||||||
} else {
|
|| status->m_selectedItems.contains(item)
|
||||||
foreach (QGraphicsItem *item, m_graphicsItems) {
|
|| status->m_secondarySelectedItems.contains(item)) {
|
||||||
if (status->m_selectedItems.contains(item) || status->m_secondarySelectedItems.contains(item))
|
// TODO introduce interface for calculating export boundary
|
||||||
|
if (SwimlaneItem *swimlane = dynamic_cast<SwimlaneItem *>(item)) {
|
||||||
|
QRectF boundary = item->mapRectToScene(swimlane->boundingRect());
|
||||||
|
if (swimlane->swimlane()->isHorizontal()) {
|
||||||
|
boundary.setLeft(status->m_sceneBoundingRect.left());
|
||||||
|
boundary.setRight(status->m_sceneBoundingRect.right());
|
||||||
|
} else {
|
||||||
|
boundary.setTop(status->m_sceneBoundingRect.top());
|
||||||
|
boundary.setBottom(status->m_sceneBoundingRect.bottom());
|
||||||
|
}
|
||||||
|
status->m_sceneBoundingRect |= boundary;
|
||||||
|
} else {
|
||||||
status->m_sceneBoundingRect |= item->mapRectToScene(item->boundingRect());
|
status->m_sceneBoundingRect |= item->mapRectToScene(item->boundingRect());
|
||||||
else
|
}
|
||||||
item->hide();
|
} else {
|
||||||
|
item->hide();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user