1 /* 2 Copyright 2006-2019 The QElectroTech Team 3 This file is part of QElectroTech. 4 5 QElectroTech is free software: you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published by 7 the Free Software Foundation, either version 2 of the License, or 8 (at your option) any later version. 9 10 QElectroTech is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with QElectroTech. If not, see <http://www.gnu.org/licenses/>. 17 */ 18 #ifndef TITLEBLOCK_TEMPLATE_RENDERER_H 19 #define TITLEBLOCK_TEMPLATE_RENDERER_H 20 #include <QPicture> 21 #include "diagramcontext.h" 22 23 class TitleBlockTemplate; 24 25 class TitleBlockTemplateRenderer : public QObject 26 { 27 Q_OBJECT 28 29 public: 30 TitleBlockTemplateRenderer(QObject * = nullptr); 31 ~TitleBlockTemplateRenderer() override; 32 33 const TitleBlockTemplate *titleBlockTemplate() const; 34 void setTitleBlockTemplate(const TitleBlockTemplate *); 35 36 void setContext(const DiagramContext &context); 37 DiagramContext context()const; 38 39 int height() const; 40 void render(QPainter *, int); 41 void renderDxf(QRectF &, int, QString &, int); 42 void invalidateRenderedTemplate(); 43 void setUseCache(bool); 44 bool useCache() const; 45 46 private: 47 void renderToQPicture(int); 48 49 private: 50 const TitleBlockTemplate *m_titleblock_template; 51 bool m_use_cache; 52 QPicture m_rendered_template; 53 DiagramContext m_context; 54 int m_last_known_titleblock_width; 55 }; 56 #endif 57