Branch data Line data Source code
1 : : /*************************************************************************** 2 : : qgsabstractlayoutiterator.h 3 : : --------------------------- 4 : : begin : December 2017 5 : : copyright : (C) 2017 by Nyall Dawson 6 : : email : nyall dot dawson at gmail dot com 7 : : ***************************************************************************/ 8 : : /*************************************************************************** 9 : : * * 10 : : * This program is free software; you can redistribute it and/or modify * 11 : : * it under the terms of the GNU General Public License as published by * 12 : : * the Free Software Foundation; either version 2 of the License, or * 13 : : * (at your option) any later version. * 14 : : * * 15 : : ***************************************************************************/ 16 : : #ifndef QGSABSTRACTLAYOUTITERATOR_H 17 : : #define QGSABSTRACTLAYOUTITERATOR_H 18 : : 19 : : #include "qgis_core.h" 20 : : #include <QString> 21 : : 22 : : class QgsLayout; 23 : : 24 : : /** 25 : : * \ingroup core 26 : : * \class QgsAbstractLayoutIterator 27 : : * \brief An abstract base class for QgsLayout based classes which can be exported by QgsLayoutExporter. 28 : : * \since QGIS 3.0 29 : : */ 30 : 0 : class CORE_EXPORT QgsAbstractLayoutIterator 31 : : { 32 : : 33 : : public: 34 : : 35 : 0 : virtual ~QgsAbstractLayoutIterator() = default; 36 : : 37 : : /** 38 : : * Returns the layout associated with the iterator. 39 : : */ 40 : : virtual QgsLayout *layout() = 0; 41 : : 42 : : /** 43 : : * Called when rendering begins, before iteration commences. Returns TRUE if successful, FALSE if no iteration 44 : : * is available or required. 45 : : * \see endRender() 46 : : */ 47 : : virtual bool beginRender() = 0; 48 : : 49 : : /** 50 : : * Ends the render, performing any required cleanup tasks. 51 : : */ 52 : : virtual bool endRender() = 0; 53 : : 54 : : /** 55 : : * Returns the number of features to iterate over. 56 : : */ 57 : : virtual int count() const = 0; 58 : : 59 : : /** 60 : : * Iterates to next feature, returning FALSE if no more features exist to iterate over. 61 : : */ 62 : : virtual bool next() = 0; 63 : : 64 : : /** 65 : : * Returns the file path for the current feature, based on a 66 : : * specified base file path and extension. 67 : : */ 68 : : virtual QString filePath( const QString &baseFilePath, const QString &extension ) = 0; 69 : : 70 : : }; 71 : : 72 : : #endif //QGSABSTRACTLAYOUTITERATOR_H 73 : : 74 : : 75 : :