mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-09-13 20:23:04 +02:00
When undo an ungroup terminal command, the terminal keep the same level.
This commit is contained in:
parent
1d20018a26
commit
a165a3cb28
@ -62,9 +62,14 @@ void UnGroupTerminalsCommand::undo()
|
|||||||
{
|
{
|
||||||
if (m_terminal_strip)
|
if (m_terminal_strip)
|
||||||
{
|
{
|
||||||
|
//First, re-group all terminals
|
||||||
for (const auto &key : m_physical_real_H.keys()) {
|
for (const auto &key : m_physical_real_H.keys()) {
|
||||||
m_terminal_strip->groupTerminals(key, m_physical_real_H.value(key));
|
m_terminal_strip->groupTerminals(key, m_physical_real_H.value(key));
|
||||||
}
|
}
|
||||||
|
//Second, set level.
|
||||||
|
for (const auto &pair : qAsConst(m_real_t_level)) {
|
||||||
|
m_terminal_strip->setLevel(pair.first, pair.second);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -82,7 +87,7 @@ void UnGroupTerminalsCommand::setUp(const QVector<QSharedPointer<RealTerminal>>
|
|||||||
{
|
{
|
||||||
for (const auto &rt_ : to_ungroup)
|
for (const auto &rt_ : to_ungroup)
|
||||||
{
|
{
|
||||||
auto phy_t = m_terminal_strip->physicalTerminal(rt_.toWeakRef());
|
auto phy_t = m_terminal_strip->physicalTerminal(rt_);
|
||||||
if (phy_t)
|
if (phy_t)
|
||||||
{
|
{
|
||||||
//Physical have only one real terminal, no need to ungroup it
|
//Physical have only one real terminal, no need to ungroup it
|
||||||
@ -93,6 +98,8 @@ void UnGroupTerminalsCommand::setUp(const QVector<QSharedPointer<RealTerminal>>
|
|||||||
auto vector_ = m_physical_real_H.value(phy_t);
|
auto vector_ = m_physical_real_H.value(phy_t);
|
||||||
vector_.append(rt_);
|
vector_.append(rt_);
|
||||||
m_physical_real_H.insert(phy_t, vector_);
|
m_physical_real_H.insert(phy_t, vector_);
|
||||||
|
|
||||||
|
m_real_t_level.append(qMakePair(rt_, phy_t->levelOf(rt_)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -64,6 +64,7 @@ class UnGroupTerminalsCommand : public QUndoCommand
|
|||||||
private:
|
private:
|
||||||
QPointer<TerminalStrip> m_terminal_strip;
|
QPointer<TerminalStrip> m_terminal_strip;
|
||||||
QHash <QSharedPointer<PhysicalTerminal>, QVector<QSharedPointer<RealTerminal>>> m_physical_real_H;
|
QHash <QSharedPointer<PhysicalTerminal>, QVector<QSharedPointer<RealTerminal>>> m_physical_real_H;
|
||||||
|
QVector<QPair<QSharedPointer<RealTerminal>, int>> m_real_t_level;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // GROUPTERMINALSCOMMAND_H
|
#endif // GROUPTERMINALSCOMMAND_H
|
||||||
|
Loading…
x
Reference in New Issue
Block a user