diff --git a/common.pri b/common.pri index cc2fc8e..8a9b289 100644 --- a/common.pri +++ b/common.pri @@ -70,7 +70,7 @@ RCC_DIR = $${ARCH_DIR}/$${BUILD_TYPE}/rcc LIMEREPORT_VERSION_MAJOR = 1 LIMEREPORT_VERSION_MINOR = 4 -LIMEREPORT_VERSION_RELEASE = 96 +LIMEREPORT_VERSION_RELEASE = 97 LIMEREPORT_VERSION = '\\"$${LIMEREPORT_VERSION_MAJOR}.$${LIMEREPORT_VERSION_MINOR}.$${LIMEREPORT_VERSION_RELEASE}\\"' DEFINES += LIMEREPORT_VERSION_STR=\"$${LIMEREPORT_VERSION}\" diff --git a/limereport/lrbanddesignintf.cpp b/limereport/lrbanddesignintf.cpp index 00416b8..e767f26 100644 --- a/limereport/lrbanddesignintf.cpp +++ b/limereport/lrbanddesignintf.cpp @@ -128,7 +128,7 @@ BandDesignIntf::BandDesignIntf(BandsType bandType, const QString &xmlTypeName, Q m_startFromNewPage(false), m_printAlways(false), m_repeatOnEachRow(false), - m_bottomSpace() + m_bottomSpace(0) { setPossibleResizeDirectionFlags(ResizeBottom); setPossibleMoveFlags(TopBotom); @@ -549,7 +549,6 @@ BaseDesignIntf* BandDesignIntf::cloneUpperPart(int height, QObject *owner, QGrap { int maxBottom = 0; BandDesignIntf* upperPart = dynamic_cast(createSameTypeItem(owner,parent)); - upperPart->m_bottomSpace = this->bottomSpace(); BaseDesignIntf* upperItem = 0; upperPart->initFromItem(this); @@ -596,7 +595,6 @@ bool itemLessThen(QGraphicsItem* i1, QGraphicsItem* i2){ BaseDesignIntf *BandDesignIntf::cloneBottomPart(int height, QObject *owner, QGraphicsItem *parent) { BandDesignIntf* bottomPart = dynamic_cast(createSameTypeItem(owner,parent)); - bottomPart->m_bottomSpace = this->bottomSpace(); bottomPart->initFromItem(this); QList bandItems; @@ -794,7 +792,7 @@ void BandDesignIntf::setAlternateBackgroundColor(const QColor &alternateBackgrou qreal BandDesignIntf::bottomSpace() const { - return m_bottomSpace.isValid() ? m_bottomSpace.value() : height()-findMaxBottom(); + return height()-findMaxBottom(); } void BandDesignIntf::slotPropertyObjectNameChanged(const QString &, const QString& newName) @@ -804,6 +802,16 @@ void BandDesignIntf::slotPropertyObjectNameChanged(const QString &, const QStrin m_bandNameLabel->updateLabel(newName); } +int BandDesignIntf::bootomSpace() const +{ + return m_bottomSpace; +} + +void BandDesignIntf::setBootomSpace(int bootomSpace) +{ + m_bottomSpace = bootomSpace; +} + bool BandDesignIntf::repeatOnEachRow() const { return m_repeatOnEachRow; @@ -974,6 +982,8 @@ void BandDesignIntf::updateItemSize(DataSourceManager* dataManager, RenderPass p if (borderLines()!=0){ spaceBorder += borderLineSize(); } + + spaceBorder += m_bottomSpace; restoreLinks(); snapshotItemsLayout(); arrangeSubItems(pass, dataManager); diff --git a/limereport/lrbanddesignintf.h b/limereport/lrbanddesignintf.h index 50dd643..b8f47c5 100644 --- a/limereport/lrbanddesignintf.h +++ b/limereport/lrbanddesignintf.h @@ -240,8 +240,10 @@ public: qreal bottomSpace() const; void setBackgroundModeProperty(BGMode value); void setBackgroundOpacity(int value); + int bootomSpace() const; + void setBootomSpace(int bootomSpace); signals: - void bandRendered(BandDesignIntf* band); + void bandRendered(BandDesignIntf* band); protected: void trimToMaxHeight(int maxHeight); void setBandTypeText(const QString& value); @@ -295,7 +297,7 @@ private: bool m_repeatOnEachRow; QMap m_slicedItems; QColor m_alternateBackgroundColor; - InitializedValue m_bottomSpace; + int m_bottomSpace; }; class DataBandDesignIntf : public BandDesignIntf{ diff --git a/limereport/lrpageitemdesignintf.cpp b/limereport/lrpageitemdesignintf.cpp index 961127a..9a7d350 100644 --- a/limereport/lrpageitemdesignintf.cpp +++ b/limereport/lrpageitemdesignintf.cpp @@ -396,8 +396,16 @@ void PageItemDesignIntf::relocateBands() m_bands[i+1]->columnsCount()); } if (m_bands[i+1]->columnIndex()==0){ - m_bands[i+1]->setPos(pageRect().x(),posByColumn[0]); - posByColumn[0] += m_bands[i+1]->height()+bandSpace; + if ( ((m_bands[i]->borderLines() & BandDesignIntf::BottomLine) && + (m_bands[i+1]->borderLines() & BandDesignIntf::TopLine)) || + (!(m_bands[i]->borderLines() & BandDesignIntf::BottomLine) && + !(m_bands[i+1]->borderLines() & BandDesignIntf::TopLine)) ){ + m_bands[i+1]->setPos(pageRect().x(),posByColumn[0]); + posByColumn[0] += m_bands[i+1]->height()+bandSpace; + } else { + m_bands[i+1]->setPos(pageRect().x(),posByColumn[0]+2); + posByColumn[0] += m_bands[i+1]->height()+bandSpace+2; + } } else { m_bands[i+1]->setPos(m_bands[i+1]->pos().x(),posByColumn[m_bands[i+1]->columnIndex()]); posByColumn[m_bands[i+1]->columnIndex()] += m_bands[i+1]->height()+bandSpace; diff --git a/limereport/lrpreviewreportwindow.cpp b/limereport/lrpreviewreportwindow.cpp index 19520af..d58678e 100644 --- a/limereport/lrpreviewreportwindow.cpp +++ b/limereport/lrpreviewreportwindow.cpp @@ -45,7 +45,7 @@ namespace LimeReport{ PreviewReportWindow::PreviewReportWindow(ReportEnginePrivate *report,QWidget *parent, QSettings *settings, Qt::WindowFlags flags) : QMainWindow(parent,flags), - ui(new Ui::PreviewReportWindow), m_settings(settings), m_ownedSettings(false) + ui(new Ui::PreviewReportWindow), m_settings(settings), m_ownedSettings(false), m_scalePercentChanging(false) { ui->setupUi(this); setWindowTitle("Lime Report Preview"); @@ -402,12 +402,20 @@ void PreviewReportWindow::on_actionOne_to_one_triggered() void PreviewReportWindow::scaleComboboxChanged(QString text) { + if (m_scalePercentChanging) return; + m_scalePercentChanging = true; m_previewReportWidget->setScalePercent(text.remove(text.count()-1,1).toInt()); + m_scalePercentChanging = false; } void PreviewReportWindow::slotScalePercentChanged(int percent) { + if (m_scalePercentChanging) return; + m_scalePercentChanging = true; + if (m_scalePercent->findText(QString("%1%").arg(percent)) == -1) + m_scalePercent->setCurrentIndex(-1); m_scalePercent->setEditText(QString("%1%").arg(percent)); + m_scalePercentChanging = false; } void PreviewReportWindow::on_actionShowMessages_toggled(bool value) diff --git a/limereport/lrpreviewreportwindow.h b/limereport/lrpreviewreportwindow.h index 63761c3..bc6da16 100644 --- a/limereport/lrpreviewreportwindow.h +++ b/limereport/lrpreviewreportwindow.h @@ -120,6 +120,7 @@ private: QComboBox* m_scalePercent; ScaleType m_previewScaleType; int m_previewScalePercent; + bool m_scalePercentChanging; }; } //namespace LimeReport diff --git a/limereport/lrreportengine.cpp b/limereport/lrreportengine.cpp index 3191b86..adcfa73 100644 --- a/limereport/lrreportengine.cpp +++ b/limereport/lrreportengine.cpp @@ -63,7 +63,7 @@ ReportEnginePrivate::ReportEnginePrivate(QObject *parent) : m_showProgressDialog(true), m_reportName(""), m_activePreview(0), m_previewWindowIcon(":/report/images/logo32"), m_previewWindowTitle(tr("Preview")), m_reportRendering(false), m_resultIsEditable(true), m_passPhrase("HjccbzHjlbyfCkjy"), - m_fileWatcher( new QFileSystemWatcher( this ) ), + m_fileWatcher( new QFileSystemWatcher( this ) ), m_previewLayoutDirection(Qt::LayoutDirectionAuto), m_previewScaleType(FitWidth), m_previewScalePercent(0) { #ifdef HAVE_STATIC_BUILD diff --git a/limereport/lrreportrender.cpp b/limereport/lrreportrender.cpp index 7084498..f8e20e8 100644 --- a/limereport/lrreportrender.cpp +++ b/limereport/lrreportrender.cpp @@ -428,6 +428,8 @@ BandDesignIntf* ReportRender::renderBand(BandDesignIntf *patternBand, BandDesign bandClone=renderData(patternBand); } + if (isLast) bandClone->setBootomSpace(1); + if (mode == ForcedStartPage){ savePage(); startNewPage();