mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-03-16 15:09:58 +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()
|
void BridgeTerminalsCommand::redo()
|
||||||
{
|
{
|
||||||
if (m_strip) {
|
if (m_strip)
|
||||||
m_strip->setBridge(m_real_terminal_vector);
|
{
|
||||||
|
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:
|
private:
|
||||||
QPointer<TerminalStrip> m_strip;
|
QPointer<TerminalStrip> m_strip;
|
||||||
QVector<QSharedPointer<RealTerminal>> m_real_terminal_vector;
|
QVector<QSharedPointer<RealTerminal>> m_real_terminal_vector;
|
||||||
|
QSharedPointer<TerminalStripBridge> m_bridge;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ ChangeTerminalStripColor::ChangeTerminalStripColor(QSharedPointer<TerminalStripB
|
|||||||
if (m_bridge) {
|
if (m_bridge) {
|
||||||
m_old_color = m_bridge->color();
|
m_old_color = m_bridge->color();
|
||||||
}
|
}
|
||||||
|
setText(QObject::tr("Modifier la couleur d'un pont de bornes"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void ChangeTerminalStripColor::redo()
|
void ChangeTerminalStripColor::redo()
|
||||||
|
|||||||
@@ -469,6 +469,26 @@ bool TerminalStrip::isBridgeable(const QVector<QSharedPointer<RealTerminal>> &re
|
|||||||
return no_bridged;
|
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
|
* @brief TerminalStrip::setBridge
|
||||||
* Set a bridge betwen all real terminal of @a real_terminals
|
* 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 (bridge)
|
||||||
{
|
{
|
||||||
if (!isBridgeable(real_terminals)) {
|
if (!isBridgeable(bridge, real_terminals)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -93,6 +93,7 @@ class TerminalStrip : public QObject
|
|||||||
bool setLevel(const QSharedPointer<RealTerminal> &real_terminal, int level);
|
bool setLevel(const QSharedPointer<RealTerminal> &real_terminal, int level);
|
||||||
|
|
||||||
bool isBridgeable(const QVector<QSharedPointer<RealTerminal>> &real_terminals) const;
|
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 QVector<QSharedPointer<RealTerminal>> &real_terminals);
|
||||||
bool setBridge(const QSharedPointer<TerminalStripBridge> &bridge, 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);
|
void unBridge(const QVector<QSharedPointer<RealTerminal>> &real_terminals);
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ inline uint qHash(const QPointer<Element> &key, uint seed) {
|
|||||||
if (key)
|
if (key)
|
||||||
return qHash(key->uuid(), seed);
|
return qHash(key->uuid(), seed);
|
||||||
else
|
else
|
||||||
return qHash(nullptr, seed);
|
return qHash(QUuid(), seed);
|
||||||
}
|
}
|
||||||
|
|
||||||
class TerminalStrip;
|
class TerminalStrip;
|
||||||
|
|||||||
Reference in New Issue
Block a user