From d114b097bf001c452e856dbf356c99de009a5931 Mon Sep 17 00:00:00 2001 From: joshua Date: Thu, 27 Jan 2022 19:45:33 +0100 Subject: [PATCH] Minor Fix : undo command for unbridge strip don't work --- sources/TerminalStrip/terminalstrip.cpp | 22 +++++++++++++++++++++- sources/TerminalStrip/terminalstrip.h | 1 + 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/sources/TerminalStrip/terminalstrip.cpp b/sources/TerminalStrip/terminalstrip.cpp index 04898f92f..f38a378ab 100644 --- a/sources/TerminalStrip/terminalstrip.cpp +++ b/sources/TerminalStrip/terminalstrip.cpp @@ -469,6 +469,26 @@ bool TerminalStrip::isBridgeable(const QVector> &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 bridge, const QVector > &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 &bridge, { if (bridge) { - if (!isBridgeable(real_terminals)) { + if (!isBridgeable(bridge, real_terminals)) { return false; } diff --git a/sources/TerminalStrip/terminalstrip.h b/sources/TerminalStrip/terminalstrip.h index eae42117f..6017b4875 100644 --- a/sources/TerminalStrip/terminalstrip.h +++ b/sources/TerminalStrip/terminalstrip.h @@ -93,6 +93,7 @@ class TerminalStrip : public QObject bool setLevel(const QSharedPointer &real_terminal, int level); bool isBridgeable(const QVector> &real_terminals) const; + bool isBridgeable(QSharedPointer bridge, const QVector> &real_terminals) const; bool setBridge(const QVector> &real_terminals); bool setBridge(const QSharedPointer &bridge, const QVector> &real_terminals); void unBridge(const QVector> &real_terminals);