0
0
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:
Arin Alexander
2019-01-16 03:58:54 +03:00
parent 10015ed783
commit 83fd13589e
4 changed files with 134 additions and 8 deletions

View File

@@ -61,6 +61,24 @@ private:
struct PagesRange{
int firstPage;
int lastPage;
bool isTOC;
};
class PagesRanges{
public:
PagesRanges(): m_TOCRangeIndex(-1) {}
int findLastPageNumber(int index);
int findPageNumber(int index);
void startNewRange(bool isTOC = false);
void addTOCMarker(bool addNewRange);
void addPage();
void addTOCPage();
void clear();
private:
void shiftRangesNextToTOC();
private:
QVector<PagesRange> m_ranges;
int m_TOCRangeIndex;
};
class ReportRender: public QObject
@@ -84,6 +102,7 @@ public:
ReportPages renderPageToPages(PageItemDesignIntf *patternPage);
ReportPages renderTOC(PageItemDesignIntf *patternPage, bool first, bool resetPages);
void secondRenderPass(ReportPages renderedPages);
void createTOCMarker(bool startNewRange);
signals:
void pageRendered(int renderedPageCount);
public slots:
@@ -191,6 +210,7 @@ private:
QVector<qreal> m_currentStartDataPos;
int m_currentColumn;
QList<PagesRange> m_ranges;
PagesRanges m_pagesRanges;
QVector<BandDesignIntf*> m_columnedBandItems;
unsigned long long m_currentNameIndex;
bool m_newPageStarted;