mirror of
https://github.com/fralx/LimeReport.git
synced 2025-09-26 17:59:08 +03:00
Added the ability to add text elements in preview (in edit mode)
This commit is contained in:
@@ -91,7 +91,8 @@ PageDesignIntf::PageDesignIntf(QObject *parent):
|
||||
m_movedItem(0),
|
||||
m_joinItem(0),
|
||||
m_magneticMovement(false),
|
||||
m_reportSettings(0)
|
||||
m_reportSettings(0),
|
||||
m_currentPage(0)
|
||||
{
|
||||
m_reportEditor = dynamic_cast<ReportEnginePrivate *>(parent);
|
||||
updatePageRect();
|
||||
@@ -240,7 +241,9 @@ void PageDesignIntf::startInsertMode(const QString &ItemType)
|
||||
m_insertItemType = ItemType;
|
||||
m_itemInsertRect = this->addRect(0, 0, 200, 50);
|
||||
m_itemInsertRect->setVisible(false);
|
||||
m_itemInsertRect->setParentItem(pageItem());
|
||||
PageItemDesignIntf* page = pageItem() ? pageItem() : getCurrentPage();
|
||||
if (page)
|
||||
m_itemInsertRect->setParentItem(page);
|
||||
}
|
||||
|
||||
void PageDesignIntf::startEditMode()
|
||||
@@ -258,6 +261,7 @@ PageItemDesignIntf *PageDesignIntf::pageItem()
|
||||
|
||||
void PageDesignIntf::setPageItem(PageItemDesignIntf::Ptr pageItem)
|
||||
{
|
||||
if (pageItem.isNull()) return;
|
||||
if (!m_pageItem.isNull()) {
|
||||
removeItem(m_pageItem.data());
|
||||
m_pageItem->setParent(0);
|
||||
@@ -334,13 +338,15 @@ void PageDesignIntf::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
|
||||
m_selectionRect->setRect(selectionRect);
|
||||
}
|
||||
|
||||
if ((m_insertMode) && (pageItem()->rect().contains(pageItem()->mapFromScene(event->scenePos())))) {
|
||||
PageItemDesignIntf* page = pageItem() ? pageItem() : getCurrentPage();
|
||||
if ((m_insertMode) && (page && page->rect().contains(page->mapFromScene(event->scenePos())))) {
|
||||
if (!m_itemInsertRect->isVisible()) m_itemInsertRect->setVisible(true);
|
||||
qreal posY = div(pageItem()->mapFromScene(event->scenePos()).y(), verticalGridStep()).quot * verticalGridStep();
|
||||
qreal posX = div(pageItem()->mapFromScene(event->scenePos()).x(), verticalGridStep()).quot * horizontalGridStep();
|
||||
qreal posY = div(page->mapFromScene(event->scenePos()).y(), verticalGridStep()).quot * verticalGridStep();
|
||||
qreal posX = div(page->mapFromScene(event->scenePos()).x(), verticalGridStep()).quot * horizontalGridStep();
|
||||
m_itemInsertRect->setPos(posX,posY);
|
||||
} else {
|
||||
if (m_insertMode) m_itemInsertRect->setVisible(false);
|
||||
}
|
||||
else { if (m_insertMode) m_itemInsertRect->setVisible(false); }
|
||||
|
||||
QGraphicsScene::mouseMoveEvent(event);
|
||||
}
|
||||
@@ -481,10 +487,6 @@ BaseDesignIntf *PageDesignIntf::addReportItem(const QString &itemType, QPointF p
|
||||
BandDesignIntf *band = bandAt(pos);
|
||||
if (band) {
|
||||
BaseDesignIntf *reportItem = addReportItem(itemType, band, band);
|
||||
// QPointF insertPos = band->mapFromScene(pos);
|
||||
// insertPos = QPointF(div(insertPos.x(), horizontalGridStep()).quot * horizontalGridStep(),
|
||||
// div(insertPos.y(), verticalGridStep()).quot * verticalGridStep());
|
||||
|
||||
reportItem->setPos(placePosOnGrid(band->mapFromScene(pos)));
|
||||
reportItem->setSize(placeSizeOnGrid(size));
|
||||
return reportItem;
|
||||
@@ -1057,6 +1059,16 @@ void PageDesignIntf::changeSelectedGroupProperty(const QString &name, const QVar
|
||||
}
|
||||
}
|
||||
|
||||
PageItemDesignIntf* PageDesignIntf::getCurrentPage() const
|
||||
{
|
||||
return m_currentPage;
|
||||
}
|
||||
|
||||
void PageDesignIntf::setCurrentPage(PageItemDesignIntf* currentPage)
|
||||
{
|
||||
m_currentPage = currentPage;
|
||||
}
|
||||
|
||||
ReportSettings *PageDesignIntf::getReportSettings() const
|
||||
{
|
||||
return m_reportSettings;
|
||||
|
Reference in New Issue
Block a user