diff --git a/src/renderer/KReportAsyncItemManager_p.h b/src/renderer/KReportAsyncItemManager_p.h --- a/src/renderer/KReportAsyncItemManager_p.h +++ b/src/renderer/KReportAsyncItemManager_p.h @@ -25,9 +25,10 @@ #include #include +#include namespace KReportPrivate { - + class RenderData; class AsyncItemManager : public QObject @@ -51,6 +52,8 @@ private: QQueue m_renderList; QList m_itemList; + ORODocument *m_curDoc; + OROPage *m_curPage; }; } diff --git a/src/renderer/KReportAsyncItemManager_p.cpp b/src/renderer/KReportAsyncItemManager_p.cpp --- a/src/renderer/KReportAsyncItemManager_p.cpp +++ b/src/renderer/KReportAsyncItemManager_p.cpp @@ -24,7 +24,7 @@ #include namespace KReportPrivate { - + class RenderData { public: KReportAsyncItemBase* item; @@ -53,6 +53,7 @@ rdata->section = section; rdata->offset = offset; rdata->data = data; + #ifdef KREPORT_SCRIPTING rdata->script = script; #else @@ -70,9 +71,12 @@ void AsyncItemManager::itemFinished() { + m_curDoc->updated(m_curPage->pageNumber()); //kreportDebug(); if (m_renderList.count() > 0) { RenderData *rdata = m_renderList.dequeue(); + m_curPage = rdata->page; + m_curDoc = m_curPage->document(); rdata->item->renderSimpleData(rdata->page, rdata->section, rdata->offset, rdata->data, rdata->script); } else { emit(finished()); @@ -84,6 +88,8 @@ //kreportDebug(); if (m_renderList.count() > 0) { RenderData *rdata = m_renderList.dequeue(); + m_curPage = rdata->page; + m_curDoc = m_curPage->document(); rdata->item->renderSimpleData(rdata->page, rdata->section, rdata->offset, rdata->data, rdata->script); } else { emit(finished());