From c7045ec1d6375c4ee82d8796829c7ab6b7e4f2a1 Mon Sep 17 00:00:00 2001 From: Arin Alexander Date: Fri, 1 Mar 2019 19:41:27 +0300 Subject: [PATCH] Edit mode changed --- limereport/lrbanddesignintf.cpp | 3 ++- limereport/lrbanddesignintf.h | 1 + limereport/lrpagedesignintf.cpp | 22 ++++++++++++++-------- limereport/lrpreviewreportwindow.cpp | 3 +-- 4 files changed, 18 insertions(+), 11 deletions(-) diff --git a/limereport/lrbanddesignintf.cpp b/limereport/lrbanddesignintf.cpp index 9e3323a..37f14d4 100644 --- a/limereport/lrbanddesignintf.cpp +++ b/limereport/lrbanddesignintf.cpp @@ -105,6 +105,7 @@ void BandMarker::mousePressEvent(QGraphicsSceneMouseEvent *event) if (!(event->modifiers() & Qt::ControlModifier)) m_band->scene()->clearSelection(); m_band->setSelected(true); + m_oldBandPos = m_band->pos(); update(0,0,boundingRect().width(),boundingRect().width()); } } @@ -136,7 +137,7 @@ void BandMarker::mouseMoveEvent(QGraphicsSceneMouseEvent* event) void BandMarker::mouseReleaseEvent(QGraphicsSceneMouseEvent* event) { - m_band->posChanged(m_band, m_band->pos(), m_band->pos()); + m_band->posChanged(m_band, m_band->pos(), m_oldBandPos); } BandDesignIntf::BandDesignIntf(BandsType bandType, const QString &xmlTypeName, QObject* owner, QGraphicsItem *parent) : diff --git a/limereport/lrbanddesignintf.h b/limereport/lrbanddesignintf.h index 33bca63..8faf9c8 100644 --- a/limereport/lrbanddesignintf.h +++ b/limereport/lrbanddesignintf.h @@ -72,6 +72,7 @@ private: QRectF m_rect; QColor m_color; BandDesignIntf* m_band; + QPointF m_oldBandPos; }; class BandNameLabel : public QGraphicsItem{ diff --git a/limereport/lrpagedesignintf.cpp b/limereport/lrpagedesignintf.cpp index 08ac13b..260584d 100644 --- a/limereport/lrpagedesignintf.cpp +++ b/limereport/lrpagedesignintf.cpp @@ -256,7 +256,7 @@ void PageDesignIntf::startEditMode() PageItemDesignIntf *PageDesignIntf::pageItem() { - return m_pageItem.data(); + return m_currentPage ? m_currentPage : m_pageItem.data(); } void PageDesignIntf::setPageItem(PageItemDesignIntf::Ptr pageItem) @@ -1079,7 +1079,11 @@ PageItemDesignIntf* PageDesignIntf::getCurrentPage() const void PageDesignIntf::setCurrentPage(PageItemDesignIntf* currentPage) { if (m_currentPage != currentPage ){ + if (m_currentPage) m_currentPage->setItemMode(PreviewMode); m_currentPage = currentPage; + if (m_itemMode == DesignMode){ + m_currentPage->setItemMode(DesignMode); + } } } @@ -1766,13 +1770,14 @@ void PageDesignIntf::removeAllItems() void PageDesignIntf::setItemMode(BaseDesignIntf::ItemMode state) { m_itemMode = state; - foreach(QGraphicsItem * item, items()) { - BaseDesignIntf *reportItem = dynamic_cast(item); +// foreach(QGraphicsItem * item, items()) { +// BaseDesignIntf *reportItem = dynamic_cast(item); - if (reportItem) { - reportItem->setItemMode(itemMode()); - } - } +// if (reportItem) { +// reportItem->setItemMode(itemMode()); +// } +// } + if (m_currentPage) m_currentPage->setItemMode(state); } BaseDesignIntf* PageDesignIntf::reportItemByName(const QString &name) @@ -2507,7 +2512,8 @@ bool BandMoveFromToCommand::doIt() void BandMoveFromToCommand::undoIt() { - if (page()) page()->pageItem()->moveBandFromTo(to, from); + if (page() && page()->pageItem()) + page()->pageItem()->moveBandFromTo(to, from); } } diff --git a/limereport/lrpreviewreportwindow.cpp b/limereport/lrpreviewreportwindow.cpp index df61773..0e6c4cc 100644 --- a/limereport/lrpreviewreportwindow.cpp +++ b/limereport/lrpreviewreportwindow.cpp @@ -261,6 +261,7 @@ void PreviewReportWindow::moveEvent(QMoveEvent* e) void PreviewReportWindow::showEvent(QShowEvent *) { m_fontEditor->setVisible(ui->actionEdit_Mode->isChecked()); + ui->editModeTools->setVisible(false); m_textAlignmentEditor->setVisible(ui->actionEdit_Mode->isChecked()); switch (m_previewScaleType) { case FitWidth: @@ -458,5 +459,3 @@ void PreviewReportWindow::on_actionShow_Toolbar_triggered() }// namespace LimeReport - -