diff --git a/sources/TerminalStrip/terminalstrip.cpp b/sources/TerminalStrip/terminalstrip.cpp index 945f236be..8ca68fbbf 100644 --- a/sources/TerminalStrip/terminalstrip.cpp +++ b/sources/TerminalStrip/terminalstrip.cpp @@ -468,28 +468,6 @@ int TerminalStrip::physicalTerminalCount() const { 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(real_term->element())); - } - - tsi_.m_valid = true; - return tsi_; -} - /** * @brief TerminalStrip::physicalTerminalData * @param index @@ -657,6 +635,8 @@ RealTerminalData TerminalStrip::realTerminalData(QSharedPointer re if (real_terminal->isElement()) { rtd.Xref_ = autonum::AssignVariables::genericXref(real_terminal->element()); + rtd.uuid_ = real_terminal->elementUuid(); + rtd.element_ = qgraphicsitem_cast(real_terminal->element()); } rtd.type_ = real_terminal->type(); rtd.function_ = real_terminal->function(); @@ -665,58 +645,3 @@ RealTerminalData TerminalStrip::realTerminalData(QSharedPointer re 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); -} diff --git a/sources/TerminalStrip/terminalstrip.h b/sources/TerminalStrip/terminalstrip.h index 94e55de8b..5c1839c3f 100644 --- a/sources/TerminalStrip/terminalstrip.h +++ b/sources/TerminalStrip/terminalstrip.h @@ -44,12 +44,16 @@ struct RealTerminalData cable_wire_, conductor_; + QUuid uuid_; + ElementData::TerminalType type_; ElementData::TerminalFunction function_; bool led_ = false, is_element = false; + TerminalElement *element_ = nullptr; + }; struct PhysicalTerminalData @@ -99,7 +103,6 @@ class TerminalStrip : public QObject bool haveTerminal (Element *terminal); int physicalTerminalCount() const; - TerminalStripIndex index(int index = 0); PhysicalTerminalData physicalTerminalData(int index); @@ -124,27 +127,4 @@ class TerminalStrip : public QObject QVector> 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 m_label; - QVector m_uuid; - bool m_valid = false; - QVector m_is_element; - QVector m_element; -}; - #endif // TERMINALSTRIP_H diff --git a/sources/TerminalStrip/ui/terminalstripeditor.cpp b/sources/TerminalStrip/ui/terminalstripeditor.cpp index ef80ff185..4b739da4d 100644 --- a/sources/TerminalStrip/ui/terminalstripeditor.cpp +++ b/sources/TerminalStrip/ui/terminalstripeditor.cpp @@ -213,13 +213,17 @@ QTreeWidgetItem* TerminalStripEditor::addTerminalStrip(TerminalStrip *terminal_s //Add child terminal of the strip for (auto i=0 ; iphysicalTerminalCount() ; ++i) { - auto index = terminal_strip->index(i); - auto term_item = new QTreeWidgetItem(strip_item, QStringList(index.label()), TerminalStripTreeWidget::Terminal); - term_item->setData(0, TerminalStripTreeWidget::UUID_USER_ROLE, index.uuid().toString()); - term_item->setIcon(0, QET::Icons::ElementTerminal); + auto ptd = terminal_strip->physicalTerminalData(i); + if (ptd.real_terminals_vector.size()) + { + 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()) { - m_uuid_terminal_H.insert(index.uuid(), index.element()); + if (real_t.is_element) { + m_uuid_terminal_H.insert(real_t.uuid_, real_t.element_); + } } }