[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