QElectroTech 0.200.1-dev
Loading...
Searching...
No Matches
assignvariables.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 ASSIGNVARIABLES_H
19#define ASSIGNVARIABLES_H
20#include "../diagramcontext.h"
21#include "numerotationcontext.h"
22
23#include <QPointF>
24#include <QString>
25#include <QStringList>
26
27class Conductor;
28class Diagram;
29class Element;
31
32namespace autonum
33{
35 {
36 public:
40
42 bool operator== (const sequentialNumbers &other) const;
43 bool operator!= (const sequentialNumbers &other) const;
44
45 QDomElement toXml(QDomDocument &document, const QString& tag_name = QString("sequentialNumbers")) const;
46 void fromXml(const QDomElement &element);
47 void clear();
48
49 QStringList unit;
51 QStringList wrap;
52 QStringList unit_folio;
53 QStringList ten;
54 QStringList ten_folio;
55 QStringList hundred;
56 QStringList hundred_folio;
57 QStringList alpha;
58 };
59
66 {
67 public:
68 static QString formulaToLabel (QString formula, sequentialNumbers &seqStruct, Diagram *diagram, const Element *elmt = nullptr, const Conductor *cndr = nullptr);
69 static QString replaceVariable (const QString &formula, const DiagramContext &dc);
70 static QString genericXref (const Element *element);
71
72 private:
73 AssignVariables(const QString& formula, const sequentialNumbers& seqStruct , Diagram *diagram, const Element *elmt = nullptr, const Conductor *cndr = nullptr);
75 void assignProjectVar();
76 void assignSequence();
77
78 Diagram *m_diagram = nullptr;
82 const Element *m_element = nullptr;
83 const Conductor *m_conductor = nullptr;
84 };
85
86 void setSequentialToList(QStringList &list, NumerotationContext &nc, const QString& type);
87 void setFolioSequentialToHash(QStringList &list, QHash<QString, QStringList> &hash, const QString& autoNumName);
88 void setSequential(const QString& label, autonum::sequentialNumbers &seqStruct, NumerotationContext &context, Diagram *diagram, const QString& hashKey);
90 QString elementPrefixForLocation(const ElementsLocation &location);
91}
92
94
95#endif // ASSIGNVARIABLES_H
Definition conductor.h:44
Definition diagramcontext.h:92
The Diagram class This class represents an electric diagram. It manages its various child elements,...
Definition diagram.h:54
Definition element.h:44
The ElementsLocation class This class represents the location, the location of an element or of a cat...
Definition elementslocation.h:47
Definition numerotationcontext.h:31
static QString formulaToLabel(QString formula, sequentialNumbers &seqStruct, Diagram *diagram, const Element *elmt=nullptr, const Conductor *cndr=nullptr)
AssignVariables::formulaToLabel Return the formula with variable assigned (ready to be displayed).
Definition assignvariables.cpp:216
AssignVariables(const QString &formula, const sequentialNumbers &seqStruct, Diagram *diagram, const Element *elmt=nullptr, const Conductor *cndr=nullptr)
Definition assignvariables.cpp:346
void assignTitleBlockVar()
Definition assignvariables.cpp:412
Diagram * m_diagram
Definition assignvariables.h:78
static QString replaceVariable(const QString &formula, const DiagramContext &dc)
AssignVariables::replaceVariable Replace the variables in formula in form %{my-var}...
Definition assignvariables.cpp:239
static QString genericXref(const Element *element)
AssignVariables::genericXref.
Definition assignvariables.cpp:323
QString m_assigned_label
Definition assignvariables.h:80
const Conductor * m_conductor
Definition assignvariables.h:83
const Element * m_element
Definition assignvariables.h:82
QString m_arg_formula
Definition assignvariables.h:79
void assignProjectVar()
Definition assignvariables.cpp:426
sequentialNumbers m_seq_struct
Definition assignvariables.h:81
void assignSequence()
Definition assignvariables.cpp:440
Definition assignvariables.h:35
bool operator==(const sequentialNumbers &other) const
Definition assignvariables.cpp:72
sequentialNumbers()
sequentialNumbers::sequentialNumbers
Definition assignvariables.cpp:36
QStringList hundred
Definition assignvariables.h:55
QStringList wrap
Values of the cyclic (modulo) parts, referenced by seqw_N.
Definition assignvariables.h:51
QDomElement toXml(QDomDocument &document, const QString &tag_name=QString("sequentialNumbers")) const
sequentialNumbers::toXml export this sequential numbers into a QDomElement.
Definition assignvariables.cpp:103
~sequentialNumbers()
Definition assignvariables.cpp:51
QStringList ten
Definition assignvariables.h:53
bool operator!=(const sequentialNumbers &other) const
Definition assignvariables.cpp:87
QStringList ten_folio
Definition assignvariables.h:54
void clear()
Definition assignvariables.cpp:192
QStringList unit
Definition assignvariables.h:49
sequentialNumbers & operator=(const sequentialNumbers &other)
Definition assignvariables.cpp:54
QStringList unit_folio
Definition assignvariables.h:52
void fromXml(const QDomElement &element)
sequentialNumbers::fromXml Import sequential values from a QDomElement
Definition assignvariables.cpp:157
QStringList hundred_folio
Definition assignvariables.h:56
QStringList alpha
Definition assignvariables.h:57
Q_DECLARE_METATYPE(NamesList)
Definition assignvariables.cpp:32
void setFolioSequentialToHash(QStringList &list, QHash< QString, QStringList > &hash, const QString &autoNumName)
setFolioSequentialToHash Insert all value of list in hash with key autoNumName
Definition assignvariables.cpp:532
void setSequentialToList(QStringList &list, NumerotationContext &context, const QString &type)
setSequentialToList Append all sequential of type type owned by context in list
Definition assignvariables.cpp:492
QString elementPrefixForLocation(const ElementsLocation &location)
elementPrefixForLocation
Definition assignvariables.cpp:714
void setSequential(const QString &label, sequentialNumbers &seqStruct, NumerotationContext &context, Diagram *diagram, const QString &hashKey)
setSequential Fill seqStruct
Definition assignvariables.cpp:577
QString numerotationContextToFormula(const NumerotationContext &nc)
numerotationContextToFormula
Definition assignvariables.cpp:624