TextItem placement on a page has been fixed

This commit is contained in:
Arin Alexander 2019-02-21 22:44:43 +03:00
parent b74a72531c
commit 78cac1126c
2 changed files with 20 additions and 13 deletions

View File

@ -66,11 +66,13 @@ void ItemDesignIntf::setItemLocation(LocationType location)
} else { } else {
if (scene()){ if (scene()){
PageItemDesignIntf* page = dynamic_cast<PageDesignIntf*>(scene())->pageItem(); PageItemDesignIntf* page = dynamic_cast<PageDesignIntf*>(scene())->pageItem();
QPointF parentPos = page->mapFromItem(parentItem(),x(),y()); if (page){
setParentItem(page); QPointF parentPos = page->mapFromItem(parentItem(),x(),y());
setParent(page); setParentItem(page);
setPos(parentPos); setParent(page);
emit itemLocationChanged(this, page); setPos(parentPos);
emit itemLocationChanged(this, page);
}
} }
} }
notify("locationType",oldValue,location); notify("locationType",oldValue,location);

View File

@ -491,13 +491,16 @@ BaseDesignIntf *PageDesignIntf::addReportItem(const QString &itemType, QPointF p
reportItem->setSize(placeSizeOnGrid(size)); reportItem->setSize(placeSizeOnGrid(size));
return reportItem; return reportItem;
} else { } else {
BaseDesignIntf *reportItem = addReportItem(itemType, pageItem(), pageItem()); PageItemDesignIntf* page = pageItem() ? pageItem() : m_currentPage;
reportItem->setPos(placePosOnGrid(pageItem()->mapFromScene(pos))); if (page){
reportItem->setSize(placeSizeOnGrid(size)); BaseDesignIntf *reportItem = addReportItem(itemType, page, page);
ItemDesignIntf* ii = dynamic_cast<ItemDesignIntf*>(reportItem); reportItem->setPos(placePosOnGrid(page->mapFromScene(pos)));
if (ii) reportItem->setSize(placeSizeOnGrid(size));
ii->setItemLocation(ItemDesignIntf::Page); ItemDesignIntf* ii = dynamic_cast<ItemDesignIntf*>(reportItem);
return reportItem; if (ii)
ii->setItemLocation(ItemDesignIntf::Page);
return reportItem;
}
} }
return 0; return 0;
@ -1066,7 +1069,9 @@ PageItemDesignIntf* PageDesignIntf::getCurrentPage() const
void PageDesignIntf::setCurrentPage(PageItemDesignIntf* currentPage) void PageDesignIntf::setCurrentPage(PageItemDesignIntf* currentPage)
{ {
m_currentPage = currentPage; if (m_currentPage != currentPage ){
m_currentPage = currentPage;
}
} }
ReportSettings *PageDesignIntf::getReportSettings() const ReportSettings *PageDesignIntf::getReportSettings() const