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 {
if (scene()){
PageItemDesignIntf* page = dynamic_cast<PageDesignIntf*>(scene())->pageItem();
QPointF parentPos = page->mapFromItem(parentItem(),x(),y());
setParentItem(page);
setParent(page);
setPos(parentPos);
emit itemLocationChanged(this, page);
if (page){
QPointF parentPos = page->mapFromItem(parentItem(),x(),y());
setParentItem(page);
setParent(page);
setPos(parentPos);
emit itemLocationChanged(this, page);
}
}
}
notify("locationType",oldValue,location);

View File

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