diff --git a/src/TerminalDisplay.cpp b/src/TerminalDisplay.cpp index 63e40ea7..d3d4f337 100644 --- a/src/TerminalDisplay.cpp +++ b/src/TerminalDisplay.cpp @@ -43,6 +43,7 @@ #include #include #include +#include #include // KDE @@ -3037,7 +3038,7 @@ void TerminalDisplay::outputSuspended(bool suspended) "suspended" " by pressing Ctrl+S." " Press Ctrl+Q to resume." - " This message will be dismissed in 10 seconds."), + " Click here to dismiss this message."), this); QPalette palette(_outputSuspendedLabel->palette()); @@ -3048,11 +3049,20 @@ void TerminalDisplay::outputSuspended(bool suspended) _outputSuspendedLabel->setFont(QFontDatabase::systemFont(QFontDatabase::SmallestReadableFont)); _outputSuspendedLabel->setContentsMargins(5, 5, 5, 5); _outputSuspendedLabel->setWordWrap(true); + _outputSuspendedLabel->setFocusProxy(this); + + connect(_outputSuspendedLabel, &QLabel::linkActivated, [this](const QString &url) { + if (url == "#close") { + _outputSuspendedLabel->setVisible(false); + } else { + QDesktopServices::openUrl(QUrl(url)); + } + }); //enable activation of "Xon/Xoff" link in label _outputSuspendedLabel->setTextInteractionFlags(Qt::LinksAccessibleByMouse | Qt::LinksAccessibleByKeyboard); - _outputSuspendedLabel->setOpenExternalLinks(true); + _outputSuspendedLabel->setOpenExternalLinks(false); _outputSuspendedLabel->setVisible(false); _gridLayout->addWidget(_outputSuspendedLabel); @@ -3060,10 +3070,6 @@ void TerminalDisplay::outputSuspended(bool suspended) QSizePolicy::Expanding), 1, 0); } - // Remove message after a few seconds - if (suspended) { - QTimer::singleShot(10000, this, SLOT(dismissOutputSuspendedMessage())); - } _outputSuspendedLabel->setVisible(suspended); }