[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kreport] src/renderer: Notify document when async item is rendered
From: Adam Pigg <null () kde ! org>
Date: 2018-01-19 22:19:47
Message-ID: E1ecf0l-00047J-B1 () code ! kde ! org
[Download RAW message or body]
Git commit df4177c0accf4c76368b830e3b5bf0f97fd77769 by Adam Pigg.
Committed on 19/01/2018 at 21:47.
Pushed by piggz into branch 'master'.
Notify document when async item is rendered
Summary: async items like web and map do not notify the document when an item is \
rendered
Test Plan: Open report with web view and see renders appear as they become available
Reviewers: staniek
Tags: #kreport
Differential Revision: https://phabricator.kde.org/D9933
M +7 -1 src/renderer/KReportAsyncItemManager_p.cpp
M +4 -1 src/renderer/KReportAsyncItemManager_p.h
https://commits.kde.org/kreport/df4177c0accf4c76368b830e3b5bf0f97fd77769
diff --git a/src/renderer/KReportAsyncItemManager_p.cpp \
b/src/renderer/KReportAsyncItemManager_p.cpp index 28b725d..45a4555 100644
--- a/src/renderer/KReportAsyncItemManager_p.cpp
+++ b/src/renderer/KReportAsyncItemManager_p.cpp
@@ -24,7 +24,7 @@
#include <QPointF>
namespace KReportPrivate {
-
+
class RenderData {
public:
KReportAsyncItemBase* item;
@@ -53,6 +53,7 @@ void AsyncItemManager::addItem(KReportAsyncItemBase* item, OROPage* \
page, OROSec rdata->section = section;
rdata->offset = offset;
rdata->data = data;
+
#ifdef KREPORT_SCRIPTING
rdata->script = script;
#else
@@ -70,9 +71,12 @@ void AsyncItemManager::addItem(KReportAsyncItemBase* item, \
OROPage* page, OROSec
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 @@ void AsyncItemManager::startRendering()
//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());
diff --git a/src/renderer/KReportAsyncItemManager_p.h \
b/src/renderer/KReportAsyncItemManager_p.h index 8b5d05d..eea3fa5 100644
--- a/src/renderer/KReportAsyncItemManager_p.h
+++ b/src/renderer/KReportAsyncItemManager_p.h
@@ -25,9 +25,10 @@
#include <QObject>
#include <QQueue>
+#include <KReportRenderObjects.h>
namespace KReportPrivate {
-
+
class RenderData;
class AsyncItemManager : public QObject
@@ -51,6 +52,8 @@ private Q_SLOTS:
private:
QQueue<RenderData*> m_renderList;
QList<KReportAsyncItemBase*> m_itemList;
+ ORODocument *m_curDoc;
+ OROPage *m_curPage;
};
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic