mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-09-14 20:33:05 +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)
|
||||
{
|
||||
//First, re-group all terminals
|
||||
for (const auto &key : m_physical_real_H.keys()) {
|
||||
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)
|
||||
{
|
||||
auto phy_t = m_terminal_strip->physicalTerminal(rt_.toWeakRef());
|
||||
auto phy_t = m_terminal_strip->physicalTerminal(rt_);
|
||||
if (phy_t)
|
||||
{
|
||||
//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);
|
||||
vector_.append(rt_);
|
||||
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:
|
||||
QPointer<TerminalStrip> m_terminal_strip;
|
||||
QHash <QSharedPointer<PhysicalTerminal>, QVector<QSharedPointer<RealTerminal>>> m_physical_real_H;
|
||||
QVector<QPair<QSharedPointer<RealTerminal>, int>> m_real_t_level;
|
||||
};
|
||||
|
||||
#endif // GROUPTERMINALSCOMMAND_H
|
||||
|
Loading…
x
Reference in New Issue
Block a user