mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-01-06 05:10:52 +01:00
Revamp RealTerminal class...... again
I don't know what I want, I'm crazy :D. Next commit will also revamp PhysicalTerminal and TerminalStripBridge class, code will be more clear and easy to understand.
This commit is contained in:
@@ -234,13 +234,13 @@ QTreeWidgetItem* TerminalStripEditor::addTerminalStrip(TerminalStrip *terminal_s
|
||||
auto ptd = terminal_strip->physicalTerminalData(i);
|
||||
if (ptd.realTerminalCount())
|
||||
{
|
||||
const auto real_t = ptd.realTerminalDatas().at(0);
|
||||
auto terminal_item = new QTreeWidgetItem(strip_item, QStringList(real_t.label()), TerminalStripTreeWidget::Terminal);
|
||||
terminal_item->setData(0, TerminalStripTreeWidget::UUID_USER_ROLE, real_t.elementUuid());
|
||||
const auto real_t = ptd.realTerminals().at(0).toStrongRef();
|
||||
auto terminal_item = new QTreeWidgetItem(strip_item, QStringList(real_t->label()), TerminalStripTreeWidget::Terminal);
|
||||
terminal_item->setData(0, TerminalStripTreeWidget::UUID_USER_ROLE, real_t->elementUuid());
|
||||
terminal_item->setIcon(0, QET::Icons::ElementTerminal);
|
||||
|
||||
if (real_t.element()) {
|
||||
m_uuid_terminal_H.insert(real_t.elementUuid(), qgraphicsitem_cast<TerminalElement *>(real_t.element()));
|
||||
if (real_t->element()) {
|
||||
m_uuid_terminal_H.insert(real_t->elementUuid(), qgraphicsitem_cast<TerminalElement *>(real_t->element()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -644,7 +644,7 @@ void TerminalStripEditor::on_m_dialog_button_box_clicked(QAbstractButton *button
|
||||
|
||||
if (element->elementData() != current_data)
|
||||
m_project->undoStack()->push(new ChangeElementDataCommand(element, current_data));
|
||||
if (data_.level_ != m_current_strip->realTerminalDataFor(data_.real_terminal).level())
|
||||
if (data_.level_ != data_.real_terminal.toStrongRef()->level())
|
||||
m_project->undoStack()->push(new ChangeTerminalLevel(m_current_strip, data_.real_terminal, data_.level_));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -487,11 +487,11 @@ void TerminalStripModel::fillPhysicalTerminalData()
|
||||
mptd.pos_ = ptd.pos();
|
||||
mptd.uuid_ = ptd.uuid();
|
||||
|
||||
for (const auto &rtd : ptd.realTerminalDatas())
|
||||
for (const auto &real_t : ptd.realTerminals())
|
||||
{
|
||||
if (!rtd.isNull())
|
||||
if (!real_t.isNull())
|
||||
{
|
||||
mptd.real_data.append(modelRealData(rtd));
|
||||
mptd.real_data.append(modelRealData(real_t));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -644,8 +644,15 @@ QPixmap TerminalStripModel::bridgePixmapFor(const QModelIndex &index) const
|
||||
auto bridge_ = m_terminal_strip->bridgeFor(mrtd.real_terminal);
|
||||
if (bridge_)
|
||||
{
|
||||
auto previous_bridge = m_terminal_strip->previousTerminalInLevel(mrtd.real_terminal).bridge();
|
||||
auto next_bridge = m_terminal_strip->nextTerminalInLevel(mrtd.real_terminal).bridge();
|
||||
const auto previous_t = m_terminal_strip->previousTerminalInLevel(mrtd.real_terminal).toStrongRef();
|
||||
QSharedPointer<TerminalStripBridge> previous_bridge;
|
||||
if (previous_t)
|
||||
previous_bridge = previous_t->bridge();
|
||||
|
||||
const auto next_t = m_terminal_strip->nextTerminalInLevel(mrtd.real_terminal).toStrongRef();
|
||||
QSharedPointer<TerminalStripBridge> next_bridge;
|
||||
if (next_t)
|
||||
next_bridge = next_t->bridge();
|
||||
|
||||
auto color_ = bridge_->color_;
|
||||
auto pixmap_ = m_bridges_pixmaps.value(color_);
|
||||
@@ -747,23 +754,24 @@ QPixmap TerminalStripModel::bridgePixmapFor(const QModelIndex &index) const
|
||||
return QPixmap();
|
||||
}
|
||||
|
||||
modelRealTerminalData TerminalStripModel::modelRealData(const RealTerminalData &data)
|
||||
modelRealTerminalData TerminalStripModel::modelRealData(const QWeakPointer<RealTerminal> &real_terminal)
|
||||
{
|
||||
modelRealTerminalData mrtd;
|
||||
if (!data.isNull())
|
||||
const auto real_t = real_terminal.toStrongRef();
|
||||
if (!real_terminal.isNull())
|
||||
{
|
||||
mrtd.level_ = data.level();
|
||||
mrtd.label_ = data.label();
|
||||
mrtd.Xref_ = data.Xref();
|
||||
mrtd.cable_ = data.cable();
|
||||
mrtd.cable_wire = data.cableWire();
|
||||
mrtd.conductor_ = data.conductor();
|
||||
mrtd.led_ = data.isLed();
|
||||
mrtd.type_ = data.type();
|
||||
mrtd.function_ = data.function();
|
||||
mrtd.element_ = data.element();
|
||||
mrtd.real_terminal = data.realTerminal();
|
||||
mrtd.bridged_ = data.isBridged();
|
||||
mrtd.level_ = real_t->level();
|
||||
mrtd.label_ = real_t->label();
|
||||
mrtd.Xref_ = real_t->Xref();
|
||||
mrtd.cable_ = real_t->cable();
|
||||
mrtd.cable_wire = real_t->cableWire();
|
||||
mrtd.conductor_ = real_t->conductor();
|
||||
mrtd.led_ = real_t->isLed();
|
||||
mrtd.type_ = real_t->type();
|
||||
mrtd.function_ = real_t->function();
|
||||
mrtd.element_ = real_t->element();
|
||||
mrtd.real_terminal = real_terminal;
|
||||
mrtd.bridged_ = real_t->isBridged();
|
||||
}
|
||||
|
||||
return mrtd;
|
||||
|
||||
@@ -124,7 +124,7 @@ class TerminalStripModel : public QAbstractTableModel
|
||||
modelRealTerminalData realDataAtIndex(int index) const;
|
||||
QPixmap bridgePixmapFor(const QModelIndex &index) const;
|
||||
|
||||
static modelRealTerminalData modelRealData(const RealTerminalData &data);
|
||||
static modelRealTerminalData modelRealData(const QWeakPointer<RealTerminal> &real_terminal);
|
||||
|
||||
private:
|
||||
QPointer<TerminalStrip> m_terminal_strip;
|
||||
|
||||
Reference in New Issue
Block a user