mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-17 12:40:35 +01:00
Revamp code.
Remove a QVector member variable and use instead a function who return the same vector, but created on the fly
This commit is contained in:
@@ -104,7 +104,7 @@ void TerminalStrip::setData(const TerminalStripData &data) {
|
||||
*/
|
||||
bool TerminalStrip::addTerminal(Element *terminal)
|
||||
{
|
||||
for (const auto &real_t : m_real_terminals) {
|
||||
for (const auto &real_t : realTerminals()) {
|
||||
if (real_t->element() == terminal) {
|
||||
return false;
|
||||
}
|
||||
@@ -119,7 +119,6 @@ bool TerminalStrip::addTerminal(Element *terminal)
|
||||
//Create a new single level physical terminal
|
||||
auto raw_phy_ptr = new PhysicalTerminal(this, QVector<QSharedPointer<RealTerminal>>{casted_->realTerminal()});
|
||||
m_physical_terminals.append(raw_phy_ptr->sharedRef());
|
||||
rebuildRealVector();
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -132,7 +131,7 @@ bool TerminalStrip::addTerminal(Element *terminal)
|
||||
*/
|
||||
bool TerminalStrip::removeTerminal(Element *terminal)
|
||||
{
|
||||
for (const auto &real_t : m_real_terminals)
|
||||
for (const auto &real_t : realTerminals())
|
||||
{
|
||||
if (real_t->element() == terminal)
|
||||
{
|
||||
@@ -144,7 +143,6 @@ bool TerminalStrip::removeTerminal(Element *terminal)
|
||||
}
|
||||
}
|
||||
|
||||
rebuildRealVector();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -217,23 +215,6 @@ QVector<QSharedPointer<PhysicalTerminal>> TerminalStrip::physicalTerminal() cons
|
||||
return m_physical_terminals;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief TerminalStrip::realTerminal
|
||||
* @param terminal
|
||||
* @return the real terminal linked to \p terminal
|
||||
* the returned QSharedPointer can be null.
|
||||
*/
|
||||
QSharedPointer<RealTerminal> TerminalStrip::realTerminal(Element *terminal) const
|
||||
{
|
||||
for (const auto &real : qAsConst(m_real_terminals)) {
|
||||
if (real->element() == terminal) {
|
||||
return real;
|
||||
}
|
||||
}
|
||||
|
||||
return shared_real_terminal();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief TerminalStrip::realTerminalForUuid
|
||||
* @param uuid
|
||||
@@ -241,7 +222,7 @@ QSharedPointer<RealTerminal> TerminalStrip::realTerminal(Element *terminal) cons
|
||||
*/
|
||||
QSharedPointer<RealTerminal> TerminalStrip::realTerminalForUuid(const QUuid &uuid) const
|
||||
{
|
||||
for (const auto &t : qAsConst(m_real_terminals)) {
|
||||
for (const auto &t : realTerminals()) {
|
||||
if (t->elementUuid() == uuid) {
|
||||
return t;
|
||||
}
|
||||
@@ -250,9 +231,17 @@ QSharedPointer<RealTerminal> TerminalStrip::realTerminalForUuid(const QUuid &uui
|
||||
return QSharedPointer<RealTerminal>();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief TerminalStrip::realTerminals
|
||||
* @return All real terminal owned by this strip
|
||||
*/
|
||||
QVector<QSharedPointer<RealTerminal>> TerminalStrip::realTerminals() const
|
||||
{
|
||||
return m_real_terminals;
|
||||
QVector<QSharedPointer<RealTerminal>> vector_;
|
||||
for (const auto &phy : qAsConst(m_physical_terminals)) {
|
||||
vector_.append(phy->realTerminals());
|
||||
}
|
||||
return vector_;
|
||||
}
|
||||
|
||||
|
||||
@@ -291,7 +280,6 @@ bool TerminalStrip::setOrderTo(const QVector<QSharedPointer<PhysicalTerminal>> &
|
||||
}
|
||||
|
||||
m_physical_terminals = new_order;
|
||||
rebuildRealVector();
|
||||
emit orderChanged();
|
||||
return true;
|
||||
}
|
||||
@@ -337,7 +325,6 @@ bool TerminalStrip::groupTerminals(const QSharedPointer<PhysicalTerminal> &recei
|
||||
}
|
||||
}
|
||||
|
||||
rebuildRealVector();
|
||||
emit orderChanged();
|
||||
}
|
||||
return true;
|
||||
@@ -369,7 +356,6 @@ void TerminalStrip::unGroupTerminals(const QVector<QSharedPointer<RealTerminal>>
|
||||
}
|
||||
|
||||
if (ungrouped) {
|
||||
rebuildRealVector();
|
||||
emit orderChanged();
|
||||
}
|
||||
}
|
||||
@@ -390,7 +376,6 @@ bool TerminalStrip::setLevel(const QSharedPointer<RealTerminal> &real_terminal,
|
||||
if (physical_terminal->realTerminals().size() > 1 &&
|
||||
physical_terminal->setLevelOf(real_terminal, level))
|
||||
{
|
||||
rebuildRealVector();
|
||||
emit orderChanged();
|
||||
return true;
|
||||
}
|
||||
@@ -734,18 +719,20 @@ QSharedPointer<RealTerminal> TerminalStrip::nextTerminalInLevel(const QSharedPoi
|
||||
|
||||
QSharedPointer<RealTerminal> TerminalStrip::previousRealTerminal(const QSharedPointer<RealTerminal> &real_terminal) const
|
||||
{
|
||||
const auto index = m_real_terminals.indexOf(real_terminal);
|
||||
const auto real_t_vector = realTerminals();
|
||||
const auto index = real_t_vector.indexOf(real_terminal);
|
||||
if (index) {
|
||||
return m_real_terminals.at(index-1);
|
||||
return real_t_vector.at(index-1);
|
||||
}
|
||||
return QSharedPointer<RealTerminal>();
|
||||
}
|
||||
|
||||
QSharedPointer<RealTerminal> TerminalStrip::nextRealTerminal(const QSharedPointer<RealTerminal> &real_terminal) const
|
||||
{
|
||||
const auto index = m_real_terminals.indexOf(real_terminal);
|
||||
if (index != m_real_terminals.size()-1) {
|
||||
return m_real_terminals.at(index+1);
|
||||
const auto real_t_vector = realTerminals();
|
||||
const auto index = real_t_vector.indexOf(real_terminal);
|
||||
if (index != real_t_vector.size()-1) {
|
||||
return real_t_vector.at(index+1);
|
||||
}
|
||||
return QSharedPointer<RealTerminal>();
|
||||
}
|
||||
@@ -824,7 +811,6 @@ bool TerminalStrip::fromXml(QDomElement &xml_element)
|
||||
|
||||
auto raw_ptr = new PhysicalTerminal(this, real_t_vector);
|
||||
m_physical_terminals.append(raw_ptr->sharedRef());
|
||||
m_real_terminals.append(real_t_vector);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -841,16 +827,3 @@ bool TerminalStrip::fromXml(QDomElement &xml_element)
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief TerminalStrip::rebuildRealVector
|
||||
* Rebuild the real terminal vector
|
||||
* to be ordered
|
||||
*/
|
||||
void TerminalStrip::rebuildRealVector()
|
||||
{
|
||||
m_real_terminals.clear();
|
||||
for (const auto &phy : qAsConst(m_physical_terminals)) {
|
||||
m_real_terminals.append(phy->realTerminals());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -85,7 +85,6 @@ class TerminalStrip : public QObject
|
||||
QSharedPointer<PhysicalTerminal> physicalTerminal(int index) const;
|
||||
QSharedPointer<PhysicalTerminal> physicalTerminal (const QSharedPointer<RealTerminal> &real_terminal) const;
|
||||
QVector<QSharedPointer<PhysicalTerminal>> physicalTerminal() const;
|
||||
QSharedPointer<RealTerminal> realTerminal(Element *terminal) const;
|
||||
QSharedPointer<RealTerminal> realTerminalForUuid(const QUuid &uuid) const;
|
||||
QVector<QSharedPointer<RealTerminal>> realTerminals() const;
|
||||
|
||||
@@ -112,13 +111,9 @@ class TerminalStrip : public QObject
|
||||
QDomElement toXml(QDomDocument &parent_document);
|
||||
bool fromXml(QDomElement &xml_element);
|
||||
|
||||
private:
|
||||
void rebuildRealVector();
|
||||
|
||||
private:
|
||||
TerminalStripData m_data;
|
||||
QPointer<QETProject> m_project;
|
||||
QVector<QSharedPointer<RealTerminal>> m_real_terminals;
|
||||
QVector<QSharedPointer<PhysicalTerminal>> m_physical_terminals;
|
||||
QVector<QSharedPointer<TerminalStripBridge>> m_bridge;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user