QElectroTech 0.200.1-dev
Loading...
Searching...
No Matches
bordertitleblock.h
Go to the documentation of this file.
1/*
2 Copyright 2006-2026 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 BORDERTITLEBLOCK_H
19#define BORDERTITLEBLOCK_H
21#include "borderproperties.h"
22#include "diagramcontext.h"
24
25#include <QDate>
26#include <QObject>
27#include <QRectF>
28class QPainter;
29class DiagramPosition;
37class BorderTitleBlock : public QObject
38{
39 Q_OBJECT
40
41 public:
42 BorderTitleBlock(QObject * = nullptr);
43 ~BorderTitleBlock() override;
44
45 private:
47
48 //METHODS
49 public:
50 void draw(QPainter *painter);
51 void drawDxf(QString &, int);
52
53 //METHODS TO GET DIMENSION
54 //COLUMNS
56 int columnsCount() const { return(columns_count_); }
58 qreal columnsWidth() const { return(columns_width_); }
60 qreal columnsTotalWidth() const {
62
63 qreal columnsHeaderHeight() const {
64 return(columns_header_height_); }
65
66 //ROWS
68 int rowsCount() const { return(rows_count_); }
70 qreal rowsHeight() const { return(rows_height_); }
72 qreal rowsTotalHeight() const {
73 return(rows_count_ * rows_height_); }
74
75 qreal rowsHeaderWidth() const { return(rows_header_width_); }
77 Qt::Edge titleBlockEdge() const { return(m_edge); }
78
79 // border - title block = diagram
85 qreal diagramWidth() const
86{
87 return(columnsTotalWidth() + rowsHeaderWidth()); }
88
93 qreal diagramHeight() const
94{
96
97 QRectF titleBlockRect () const;
98
100 private:
101 QRectF titleBlockRectForQPainter () const;
102
103 public:
104 QRectF borderAndTitleBlockRect () const;
105 QRectF columnsRect () const;
106 QRectF rowsRect () const;
107 QRectF outsideBorderRect() const;
108 QRectF insideBorderRect() const;
109
110 // methods to get title block basic data
112 QString author() const { return(btb_author_); }
114 QDate date() const { return(btb_date_); }
116 QString title() const { return(btb_title_); }
118 QString folio() const { return(btb_folio_); }
120 QString finalfolio() const { return(btb_final_folio_); }
122 QString plant() const { return(btb_plant_); }
124 QString locmach() const { return(btb_locmach_); }
126 QString indexrev() const { return(btb_indexrev_); }
128 QString fileName() const { return(btb_filename_); }
130 QString version() const { return(btb_version_); }
134
135 QString autoPageNum() const { return(btb_auto_page_num_); }
137 int folioTotal() const { return(folio_total_);}
138
139 // methods to get display options
142 return(display_titleblock_); }
143
145 bool columnsAreDisplayed() const { return(display_columns_); }
148 bool rowsAreDisplayed() const { return(display_rows_); }
150 bool borderIsDisplayed() const { return(display_border_); }
151
152 // methods to set dimensions
153 void setColumnsCount(int);
154 void setRowsCount(int);
155 void setColumnsWidth(const qreal &);
156 void setRowsHeight(const qreal &);
157 void setColumnsHeaderHeight(const qreal &);
158 void setRowsHeaderWidth(const qreal &);
159 void setDiagramHeight(const qreal &);
160
161 DiagramPosition convertPosition(const QPointF &);
162
163 // methods to set title block basic data
164 void setFolio(const QString &folio);
165 void setFolioData(int, int, const QString& = nullptr,
166 const DiagramContext & = DiagramContext());
167 void setPreviousFolioNum(const QString &previous);
168 void setNextFolioNum(const QString &next);
169
170 void titleBlockToXml(QDomElement &);
171 void titleBlockFromXml(const QDomElement &);
172 void borderToXml(QDomElement &);
173 void borderFromXml(const QDomElement &);
174
178 void importBorder(const BorderProperties &);
179
182 QString titleBlockTemplateName() const;
183
184 public slots:
185 void titleBlockTemplateChanged(const QString &);
187 const QString &,
188 const TitleBlockTemplate * = nullptr);
189
190 // methods to set display options
191 void displayTitleBlock(bool);
192 void displayColumns(bool);
193 void displayRows(bool);
194 void displayBorder(bool);
195
196 private:
197 void updateRectangles();
199 const DiagramContext & = DiagramContext());
200 QString incrementLetters(const QString &);
201
202 signals:
209 void borderChanged(QRectF old_border, QRectF new_border);
219 void titleBlockFolioChanged(const QString &);
234 void needTitleBlockTemplate(const QString &);
235
241
242 // attributes
243 private:
244 // titleblock basic data
245 QString btb_author_;
246 QDate btb_date_;
247 QString btb_title_;
248 QString btb_folio_;
249 QString btb_plant_;
250 QString btb_locmach_;
257 QString btb_version_;
260 Qt::Edge m_edge;
263
264 // border dimensions (rows and columns)
265 // columns: number and dimensions
269
270 // rows: number and dimensions
274
275 // title block dimensions
277
278 // rectangles used for drawing operations
280
281 // display options
287};
288#endif
The BorderProperties class This class is a container for dimensions and display properties of a diagr...
Definition borderproperties.h:29
bool titleBlockIsDisplayed() const
Definition bordertitleblock.h:141
void draw(QPainter *painter)
BorderTitleBlock::draw Draw the border and the titleblock.
Definition bordertitleblock.cpp:512
void borderToXml(QDomElement &)
BorderTitleBlock::borderToXml Exports the border current settings to XML.
Definition bordertitleblock.cpp:232
bool borderIsDisplayed() const
Definition bordertitleblock.h:150
QString fileName() const
Definition bordertitleblock.h:128
QString m_previous_folio_num
titleblock previous folio num
Definition bordertitleblock.h:262
DiagramContext titleblockInformation() const
BorderTitleBlock::titleblockInformation.
Definition bordertitleblock.cpp:106
qreal rowsHeaderWidth() const
Definition bordertitleblock.h:75
void titleBlockTemplateChanged(const QString &)
BorderTitleBlock::titleBlockTemplateChanged This slot may be used to inform this class that the given...
Definition bordertitleblock.cpp:416
const TitleBlockTemplate * titleBlockTemplate()
BorderTitleBlock::titleBlockTemplate.
Definition bordertitleblock.cpp:382
void setRowsHeight(const qreal &)
BorderTitleBlock::setRowsHeight Change the height of the lines. If the indicated height is lower than...
Definition bordertitleblock.cpp:821
QRectF titleBlockRectForQPainter() const
BorderTitleBlock::titleBlockRectForQPainter.
Definition bordertitleblock.cpp:123
void setFolioData(int, int, const QString &=nullptr, const DiagramContext &=DiagramContext())
BorderTitleBlock::setFolioData.
Definition bordertitleblock.cpp:975
void informationChanged()
infoChanged Signal emitted when the informations changed.
void setColumnsWidth(const qreal &)
BorderTitleBlock::setColumnsWidth Change the width of the columns. If the width indicated is less tha...
Definition bordertitleblock.cpp:768
void importBorder(const BorderProperties &)
BorderTitleBlock::importBorder.
Definition bordertitleblock.cpp:366
QRectF outsideBorderRect() const
BorderTitleBlock::outsideBorderRect.
Definition bordertitleblock.cpp:180
QString btb_folio_
titleblock folio
Definition bordertitleblock.h:248
QString plant() const
Definition bordertitleblock.h:122
DiagramContext additionalFields() const
Definition bordertitleblock.h:132
int folio_index_
titleblock index
Definition bordertitleblock.h:254
QString btb_title_
titleblock title
Definition bordertitleblock.h:247
QString locmach() const
Definition bordertitleblock.h:124
void displayColumns(bool)
BorderTitleBlock::displayColumns.
Definition bordertitleblock.cpp:459
void needFolioData()
needFolioData Signal emitted when the title block requires its data to be updated in order to generat...
void titleBlockFolioChanged(const QString &)
titleBlockFolioChanged Signal emitted after Folio has changed
~BorderTitleBlock() override
BorderTitleBlock::~BorderTitleBlock.
Definition bordertitleblock.cpp:80
void displayTitleBlock(bool)
BorderTitleBlock::displayTitleBlock.
Definition bordertitleblock.cpp:448
bool display_titleblock_
Definition bordertitleblock.h:282
Qt::Edge m_edge
titleblock edge
Definition bordertitleblock.h:260
qreal columns_header_height_
columns header height
Definition bordertitleblock.h:268
void setTitleBlockTemplate(const TitleBlockTemplate *)
BorderTitleBlock::setTitleBlockTemplate.
Definition bordertitleblock.cpp:393
DiagramContext additional_fields_
titleblock additional fields
Definition bordertitleblock.h:259
void titleBlockFromXml(const QDomElement &)
BorderTitleBlock::titleBlockFromXml Reads the title block values from XML.
Definition bordertitleblock.cpp:221
void setColumnsHeaderHeight(const qreal &)
BorderTitleBlock::setColumnsHeaderHeight Change the height of the headers containing the column numbe...
Definition bordertitleblock.cpp:784
qreal diagramWidth() const
diagramWidth
Definition bordertitleblock.h:85
void setPreviousFolioNum(const QString &previous)
BorderTitleBlock::setPreviousFolioNum.
Definition bordertitleblock.cpp:1005
bool columnsAreDisplayed() const
Definition bordertitleblock.h:145
void importTitleBlock(const TitleBlockProperties &)
BorderTitleBlock::importTitleBlock.
Definition bordertitleblock.cpp:314
BorderTitleBlock(QObject *=nullptr)
BorderTitleBlock::BorderTitleBlock Simple constructor: build a border by recovering the dimensions in...
Definition bordertitleblock.cpp:51
qreal rows_header_width_
rows header width
Definition bordertitleblock.h:273
qreal columnsTotalWidth() const
Definition bordertitleblock.h:60
qreal rowsTotalHeight() const
Definition bordertitleblock.h:72
void setRowsCount(int)
BorderTitleBlock::setRowsCount Allows you to change the number of lines. If this number of lines is l...
Definition bordertitleblock.cpp:802
int rows_count_
rows count
Definition bordertitleblock.h:271
QString version() const
Definition bordertitleblock.h:130
QString btb_filename_
titleblock filename
Definition bordertitleblock.h:256
void updateDiagramContextForTitleBlock(const DiagramContext &=DiagramContext())
BorderTitleBlock::updateDiagramContextForTitleBlock Update the informations given to the titleblock t...
Definition bordertitleblock.cpp:897
QString btb_version_
Definition bordertitleblock.h:257
QString btb_locmach_
titleblock locmach
Definition bordertitleblock.h:250
QString m_next_folio_num
titleblock next folio num
Definition bordertitleblock.h:261
QString btb_indexrev_
titleblock index rev
Definition bordertitleblock.h:251
qreal diagramHeight() const
diagramHeight
Definition bordertitleblock.h:93
void setFolio(const QString &folio)
BorderTitleBlock::setFolio.
Definition bordertitleblock.cpp:884
void setNextFolioNum(const QString &next)
BorderTitleBlock::setNextFolioNum.
Definition bordertitleblock.cpp:1017
bool display_rows_
Definition bordertitleblock.h:284
QDate btb_date_
titleblock date
Definition bordertitleblock.h:246
void displayBorder(bool)
BorderTitleBlock::displayBorder.
Definition bordertitleblock.cpp:485
QRectF borderAndTitleBlockRect() const
BorderTitleBlock::borderAndTitleBlockRect.
Definition bordertitleblock.cpp:142
qreal rowsHeight() const
Definition bordertitleblock.h:70
QString indexrev() const
Definition bordertitleblock.h:126
QString finalfolio() const
Definition bordertitleblock.h:120
void borderFromXml(const QDomElement &)
BorderTitleBlock::borderFromXml Reads the border settings from XML.
Definition bordertitleblock.cpp:250
void setColumnsCount(int)
BorderTitleBlock::setColumnsCount Allows you to change the number of columns. If this number of colum...
Definition bordertitleblock.cpp:749
QString btb_plant_
titleblock plant
Definition bordertitleblock.h:249
void updateRectangles()
BorderTitleBlock::updateRectangles This method update the diagram rect according to the value of rows...
Definition bordertitleblock.cpp:496
Qt::Edge titleBlockEdge() const
Definition bordertitleblock.h:77
QString btb_auto_page_num_
titleblock auto page num
Definition bordertitleblock.h:253
void setDiagramHeight(const qreal &)
BorderTitleBlock::setDiagramHeight This method tries to get as close as possible to the given height ...
Definition bordertitleblock.cpp:851
qreal titleblock_height_
Definition bordertitleblock.h:276
bool display_border_
Definition bordertitleblock.h:285
QString btb_final_folio_
titleblock final folio
Definition bordertitleblock.h:252
int folio_total_
titleblock total
Definition bordertitleblock.h:255
qreal columnsHeaderHeight() const
Definition bordertitleblock.h:63
void titleBlockToXml(QDomElement &)
BorderTitleBlock::titleBlockToXml Exports the title block current values to XML.
Definition bordertitleblock.cpp:212
bool display_columns_
Definition bordertitleblock.h:283
void needTitleBlockTemplate(const QString &)
needTitleBlockTemplate Signal emitted when this object needs to set a specific title block template....
void borderChanged(QRectF old_border, QRectF new_border)
borderChanged Signal emitted after the border has changed
void setRowsHeaderWidth(const qreal &)
BorderTitleBlock::setRowsHeaderWidth Change the width of the headers containing the line numbers....
Definition bordertitleblock.cpp:837
QRectF insideBorderRect() const
BorderTitleBlock::insideBorderRect.
Definition bordertitleblock.cpp:194
QString author() const
Definition bordertitleblock.h:112
QString autoPageNum() const
Definition bordertitleblock.h:135
void titleBlockTemplateRemoved(const QString &, const TitleBlockTemplate *=nullptr)
BorderTitleBlock::titleBlockTemplateRemoved This slot has to be used to inform this class that the gi...
Definition bordertitleblock.cpp:431
void drawDxf(QString &, int)
BorderTitleBlock::drawDxf.
Definition bordertitleblock.cpp:619
QRectF rowsRect() const
BorderTitleBlock::rowsRect.
Definition bordertitleblock.cpp:166
void displayChanged()
displayChanged Signal emitted after display options have changed
int rowsCount() const
Definition bordertitleblock.h:68
TitleBlockTemplateRenderer * m_titleblock_template_renderer
Definition bordertitleblock.h:286
bool rowsAreDisplayed() const
Definition bordertitleblock.h:148
QString incrementLetters(const QString &)
BorderTitleBlock::incrementLetters increments string with Letters A to Z.
Definition bordertitleblock.cpp:942
void displayRows(bool)
BorderTitleBlock::displayRows.
Definition bordertitleblock.cpp:470
BorderProperties exportBorder()
BorderTitleBlock::exportBorder.
Definition bordertitleblock.cpp:347
QRectF titleBlockRect() const
BorderTitleBlock::titleBlockRect.
Definition bordertitleblock.cpp:88
qreal columns_width_
columns width
Definition bordertitleblock.h:267
QRectF columnsRect() const
BorderTitleBlock::columnsRect.
Definition bordertitleblock.cpp:152
qreal rows_height_
rows height
Definition bordertitleblock.h:272
QString title() const
Definition bordertitleblock.h:116
BorderTitleBlock(const BorderTitleBlock &)
int columnsCount() const
Definition bordertitleblock.h:56
int columns_count_
columns count
Definition bordertitleblock.h:266
qreal columnsWidth() const
Definition bordertitleblock.h:58
QString folio() const
Definition bordertitleblock.h:118
QDate date() const
Definition bordertitleblock.h:114
QRectF diagram_rect_
Definition bordertitleblock.h:279
TitleBlockProperties exportTitleBlock()
BorderTitleBlock::exportTitleBlock.
Definition bordertitleblock.cpp:288
DiagramPosition convertPosition(const QPointF &)
BorderTitleBlock::convertPosition Convert a Point in cartesian coordinate (x : 12....
Definition bordertitleblock.cpp:864
QString titleBlockTemplateName() const
BorderTitleBlock::titleBlockTemplateName.
Definition bordertitleblock.cpp:403
int folioTotal() const
Definition bordertitleblock.h:137
QString btb_author_
titleblock author
Definition bordertitleblock.h:245
Definition diagramcontext.h:92
Definition diagramposition.h:28
Definition titleblockproperties.h:29
The TitleBlockTemplate class This class represents an title block template for an electric diagram....
Definition titleblocktemplate.h:38
The TitleBlockTemplateRenderer class.
Definition titleblocktemplaterenderer.h:28