Use RealTerminalData struct instead of TerminalStripIndex class

This commit is contained in:
joshua
2021-09-12 12:49:12 +02:00
parent 8c554e875d
commit 37e74b397e
3 changed files with 16 additions and 107 deletions

View File

@@ -468,28 +468,6 @@ int TerminalStrip::physicalTerminalCount() const {
return m_physical_terminals.size(); return m_physical_terminals.size();
} }
TerminalStripIndex TerminalStrip::index(int index)
{
TerminalStripIndex tsi_;
if (index < 0 ||
index >= m_physical_terminals.size()) {
return tsi_;
}
auto phy_term = m_physical_terminals.at(index);
for(auto &real_term : phy_term->terminals()) {
tsi_.m_label.append(real_term->label());
tsi_.m_uuid.append(real_term->elementUuid());
tsi_.m_is_element.append(real_term->isElement());
tsi_.m_element.append(static_cast<TerminalElement*>(real_term->element()));
}
tsi_.m_valid = true;
return tsi_;
}
/** /**
* @brief TerminalStrip::physicalTerminalData * @brief TerminalStrip::physicalTerminalData
* @param index * @param index
@@ -657,6 +635,8 @@ RealTerminalData TerminalStrip::realTerminalData(QSharedPointer<RealTerminal> re
if (real_terminal->isElement()) { if (real_terminal->isElement()) {
rtd.Xref_ = autonum::AssignVariables::genericXref(real_terminal->element()); rtd.Xref_ = autonum::AssignVariables::genericXref(real_terminal->element());
rtd.uuid_ = real_terminal->elementUuid();
rtd.element_ = qgraphicsitem_cast<TerminalElement *>(real_terminal->element());
} }
rtd.type_ = real_terminal->type(); rtd.type_ = real_terminal->type();
rtd.function_ = real_terminal->function(); rtd.function_ = real_terminal->function();
@@ -665,58 +645,3 @@ RealTerminalData TerminalStrip::realTerminalData(QSharedPointer<RealTerminal> re
return rtd; return rtd;
} }
/************************************************************************************/
/************************************************************************************/
/************************************************************************************/
/************************************************************************************/
/************************************************************************************/
bool TerminalStripIndex::isValid() const
{
return m_valid;
}
QString TerminalStripIndex::label(int level) const
{
if (level<0 ||
level >= m_label.size()) {
return QStringLiteral("");
}
return m_label.at(level);
}
QUuid TerminalStripIndex::uuid(int level) const
{
if (level<0 ||
level >= m_uuid.size()) {
return QUuid();
}
return m_uuid.at(level);
}
bool TerminalStripIndex::isElement(int level) const
{
if (level<0 ||
level >= m_is_element.size()) {
return false;
}
return m_is_element.at(level);
}
TerminalElement *TerminalStripIndex::element(int level) const
{
if (level<0 ||
level >= m_element.size()) {
return nullptr;
}
return m_element.at(level);
}

View File

@@ -44,12 +44,16 @@ struct RealTerminalData
cable_wire_, cable_wire_,
conductor_; conductor_;
QUuid uuid_;
ElementData::TerminalType type_; ElementData::TerminalType type_;
ElementData::TerminalFunction function_; ElementData::TerminalFunction function_;
bool led_ = false, bool led_ = false,
is_element = false; is_element = false;
TerminalElement *element_ = nullptr;
}; };
struct PhysicalTerminalData struct PhysicalTerminalData
@@ -99,7 +103,6 @@ class TerminalStrip : public QObject
bool haveTerminal (Element *terminal); bool haveTerminal (Element *terminal);
int physicalTerminalCount() const; int physicalTerminalCount() const;
TerminalStripIndex index(int index = 0);
PhysicalTerminalData physicalTerminalData(int index); PhysicalTerminalData physicalTerminalData(int index);
@@ -124,27 +127,4 @@ class TerminalStrip : public QObject
QVector<QSharedPointer<PhysicalTerminal>> m_physical_terminals; QVector<QSharedPointer<PhysicalTerminal>> m_physical_terminals;
}; };
class TerminalStripIndex
{
friend class TerminalStrip;
private :
TerminalStripIndex () {}
TerminalStripIndex (TerminalStripIndex *) {}
public:
bool isValid() const;
QString label(int level = 0) const;
QUuid uuid(int level = 0) const;
bool isElement(int level = 0) const;
TerminalElement *element(int level = 0) const;
private:
QVector<QString> m_label;
QVector<QUuid> m_uuid;
bool m_valid = false;
QVector<bool> m_is_element;
QVector<TerminalElement *> m_element;
};
#endif // TERMINALSTRIP_H #endif // TERMINALSTRIP_H

View File

@@ -213,13 +213,17 @@ QTreeWidgetItem* TerminalStripEditor::addTerminalStrip(TerminalStrip *terminal_s
//Add child terminal of the strip //Add child terminal of the strip
for (auto i=0 ; i<terminal_strip->physicalTerminalCount() ; ++i) for (auto i=0 ; i<terminal_strip->physicalTerminalCount() ; ++i)
{ {
auto index = terminal_strip->index(i); auto ptd = terminal_strip->physicalTerminalData(i);
auto term_item = new QTreeWidgetItem(strip_item, QStringList(index.label()), TerminalStripTreeWidget::Terminal); if (ptd.real_terminals_vector.size())
term_item->setData(0, TerminalStripTreeWidget::UUID_USER_ROLE, index.uuid().toString()); {
term_item->setIcon(0, QET::Icons::ElementTerminal); auto real_t = ptd.real_terminals_vector.first();
auto terminal_item = new QTreeWidgetItem(strip_item, QStringList(real_t.label_), TerminalStripTreeWidget::Terminal);
terminal_item->setData(0, TerminalStripTreeWidget::UUID_USER_ROLE, real_t.uuid_.toString());
terminal_item->setIcon(0, QET::Icons::ElementTerminal);
if (index.isElement()) { if (real_t.is_element) {
m_uuid_terminal_H.insert(index.uuid(), index.element()); m_uuid_terminal_H.insert(real_t.uuid_, real_t.element_);
}
} }
} }