mirror of
https://github.com/fralx/LimeReport.git
synced 2025-11-25 00:18:06 +03:00
PagesRanges object has been added
This commit is contained in:
@@ -82,7 +82,7 @@ ReportEnginePrivate::ReportEnginePrivate(QObject *parent) :
|
||||
m_reportRendering(false), m_resultIsEditable(true), m_passPhrase("HjccbzHjlbyfCkjy"),
|
||||
m_fileWatcher( new QFileSystemWatcher( this ) ), m_reportLanguage(QLocale::AnyLanguage),
|
||||
m_previewLayoutDirection(Qt::LayoutDirectionAuto), m_designerFactory(0),
|
||||
m_previewScaleType(FitWidth), m_previewScalePercent(0)
|
||||
m_previewScaleType(FitWidth), m_previewScalePercent(0), m_startTOCPage(0)
|
||||
{
|
||||
#ifdef HAVE_STATIC_BUILD
|
||||
initResources();
|
||||
@@ -1140,6 +1140,9 @@ void ReportEnginePrivate::paintByExternalPainter(const QString& objectName, QPai
|
||||
|
||||
ReportPages ReportEnginePrivate::renderToPages()
|
||||
{
|
||||
int startTOCPage = -1;
|
||||
int pageAfterTOCIndex = -1;
|
||||
|
||||
if (m_reportRendering) return ReportPages();
|
||||
initReport();
|
||||
m_reportRender = ReportRender::Ptr(new ReportRender);
|
||||
@@ -1176,10 +1179,15 @@ ReportPages ReportEnginePrivate::renderToPages()
|
||||
activateLanguage(m_reportLanguage);
|
||||
emit renderStarted();
|
||||
|
||||
foreach(PageItemDesignIntf* page , m_renderingPages){
|
||||
for(int i = 0; i < m_renderingPages.count(); ++i){
|
||||
PageItemDesignIntf* page = m_renderingPages.at(i);
|
||||
if (!page->isTOC() && page->isPrintable()){
|
||||
page->setReportSettings(&m_reportSettings);
|
||||
result.append(m_reportRender->renderPageToPages(page));
|
||||
} else {
|
||||
startTOCPage = result.count();
|
||||
pageAfterTOCIndex = i+1;
|
||||
m_reportRender->createTOCMarker(page->resetPageNumber());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1187,16 +1195,17 @@ ReportPages ReportEnginePrivate::renderToPages()
|
||||
PageItemDesignIntf* page = m_renderingPages.at(i);
|
||||
if (page->isTOC()){
|
||||
page->setReportSettings(&m_reportSettings);
|
||||
if (i==0){
|
||||
if (i < m_renderingPages.count()){
|
||||
PageItemDesignIntf* secondPage = 0;
|
||||
if (m_pages.count()>1) secondPage = m_renderingPages.at(1);
|
||||
if ( m_renderingPages.count() > (pageAfterTOCIndex))
|
||||
secondPage = m_renderingPages.at(pageAfterTOCIndex);
|
||||
ReportPages pages = m_reportRender->renderTOC(
|
||||
page,
|
||||
true,
|
||||
secondPage && secondPage->resetPageNumber()
|
||||
);
|
||||
for (int j=0; j<pages.count(); ++j){
|
||||
result.insert(j,pages.at(j));
|
||||
result.insert(startTOCPage+j,pages.at(j));
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user