mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-17 12:40:35 +01:00
Fix drag and drop bug
This commit is contained in:
@@ -424,6 +424,8 @@ TerminalStripIndex TerminalStrip::index(int index)
|
|||||||
for(auto &real_term : phy_term->terminals()) {
|
for(auto &real_term : phy_term->terminals()) {
|
||||||
tsi_.m_label.append(real_term->label());
|
tsi_.m_label.append(real_term->label());
|
||||||
tsi_.m_uuid.append(real_term->elementUuid());
|
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;
|
tsi_.m_valid = true;
|
||||||
@@ -587,3 +589,23 @@ QUuid TerminalStripIndex::uuid(int level) const
|
|||||||
|
|
||||||
return m_uuid.at(level);
|
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);
|
||||||
|
}
|
||||||
|
|||||||
@@ -27,7 +27,15 @@ class RealTerminal;
|
|||||||
class QETProject;
|
class QETProject;
|
||||||
class PhysicalTerminal;
|
class PhysicalTerminal;
|
||||||
class TerminalStripIndex;
|
class TerminalStripIndex;
|
||||||
|
class TerminalElement;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The TerminalStrip class
|
||||||
|
* This class hold all the datas and configurations
|
||||||
|
* of a terminal strip (but the not the visual aspect).
|
||||||
|
* A terminal strip have some informations (name comment etc...)
|
||||||
|
* and is composed by terminals (draw in a diagram or described in the terminal strip)
|
||||||
|
*/
|
||||||
class TerminalStrip : public QObject
|
class TerminalStrip : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@@ -88,11 +96,15 @@ class TerminalStripIndex
|
|||||||
bool isValid() const;
|
bool isValid() const;
|
||||||
QString label(int level = 0) const;
|
QString label(int level = 0) const;
|
||||||
QUuid uuid(int level = 0) const;
|
QUuid uuid(int level = 0) const;
|
||||||
|
bool isElement(int level = 0) const;
|
||||||
|
TerminalElement *element(int level = 0) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QVector<QString> m_label;
|
QVector<QString> m_label;
|
||||||
QVector<QUuid> m_uuid;
|
QVector<QUuid> m_uuid;
|
||||||
bool m_valid = false;
|
bool m_valid = false;
|
||||||
|
QVector<bool> m_is_element;
|
||||||
|
QVector<TerminalElement *> m_element;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // TERMINALSTRIP_H
|
#endif // TERMINALSTRIP_H
|
||||||
|
|||||||
@@ -175,6 +175,10 @@ QTreeWidgetItem* TerminalStripEditor::addTerminalStrip(TerminalStrip *terminal_s
|
|||||||
auto term_item = new QTreeWidgetItem(strip_item, QStringList(index.label()), TerminalStripTreeWidget::Terminal);
|
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->setData(0, TerminalStripTreeWidget::UUID_USER_ROLE, index.uuid().toString());
|
||||||
term_item->setIcon(0, QET::Icons::ElementTerminal);
|
term_item->setIcon(0, QET::Icons::ElementTerminal);
|
||||||
|
|
||||||
|
if (index.isElement()) {
|
||||||
|
m_uuid_terminal_H.insert(index.uuid(), index.element());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
m_item_strip_H.insert(strip_item, terminal_strip);
|
m_item_strip_H.insert(strip_item, terminal_strip);
|
||||||
|
|||||||
Reference in New Issue
Block a user