QElectroTech 0.200.1-dev
Loading...
Searching...
No Matches
masterelement.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 MASTERELEMENT_H
19#define MASTERELEMENT_H
20
21#include "element.h"
22#include "../contactusage.h"
23#include <QHash>
24#include <QMetaObject>
25
26class CrossRefItem;
27
34class MasterElement : public Element
35{
36 Q_OBJECT
37
38 public:
39 explicit MasterElement(
40 const ElementsLocation &,
41 QGraphicsItem * = nullptr,
42 int * = nullptr);
43 ~MasterElement() override;
44
45 void linkToElement (Element *elmt) override;
46 void unlinkAllElements () override;
47 void unlinkElement (Element *elmt) override;
48 void initLink (QETProject *project) override;
49 QRectF XrefBoundingRect() const;
50
53 bool isFull() const; // Check Slave-Limit
54
55 protected:
56 QVariant itemChange(
57 GraphicsItemChange change,
58 const QVariant &value) override;
59
60 private:
62 void aboutDeleteXref ();
65
66 private:
69 QHash<Element*, QMetaObject::Connection> m_slave_x_conn;
70 QHash<Element*, QMetaObject::Connection> m_slave_y_conn;
71};
72
73#endif // MASTERELEMENT_H
The CrossRefItem class This clas provide an item, for show the cross reference, like the contacts lin...
Definition crossrefitem.h:47
Element(const ElementsLocation &location, QGraphicsItem *=nullptr, int *state=nullptr, Element::kind link_type=Element::Simple)
Element::Element.
Definition element.cpp:101
The ElementsLocation class This class represents the location, the location of an element or of a cat...
Definition elementslocation.h:47
~MasterElement() override
MasterElement::~MasterElement default destructor.
Definition masterelement.cpp:46
void initLink(QETProject *project) override
MasterElement::initLink.
Definition masterelement.cpp:137
QVariant itemChange(GraphicsItemChange change, const QVariant &value) override
Definition masterelement.cpp:155
bool m_first_scene_change
Definition masterelement.h:68
void connectSlavePositionUpdates(Element *slave)
MasterElement::connectSlavePositionUpdates Connect slave xChanged/yChanged to master update() so the ...
Definition masterelement.cpp:330
ContactUsage contactCapacity() const
MasterElement::contactCapacity The contacts this master declares it provides, by type,...
Definition masterelement.cpp:286
void unlinkElement(Element *elmt) override
MasterElement::unlinkElement Unlink the given element in parameter.
Definition masterelement.cpp:99
QHash< Element *, QMetaObject::Connection > m_slave_y_conn
Definition masterelement.h:70
bool isFull() const
MasterElement::isFull.
Definition masterelement.cpp:301
QHash< Element *, QMetaObject::Connection > m_slave_x_conn
Definition masterelement.h:69
ContactUsage contactUsage() const
Definition masterelement.cpp:260
QRectF XrefBoundingRect() const
MasterElement::XrefBoundingRect.
Definition masterelement.cpp:147
void linkToElement(Element *elmt) override
MasterElement::linkToElement Link this master to another element For this class element must be a sla...
Definition masterelement.cpp:57
void xrefPropertiesChanged()
Definition masterelement.cpp:173
void disconnectSlavePositionUpdates(Element *slave)
MasterElement::disconnectSlavePositionUpdates Disconnect slave position signals from master.
Definition masterelement.cpp:345
CrossRefItem * m_Xref_item
Definition masterelement.h:67
MasterElement(const ElementsLocation &, QGraphicsItem *=nullptr, int *=nullptr)
MasterElement::MasterElement Default constructor.
Definition masterelement.cpp:35
void unlinkAllElements() override
MasterElement::unlinkAllElements Unlink all of the element in the QList connected_elements.
Definition masterelement.cpp:83
void aboutDeleteXref()
MasterElement::aboutDeleteXref Check if Xref item must be displayed, if not, delete it....
Definition masterelement.cpp:205
Definition qetproject.h:77
The ContactUsage struct How many slave contacts a master element currently uses, broken down by conta...
Definition contactusage.h:47