mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-24 03:10:52 +01:00
Merge branch 'terminal_strip'
* terminal_strip: Fix fail to build from sources Minor improvement about undo/redo for bridge creation Minor Fix : undo command for unbridge strip don't work Minor : add undo text
This commit is contained in:
@@ -36,8 +36,14 @@ void BridgeTerminalsCommand::undo()
|
||||
|
||||
void BridgeTerminalsCommand::redo()
|
||||
{
|
||||
if (m_strip) {
|
||||
m_strip->setBridge(m_real_terminal_vector);
|
||||
if (m_strip)
|
||||
{
|
||||
if (m_bridge) {
|
||||
m_strip->setBridge(m_bridge, m_real_terminal_vector);
|
||||
} else {
|
||||
m_strip->setBridge(m_real_terminal_vector);
|
||||
m_bridge = m_strip->isBridged(m_real_terminal_vector.first());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -42,6 +42,7 @@ class BridgeTerminalsCommand : public QUndoCommand
|
||||
private:
|
||||
QPointer<TerminalStrip> m_strip;
|
||||
QVector<QSharedPointer<RealTerminal>> m_real_terminal_vector;
|
||||
QSharedPointer<TerminalStripBridge> m_bridge;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@ ChangeTerminalStripColor::ChangeTerminalStripColor(QSharedPointer<TerminalStripB
|
||||
if (m_bridge) {
|
||||
m_old_color = m_bridge->color();
|
||||
}
|
||||
setText(QObject::tr("Modifier la couleur d'un pont de bornes"));
|
||||
}
|
||||
|
||||
void ChangeTerminalStripColor::redo()
|
||||
|
||||
@@ -469,6 +469,26 @@ bool TerminalStrip::isBridgeable(const QVector<QSharedPointer<RealTerminal>> &re
|
||||
return no_bridged;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief TerminalStrip::isBridgeable
|
||||
* Check if all RealTerminal of @a real_terminals can be bridged to
|
||||
* the bridge @a bridge.
|
||||
* @param real_terminals
|
||||
* @return true if can be bridged.
|
||||
*/
|
||||
bool TerminalStrip::isBridgeable(QSharedPointer<TerminalStripBridge> bridge, const QVector<QSharedPointer<RealTerminal> > &real_terminals) const
|
||||
{
|
||||
if (real_terminals.isEmpty() ||
|
||||
!m_bridge.contains(bridge)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
auto vector_ = bridge->realTerminals();
|
||||
vector_.append(real_terminals);
|
||||
|
||||
return isBridgeable(vector_);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief TerminalStrip::setBridge
|
||||
* Set a bridge betwen all real terminal of @a real_terminals
|
||||
@@ -508,7 +528,7 @@ bool TerminalStrip::setBridge(const QSharedPointer<TerminalStripBridge> &bridge,
|
||||
{
|
||||
if (bridge)
|
||||
{
|
||||
if (!isBridgeable(real_terminals)) {
|
||||
if (!isBridgeable(bridge, real_terminals)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -93,6 +93,7 @@ class TerminalStrip : public QObject
|
||||
bool setLevel(const QSharedPointer<RealTerminal> &real_terminal, int level);
|
||||
|
||||
bool isBridgeable(const QVector<QSharedPointer<RealTerminal>> &real_terminals) const;
|
||||
bool isBridgeable(QSharedPointer<TerminalStripBridge> bridge, const QVector<QSharedPointer<RealTerminal>> &real_terminals) const;
|
||||
bool setBridge(const QVector<QSharedPointer<RealTerminal>> &real_terminals);
|
||||
bool setBridge(const QSharedPointer<TerminalStripBridge> &bridge, const QVector<QSharedPointer<RealTerminal>> &real_terminals);
|
||||
void unBridge(const QVector<QSharedPointer<RealTerminal>> &real_terminals);
|
||||
|
||||
@@ -38,7 +38,7 @@ inline uint qHash(const QPointer<Element> &key, uint seed) {
|
||||
if (key)
|
||||
return qHash(key->uuid(), seed);
|
||||
else
|
||||
return qHash(nullptr, seed);
|
||||
return qHash(QUuid(), seed);
|
||||
}
|
||||
|
||||
class TerminalStrip;
|
||||
|
||||
Reference in New Issue
Block a user