File indexing completed on 2024-05-05 04:43:21
0001 /* This file is part of the KDE project 0002 Copyright (C) 2011 Adam Pigg <adam@piggz.co.uk> 0003 0004 This library is free software; you can redistribute it and/or 0005 modify it under the terms of the GNU Lesser General Public 0006 License as published by the Free Software Foundation; either 0007 version 2.1 of the License, or (at your option) any later version. 0008 0009 This library is distributed in the hope that it will be useful, 0010 but WITHOUT ANY WARRANTY; without even the implied warranty of 0011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 0012 Lesser General Public License for more details. 0013 0014 You should have received a copy of the GNU Lesser General Public 0015 License along with this library; if not, write to the Free Software 0016 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 0017 */ 0018 0019 0020 #ifndef KREPORTASYNCITEMMANAGER_H 0021 #define KREPORTASYNCITEMMANAGER_H 0022 0023 #include "config-kreport.h" 0024 #include "KReportAsyncItemBase.h" 0025 0026 #include <QObject> 0027 #include <QQueue> 0028 #include <KReportRenderObjects.h> 0029 0030 namespace KReportPrivate { 0031 0032 class RenderData; 0033 0034 class AsyncItemManager : public QObject 0035 { 0036 Q_OBJECT 0037 0038 public: 0039 explicit AsyncItemManager(QObject *parent); 0040 ~AsyncItemManager() override; 0041 0042 void addItem(KReportAsyncItemBase *item, OROPage *page, OROSection *section, QPointF offset, QVariant data, KReportScriptHandler *script); 0043 0044 void startRendering(); 0045 0046 Q_SIGNALS: 0047 void finished(); 0048 0049 private Q_SLOTS: 0050 void itemFinished(); 0051 0052 private: 0053 QQueue<RenderData*> m_renderList; 0054 QList<KReportAsyncItemBase*> m_itemList; 0055 OROPage *m_curPage; 0056 }; 0057 0058 } 0059 #endif // KREPORTASYNCITEMMANAGER_H