diff --git a/src/TerminalDisplay.h b/src/TerminalDisplay.h --- a/src/TerminalDisplay.h +++ b/src/TerminalDisplay.h @@ -21,8 +21,6 @@ #ifndef TERMINALDISPLAY_H #define TERMINALDISPLAY_H -#include - // Qt #include #include @@ -882,7 +880,7 @@ Screen::DecodingOptions currentDecodingOptions(); // Boilerplate setup for MessageWidget - KMessageWidget* createMessageWidget(const QString &text, std::function linkHandler); + KMessageWidget* createMessageWidget(const QString &text); // the window onto the terminal screen which this display // is currently showing. diff --git a/src/TerminalDisplay.cpp b/src/TerminalDisplay.cpp --- a/src/TerminalDisplay.cpp +++ b/src/TerminalDisplay.cpp @@ -3355,41 +3355,32 @@ //all terminal emulators. //If there isn't a suitable article available in the target language the link //can simply be removed. - auto linkHandler = [this](const QString &url) { - if (url == QLatin1String("#close")) { - _outputSuspendedMessageWidget->hide(); - } else { - QDesktopServices::openUrl(QUrl(url)); - } - }; - _outputSuspendedMessageWidget = createMessageWidget(i18n("Output has been " "suspended" " by pressing Ctrl+S." - " Press Ctrl+Q to resume." - " Click here to dismiss this message."), linkHandler); + " Press Ctrl+Q to resume.")); + + connect(_outputSuspendedMessageWidget, &KMessageWidget::linkActivated, this, [this](const QString &url) { + QDesktopServices::openUrl(QUrl(url)); + }); _outputSuspendedMessageWidget->setMessageType(KMessageWidget::Warning); - _outputSuspendedMessageWidget->hide(); } - _outputSuspendedMessageWidget->setVisible(suspended); + suspended ? _outputSuspendedMessageWidget->animatedShow() : _outputSuspendedMessageWidget->animatedHide(); } void TerminalDisplay::dismissOutputSuspendedMessage() { outputSuspended(false); } -KMessageWidget* TerminalDisplay::createMessageWidget(const QString &text, std::function linkHandler) { +KMessageWidget* TerminalDisplay::createMessageWidget(const QString &text) { auto widget = new KMessageWidget(text); widget->setWordWrap(true); widget->setFocusProxy(this); - widget->setCloseButtonVisible(false); widget->setCursor(Qt::ArrowCursor); - connect(widget, &KMessageWidget::linkActivated, this, linkHandler); - _verticalLayout->insertWidget(0, widget); return widget; } @@ -3399,20 +3390,13 @@ if (readonly) { // Lazy create the readonly messagewidget if (_readOnlyMessageWidget == nullptr) { - - auto linkHandler = [this](const QString &url) { - if (url == QLatin1String("#close")) { - _readOnlyMessageWidget->hide(); - } - }; - - _readOnlyMessageWidget = createMessageWidget(i18n("This terminal is read-only. Dismiss"), linkHandler); + _readOnlyMessageWidget = createMessageWidget(i18n("This terminal is read-only.")); _readOnlyMessageWidget->setIcon(QIcon::fromTheme(QStringLiteral("object-locked"))); } } if (_readOnlyMessageWidget != nullptr) { - _readOnlyMessageWidget->setVisible(readonly); + readonly ? _readOnlyMessageWidget->animatedShow() : _readOnlyMessageWidget->animatedHide(); } }